Function at 0x41eca0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
push 0xffffffffffffffff
push 0x56a668
mov eax, dword fs:[0]
push eax
sub esp, 0x5c
mov eax, dword [0x5d4050]
xor eax, esp
mov dword [esp + 0x54], eax
push esi
push edi
mov eax, dword [0x5d4050]
xor eax, esp
push eax
lea eax, [esp + 0x68]
mov dword fs:[0], eax
mov esi, ecx
mov dword [esp + 0x30], esi
mov eax, dword [esi + 0x7c]
mov edi, dword [ebp + 8]
mov dword [esp + 0x14], edi
test eax, eax
jle 0x41ecf9
dec eax
mov dword [esi + 0x7c], eax
test eax, eax
jg 0x41ecf9
push 0xc
call fcn.005671e5
mov eax, dword [esi + 0x78]
test eax, eax
jle 0x41ed0f
dec eax
mov dword [esi + 0x78], eax
test eax, eax
jg 0x41ed0f
push 0xb
call fcn.005671e5
xor al, al
mov dword [esp + 0xc], eax
test edi, edi
je 0x41ed89
lea esp, [esp]
mov edx, dword [edi + 4]
lea ecx, [edx - 1]
cmp ecx, 0x14
ja case.default.0x41ed2f
jmp dword [ecx*4 + 0x41f1c8]
mov ecx, dword [esi + 0x60]
mov eax, ecx
and eax, 0x101
cmp eax, 1
je 0x41ed84
test ecx, 0x100
jne 0x41ed58
mov eax, dword [esi]
cmp eax, dword [esi + 0x4c]
je 0x41efd0
mov eax, dword [esi]
cmp byte [eax - 1], 0xa
setne al
mov dword [esp + 0xc], eax
jmp case.0x41ed2f.1
test byte [esi + 0x60], 2
jne 0x41ed84
mov ecx, dword [esi]
cmp ecx, dword [esi + 0x50]
je case.0x41ed2f.1
cmp byte [ecx], 0xa
je case.0x41ed2f.1
mov byte [esp + 0xc], 1
mov eax, dword [esi + 0x7c]
test eax, eax
jle 0x41ed94
inc eax
mov dword [esi + 0x7c], eax
mov ecx, dword [esp + 0xc]
xor eax, eax
test cl, cl
sete al
mov ecx, dword [esp + 0x68]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [esp + 0x54]
xor ecx, esp
call fcn.00549fe1
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [esi + 0x60]
test cl, 4
je 0x41edcd
mov eax, dword [esi]
cmp eax, dword [esi + 0x4c]
je 0x41edd9
test cl, 8
je 0x41eddd
mov eax, dword [esi]
cmp eax, dword [esi + 0x50]
jne 0x41eddd
xor cl, cl
jmp 0x41ee38
mov eax, dword [esi]
cmp eax, dword [esi + 0x4c]
jne 0x41edf3
test ecx, 0x100
jne 0x41edf3
mov byte [esp + 0x13], 0
jmp 0x41ee0e
mov al, byte [eax - 1]
movsx eax, al
push eax
push str.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_
call fcn.0054b7e0
add esp, 8
test eax, eax
setne byte [esp + 0x13]
mov eax, dword [esi]
cmp eax, dword [esi + 0x50]
jne 0x41ee19
xor al, al
jmp 0x41ee31
mov al, byte [eax]
movsx eax, al
push eax
push str.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_
call fcn.0054b7e0
add esp, 8
test eax, eax
setne al
cmp byte [esp + 0x13], al
setne cl
mov al, byte [edi + 8]
and al, 1
cmp cl, al
je 0x41ed84
jmp 0x41efd0
mov eax, dword [esi]
cmp eax, dword [esi + 0x50]
je 0x41ed84
mov cl, byte [eax]
cmp cl, 0xa
je 0x41ed84
cmp cl, 0xd
je 0x41ed84
inc eax
mov dword [esi], eax
jmp 0x41efd0
mov eax, dword [esi + 0x60]
mov edx, dword [edi + 0x1c]
and eax, 0x80
mov ecx, dword [edi + 0x18]
setne al
movzx eax, al
push eax
push dword [esi + 0x5c]
lea eax, [ecx + edx]
mov ecx, dword [esi]
push dword [esi + 0x70]
push eax
push edx
mov edx, dword [esi + 0x50]
call fcn.0041f220
add esp, 0x14
cmp eax, dword [esi]
je 0x41ed84
mov dword [esi], eax
jmp 0x41efd0
mov eax, dword [esi]
cmp eax, dword [esi + 0x50]
je 0x41ed84
push edi
mov ecx, esi
call fcn.004203a0
test al, al
je 0x41ed84
xor al, al
mov dword [esp + 0xc], eax
jmp 0x41efdc
mov eax, dword [esi]
lea ecx, [esp + 0x38]
xorps xmm0, xmm0
mov dword [esp + 0x2c], eax
movdqa xmmword [esp + 0x34], xmm0
cmp edx, 0xb
mov dword [esp + 0x34], eax
lea eax, [esi + 4]
push eax
sete byte [esp + 0x17]
mov dword [esp + 0x48], 0
call fcn.00409d70
mov eax, dword [esi + 0x10]
mov dword [esp + 0x14], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x70], 0
mov ecx, esi
push dword [edi + 0x14]
call fcn.0041eca0
cmp al, byte [esp + 0x13]
jne 0x41ef4b
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x14]
mov dword [esi], eax
mov dword [esi + 0x10], ecx
lea ecx, [esp + 0x38]
push ecx
lea ecx, [esi + 4]
call fcn.00419e20
mov eax, 1
mov dword [esp + 0xc], eax
jmp 0x41ef55
mov eax, dword [esp + 0x2c]
mov dword [esi], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x70], 0xffffffff
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x44], 0
test ecx, ecx
je case.0x41ed2f.1
push ecx
call fcn.00421c08
add esp, 4
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
jmp 0x41efd0
mov edx, dword [edi + 0x14]
mov ecx, dword [esi + 0x14]
mov eax, dword [esi]
mov dword [ecx + edx*8], eax
mov eax, dword [esp + 0x14]
mov edi, dword [esi + 0x10]
cmp dword [eax + 0x14], edi
jae 0x41efcc
mov ecx, dword [esi + 4]
dec edi
mov eax, edi
shr eax, 5
lea edx, [ecx + eax*4]
mov ecx, edi
and ecx, 0x1f
mov eax, 1
shl eax, cl
not eax
and dword [edx], eax
mov eax, dword [esp + 0x14]
cmp dword [eax + 0x14], edi
jb 0x41efa7
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0xc]
test al, al
jne 0x41ed89
test edi, edi
je 0x41ed89
mov edi, dword [edi + 0xc]
mov dword [esp + 0x14], edi
test edi, edi
jne 0x41ed20
jmp 0x41ed89
cmp byte [esi + 0x65], 0
mov ecx, dword [edi + 0x14]
mov dword [esp + 0x2c], ecx
jne 0x41f00b
cmp dword [ecx + 0x14], 0
je case.0x41ed2f.1
mov ecx, dword [ecx + 0x14]
mov eax, ecx
mov edx, dword [esi + 4]
and ecx, 0x1f
shr eax, 5
lea edx, [edx + eax*4]
mov eax, 1
shl eax, cl
or dword [edx], eax
mov edx, dword [esp + 0x2c]
mov ecx, dword [esi + 0x14]
mov eax, dword [esi]
mov edx, dword [edx + 0x14]
mov dword [ecx + edx*8 + 4], eax
jmp 0x41efd0
mov eax, dword [edi + 0x14]
mov ecx, dword [esi + 4]
shr eax, 5
lea edx, [ecx + eax*4]
mov ecx, dword [edi + 0x14]
and ecx, 0x1f
mov eax, 1
shl eax, cl
test dword [edx], eax
je 0x41efd0
mov eax, dword [esi + 0x14]
mov edx, dword [edi + 0x14]
mov ecx, dword [esi]
mov esi, dword [eax + edx*8]
mov eax, dword [eax + edx*8 + 4]
mov edx, esi
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0x30]
mov dword [esp + 0x14], eax
cmp edx, eax
je 0x41f0a8
mov eax, dword [esi + 0x60]
and eax, 0x80
setne al
movzx eax, al
push eax
push dword [esi + 0x5c]
push dword [esi + 0x70]
push dword [esp + 0x20]
push edx
mov edx, dword [esi + 0x50]
call fcn.0041f220
mov ecx, eax
add esp, 0x14
cmp ecx, dword [esi]
je 0x41ed84
mov dword [esi], ecx
jmp 0x41efd0
push edi
mov ecx, esi
call fcn.0041ff60
mov ecx, dword [esp + 0xc]
test al, al
movzx ecx, cl
mov dword [esp + 0xc], ecx
mov eax, ecx
mov ecx, 1
cmove eax, ecx
mov dword [esp + 0xc], eax
xor edi, edi
jmp case.0x41ed2f.1
mov eax, dword [edi + 8]
mov ecx, esi
shr eax, 1
and al, 1
push 0
movzx eax, al
push eax
push edi
call fcn.00420140
mov edx, dword [esp + 0xc]
test al, al
mov eax, 1
movzx ecx, dl
cmove ecx, eax
xor edi, edi
mov al, cl
mov dword [esp + 0xc], eax
jmp case.0x41ed2f.1
mov edx, dword [edi + 0x14]
mov eax, dword [esi + 0x40]
cmp dword [edx + 0x24], 0
mov ecx, dword [edx + 0x20]
jne 0x41f1b5
push dword [eax + ecx*8]
mov eax, dword [edx + 8]
mov ecx, esi
shr eax, 1
and al, 1
movzx eax, al
push eax
push edx
call fcn.00420140
mov edx, dword [esp + 0xc]
test al, al
mov eax, 1
movzx ecx, dl
cmove ecx, eax
xor edi, edi
mov al, cl
mov dword [esp + 0xc], eax
jmp case.0x41ed2f.1
test dword [esi + 0x60], 0x2020
je 0x41f163
mov eax, dword [esi + 0x4c]
cmp eax, dword [esi]
je 0x41f170
cmp byte [esi + 0x74], 0
je 0x41f17d
mov eax, dword [esi]
cmp eax, dword [esi + 0x50]
je 0x41f17d
mov al, 1
xor edi, edi
mov dword [esp + 0xc], eax
jmp case.0x41ed2f.1
cmp byte [esi + 0x64], 0
je 0x41f18e
mov ecx, esi
call fcn.004205b0
test al, al
je 0x41f1b5
mov eax, dword [esi]
lea edx, [esi + 4]
mov dword [esi + 0x20], eax
lea ecx, [esi + 0x24]
mov eax, dword [edx + 0xc]
push edx
mov dword [ecx + 0xc], eax
call fcn.00419e20
lea eax, [esi + 0x14]
push eax
lea ecx, [esi + 0x34]
call fcn.00419990
mov byte [esi + 0x64], 1
mov eax, dword [esp + 0xc]
xor edi, edi
jmp case.0x41ed2f.1
push 0xd
call fcn.005671e5
nop
aam 0xef
inc ecx
add byte [esi], dh
in eax, dx
inc ecx
add byte [edx - 0x13], ch
inc ecx
add byte [esi + 0x4a0041ed], bh
out dx, al
inc ecx
add byte [ecx - 0x12], dh
inc ecx
add byte [ebp - 0x2bffbe12], ch
out dx, eax
inc ecx
add ah, dl
out dx, eax
inc ecx
add bl, dl
out dx, al
inc ecx
add bl, dl
out dx, al
inc ecx
add dl, dl
invalid