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

Disassembly:
sub esp, 0x4c
push ebx
push ebp
push esi
push edi
xor eax, eax
mov edi, ecx
push 0x28
push eax
mov dword [esp + 0x30], eax
mov esi, eax
mov dword [esp + 0x24], eax
mov ebx, edx
mov byte [edi + 0x320], al
lea eax, [esp + 0x38]
push eax
mov dword [esp + 0x20], ebx
call fcn.00436050
mov ebp, dword [esp + 0x6c]
add esp, 0xc
movzx eax, byte [edi + 0x320]
mov dword [esp + 0x2c], 0x2000
mov dword [esp + 0x24], 0xfffb
mov ecx, dword [ebp]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], ecx
push 1
pop edx
sub eax, esi
je 0x41e673
sub eax, edx
je 0x41e94a
sub eax, edx
je 0x41ead4
sub eax, edx
je 0x41e66b
sub eax, edx
je 0x41ed50
sub eax, edx
je 0x41ede6
mov esi, 0xfffffed3
jmp 0x41ede9
xor ebx, ebx
inc ebx
jmp 0x41eb3f
movzx edx, word [edi + 0x310]
mov ebp, dword [esp + 0x64]
test dx, dx
jns 0x41e6ea
cmp ebp, 1
jae 0x41e692
mov esi, 0xfffffeb8
jmp 0x41ede9
mov al, byte [ecx + ebx]
lea ebx, [ecx + 1]
mov byte [esp + 0x10], al
movzx eax, al
mov dword [esp + 0x20], eax
sub eax, ecx
add eax, ebx
mov dword [esp + 0x3c], ebx
cmp eax, ebp
ja 0x41e688
and dl, 0x30
cmp dl, 0x10
jne 0x41e6c8
cmp byte [esp + 0x10], 0
je 0x41e6c8
mov esi, 0xfffffe5c
jmp 0x41ede9
mov eax, dword [esp + 0x20]
add eax, ebx
push 0x48
pop ecx
mov dword [esp + 0x3c], eax
call fcn.00431f99
mov dword [esp + 0x34], eax
test eax, eax
jne 0x41e6ea
push 0xffffffffffffff83
pop esi
jmp 0x41ede9
push 0x48
pop ecx
call fcn.00431f99
mov dword [esp + 0x30], eax
test eax, eax
je 0x41e6e2
push 0x48
xor ecx, ecx
push ecx
push eax
call fcn.00436050
mov ebx, dword [esp + 0x48]
add esp, 0xc
mov eax, ebx
sub eax, dword [esp + 0x40]
add eax, 3
cmp eax, ebp
ja 0x41e688
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0x20]
add ecx, ebx
call fcn.0041cbb5
mov ecx, dword [esp + 0x20]
add ebx, 3
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x18], ecx
cmp ecx, 0x481e
ja 0x41e688
mov edx, dword [esp + 0x40]
mov eax, ebx
sub eax, edx
add eax, ecx
cmp eax, ebp
jne 0x41e688
mov ebp, dword [esp + 0x44]
test ecx, ecx
je 0x41e8bf
movzx eax, byte [edi + 0x216]
cmp ebp, eax
jge 0x41e8b5
cmp ebp, 9
jge 0x41e8b5
mov eax, ebx
sub eax, edx
add eax, 3
cmp eax, dword [esp + 0x64]
ja 0x41e688
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0x20]
lea ecx, [ebx + ecx]
call fcn.0041cbb5
mov ecx, dword [esp + 0x20]
add ebx, 3
mov dword [esp + 0x3c], ebx
sub ebx, dword [esp + 0x40]
add ebx, ecx
cmp ebx, dword [esp + 0x64]
ja 0x41e688
mov eax, dword [esp + 0x30]
mov dword [eax + ebp*8 + 4], ecx
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x44]
add edx, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
sub ebp, dword [esp + 0x20]
mov dword [eax + ecx*8], edx
add ebp, 0xfffffffd
mov ebx, dword [esp + 0x3c]
xor eax, eax
add ebx, dword [esp + 0x20]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x18], ebp
cmp word [edi + 0x310], ax
jge 0x41e89c
mov eax, ebx
sub eax, dword [esp + 0x40]
add eax, 2
cmp eax, dword [esp + 0x64]
ja 0x41e688
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0x10]
lea ecx, [ebx + ecx]
call fcn.0041cbcf
movzx esi, word [esp + 0x10]
lea eax, [ebx + 2]
mov dword [esp + 0x3c], eax
mov eax, esi
sub eax, dword [esp + 0x40]
add eax, 2
add eax, ebx
cmp eax, dword [esp + 0x64]
ja 0x41e688
mov ecx, dword [esp + 0x34]
sub ebp, esi
mov eax, dword [esp + 0x44]
sub ebp, 2
mov dword [esp + 0x18], ebp
mov dword [ecx + eax*8 + 4], esi
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x44]
add edx, dword [esp + 0x14]
mov dword [ecx + eax*8], edx
xor eax, eax
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x44]
add dword [esp + 0x3c], esi
push eax
push 0xb
movzx eax, word [ecx + edx*8 + 4]
mov edx, dword [ecx + edx*8]
mov ecx, edi
push eax
call fcn.00423345
mov esi, eax
add esp, 0xc
test esi, esi
js 0x41ede9
mov ebx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x44]
inc ebp
cmp dword [esp + 0x18], 0
mov dword [esp + 0x44], ebp
je 0x41e8bf
mov edx, dword [esp + 0x40]
jmp 0x41e765
mov esi, 0xfffffe90
jmp 0x41ede9
xor ebx, ebx
mov dword [esp + 0x48], ebp
mov dword [esp + 0x4c], ebx
test ebp, ebp
jne 0x41e913
mov eax, dword [esp + 0x2c]
test word [edi + 0x314], ax
jne 0x41e8fc
mov eax, 0x100
test word [edi + 0x310], ax
je 0x41e913
movzx eax, word [edi + 0x220]
push eax
call fcn.0041cc15
add esp, 4
test eax, eax
je 0x41e913
test byte [edi + 0x310], 0x30
jne 0x41e913
mov esi, 0xfffffea7
mov ecx, edi
mov edx, esi
call fcn.0041e2c2
mov eax, dword [esp + 0x24]
mov ebp, 0x370
and word [esp + 0x56], ax
mov ecx, ebp
call fcn.00431f99
mov dword [esp + 0x38], eax
test eax, eax
je 0x41e6e2
push ebp
push ebx
push eax
call fcn.00436050
xor edx, edx
add esp, 0xc
inc edx
mov byte [edi + 0x320], dl
jmp 0x41e94c
xor ebx, ebx
mov eax, dword [esp + 0x48]
test eax, eax
jle 0x41eac1
jmp 0x41eab9
mov eax, dword [esp + 0x48]
dec eax
mov dword [esp + 0x4c], eax
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x2c]
push eax
movzx eax, word [edi + 0x310]
shr eax, 7
not eax
and eax, edx
lea edx, [esp + 0x38]
push eax
push ecx
mov ecx, edi
call fcn.0041e4d0
add esp, 0x10
test eax, eax
jne 0x41e99d
lea edx, [esp + 0x30]
mov ecx, edi
call fcn.0041e5a7
lea ecx, [esp + 0x30]
mov edx, edi
push ecx
mov ecx, dword [edi]
push eax
mov ecx, dword [ecx + 0x50]
call fcn.0041e320
pop ecx
pop ecx
mov cx, word [edi + 0x310]
mov esi, eax
mov eax, 0x80
and cx, ax
je 0x41e9dc
cmp esi, 0xfffffe96
je 0x41e9d4
cmp esi, 0xfffffe97
jne 0x41e9dc
mov dword [edi + 0x1f8], ebx
mov esi, ebx
test esi, esi
jne 0x41ea74
mov eax, dword [esp + 0x38]
test byte [eax + 0x36c], 0x10
je 0x41ea98
test cx, cx
jne 0x41ea98
mov ebx, dword [esp + 0x30]
mov ebp, dword [esp + 0x4c]
cmp dword [esp + 0x1c], esi
jne 0x41ea98
push dword [edi + 0x84]
mov edx, dword [ebx + ebp*8 + 4]
lea ecx, [esp + 0x1c]
xor eax, eax
push 5
mov dword [esp + 0x20], eax
call fcn.0042a5ee
mov esi, eax
pop ecx
pop ecx
test esi, esi
js 0x41ede9
push dword [ebx + ebp*8 + 4]
mov eax, dword [esp + 0x1c]
push dword [ebx + ebp*8]
push dword [eax]
call fcn.00435ad0
mov ecx, dword [edi]
lea edx, [esp + 0x24]
add esp, 0xc
xor ebx, ebx
mov ecx, dword [ecx + 0x50]
push ebx
push 2
call fcn.004207fd
mov esi, eax
xor eax, eax
cmp esi, 1
pop ecx
cmove esi, eax
pop ecx
test esi, esi
je 0x41ea98
mov eax, 0x80
test byte [edi + 0x310], al
jne 0x41ea85
mov edx, esi
mov ecx, edi
call fcn.0041e2c2
cmp dword [esp + 0x50], 0
mov dword [edi + 0x1f8], esi
jne 0x41ea98
mov dword [esp + 0x50], esi
mov esi, ebx
mov ecx, dword [esp + 0x38]
call fcn.00428211
mov eax, dword [esp + 0x24]
xor edx, edx
and word [esp + 0x56], ax
mov eax, dword [esp + 0x48]
dec eax
inc edx
push 0
mov dword [esp + 0x4c], eax
pop ebx
cmp eax, edx
jg 0x41e95d
test esi, esi
jne 0x41ede9
mov ebp, dword [esp + 0x60]
mov byte [edi + 0x320], 2
xor ebx, ebx
inc ebx
cmp dword [esp + 0x48], 0
jle 0x41eb2a
xor eax, eax
lea edx, [esp + 0x30]
mov dword [esp + 0x4c], eax
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x2c]
push eax
movzx eax, word [edi + 0x310]
shr eax, 7
not eax
and eax, ebx
push eax
push ecx
mov ecx, edi
call fcn.0041e4d0
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x41ebb9
test byte [esp + 0x56], 2
je 0x41ebaa
mov esi, dword [esp + 0x50]
or word [esp + 0x56], bx
test byte [esp + 0x56], bl
je 0x41eb38
test esi, esi
jne 0x41ede9
mov byte [edi + 0x320], 3
cmp dword [esp + 0x48], 0
jle 0x41ed38
mov ecx, dword [esp + 0x38]
cmp byte [ecx + 0x36c], 0
jge 0x41ebf5
cmp byte [edi + 0x22f], bl
jne 0x41eb7e
mov al, byte [edi + 0x310]
and al, 0x30
cmp al, 0x10
jne 0x41eb7e
test byte [ecx + 0x31a], 0x20
mov eax, 0xfffffe7f
cmove esi, eax
mov al, byte [edi + 0x230]
cmp al, bl
je 0x41eb95
cmp al, 3
jne 0x41ebf5
cmp byte [edi + 0x233], 0
jne 0x41ebf5
mov edx, 0x80
mov eax, 0xfffffe81
test byte [ecx + 0x31a], dl
cmove esi, eax
jmp 0x41ebfa
mov eax, 0xfffe
and word [esp + 0x56], ax
jmp 0x41eb2a
cmp esi, 0xffffff74
je 0x41eb25
cmp esi, 0xffffff7c
je 0x41eb25
xor eax, eax
cmp dword [edi + 0x80], eax
je 0x41eb25
mov eax, dword [esp + 0x56]
shr eax, 1
xor eax, dword [esp + 0x56]
and eax, ebx
xor word [esp + 0x56], ax
jmp 0x41eb2a
mov edx, 0x80
test byte [ecx + 0x36d], bl
je 0x41ec2d
mov al, byte [edi + 0x310]
and al, 0x30
cmp al, 0x10
jne 0x41ec1e
test byte [ecx + 0x31c], 3
jne 0x41ec2d
mov esi, 0xfffffe7e
jmp 0x41ec2d
test byte [ecx + 0x31c], 5
mov eax, 0xfffffe7e
cmove esi, eax
test byte [esp + 0x56], bl
je 0x41ec3e
mov dword [edi + 0x1f8], esi
jmp 0x41ede9
mov eax, dword [esp + 0x2c]
or word [edi + 0x312], ax
test byte [edi + 0x310], dl
jne 0x41ec95
mov eax, dword [edi + 0x100]
test eax, eax
je 0x41ec95
xor edx, edx
cmp dword [ecx + 0x24], edx
je 0x41ec7a
push ecx
mov edx, eax
call fcn.0041e26c
pop ecx
mov ecx, dword [esp + 0x38]
cmp eax, ebx
je 0x41ec95
mov esi, 0xfffffebe
jmp 0x41ec95
mov edx, dword [ecx + 0x7c]
mov ecx, dword [ecx + 0x78]
push eax
call fcn.0041e1ae
pop ecx
mov ecx, 0xfffffebe
test eax, eax
cmove esi, ecx
mov ecx, dword [esp + 0x38]
cmp dword [ecx + 0x1c], 0x206
jne 0x41ed38
xor eax, eax
lea ebx, [edi + 0x384]
mov dword [esp + 0x60], eax
cmp dword [ebx], eax
jne 0x41ecc0
push ebx
push 0x25
pop edx
mov ecx, edi
call fcn.0041d82d
pop ecx
jmp 0x41ecda
cmp byte [edi + 0x38a], al
je 0x41ece2
push dword [ebx]
mov ecx, edi
call fcn.0041d8b6
pop ecx
xor ecx, ecx
mov byte [edi + 0x38a], cl
test eax, eax
jne 0x41ed01
mov ecx, dword [esp + 0x38]
push dword [ecx + 4]
mov ecx, dword [ecx]
lea edx, [esp + 0x64]
push dword [ebx]
call fcn.0042a99c
pop ecx
pop ecx
test eax, eax
jne 0x41ed01
inc eax
mov byte [edi + 0x38a], al
jmp 0x41ed06
mov esi, 0xfffffeaa
test esi, esi
jne 0x41ed38
cmp byte [edi + 0x38a], 0
je 0x41ed38
mov eax, 0x80
test byte [edi + 0x310], al
jne 0x41ed38
mov ecx, dword [ebx]
call fcn.0042e12a
movsx ecx, word [edi + 0x32a]
mov edx, 0xfffffe66
cmp eax, ecx
cmovl esi, edx
xor eax, eax
inc eax
test byte [esp + 0x56], al
je 0x41ed49
test esi, esi
jne 0x41ede9
mov byte [edi + 0x320], 4
cmp dword [esp + 0x50], 0
je 0x41ed5e
test esi, esi
cmove esi, dword [esp + 0x50]
mov ecx, dword [edi]
lea eax, [esp + 0x30]
push eax
push esi
mov edx, edi
mov ecx, dword [ecx + 0x50]
call fcn.0041e320
pop ecx
mov esi, eax
movzx eax, word [edi + 0x310]
pop ecx
mov ecx, eax
and ecx, 0x80
je 0x41ed9f
cmp esi, 0xfffffe96
je 0x41ed95
cmp esi, 0xfffffe97
jne 0x41ed9f
xor edx, edx
mov dword [edi + 0x1f8], edx
mov esi, edx
test esi, esi
je 0x41edb9
test cx, cx
jne 0x41edb1
mov edx, esi
mov ecx, edi
call fcn.0041e2c2
mov dword [edi + 0x1f8], esi
jmp 0x41edc6
and al, 0x30
cmp al, 0x10
jne 0x41edc6
mov byte [edi + 0x319], 5
mov ecx, edi
call fcn.0041cc2e
mov ecx, dword [esp + 0x3c]
test eax, eax
je 0x41eddf
add ecx, dword [edi + 0x308]
mov dword [esp + 0x3c], ecx
mov byte [edi + 0x320], 5
mov dword [ebp], ecx
lea edx, [esp + 0x30]
call fcn.0041e482
mov ecx, edi
call fcn.0041d8d5
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret