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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x90
mov dword [esp + 0x3c], ecx
lea ecx, [esp + 0x40]
mov dword [esp + 0x10], edx
push 6
push 0x4060e0
push dword [ebp + 8]
call fcn.00417a00
add esp, 0xc
test byte [esp + 0x40], 1
je 0x41dab4
mov edx, dword [esp + 0x64]
mov eax, dword [esp + 0x7c]
mov esi, dword [esp + 0x70]
mov edi, dword [esp + 0x78]
mov dword [esp + 0x14], edx
cmp edx, 0xffffffff
mov edx, dword [esp + 0x74]
lea ecx, [eax - 1]
mov dword [esp + 4], edi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], esi
mov dword [esp + 0x38], ecx
mov dword [esp + 0xc], edx
je 0x41dae9
mov edi, dword [esp + 0x5c]
add ecx, edi
cmp ecx, edx
jae 0x41dce1
mov ebx, dword [esp + 0x48]
mov dword [esp + 0x34], ebx
mov ebx, dword [esp + 0x4c]
mov dword [esp + 0x30], ebx
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x58]
sub eax, ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x24], eax
nop word cs:[eax + eax]
nop
movzx ecx, byte [esi + ecx]
xor eax, eax
mov ebx, 1
shld eax, ebx, cl
mov ebx, esi
mov esi, 1
shl esi, cl
test cl, 0x20
mov ecx, 0
cmovne eax, esi
cmovne esi, ecx
and eax, dword [esp + 0x30]
and esi, dword [esp + 0x34]
or esi, eax
je 0x41da30
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov eax, edi
mov dword [esp + 8], eax
cmp esi, ecx
cmova ecx, esi
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x2c], ecx
cmp ecx, esi
mov edi, esi
lea esi, [ebx + eax]
cmova edi, ecx
nop word cs:[eax + eax]
cmp edi, ecx
je 0x41da60
mov eax, ecx
mov ecx, dword [esp + 8]
add ecx, eax
cmp ecx, edx
jae 0x41e3c9
mov edx, dword [esp + 4]
lea ecx, [eax + 1]
movzx ebx, byte [edx + eax]
mov edx, dword [esp + 0xc]
cmp bl, byte [esi + eax]
je 0x41d9f0
mov edi, dword [esp + 8]
sub edi, dword [esp + 0x18]
lea edi, [edi + eax + 1]
jmp 0x41da34
add edi, dword [esp + 0x1c]
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
lea ecx, [edi + eax]
cmp ecx, edx
jb 0x41d990
jmp 0x41dce1
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
nop dword [eax + eax]
cmp dword [esp + 0x14], ecx
mov edi, dword [esp + 8]
jae 0x41dc1e
dec ecx
cmp ecx, esi
jae 0x41e3fd
add edi, ecx
cmp edi, edx
jae 0x41e409
mov eax, dword [esp + 4]
mov ebx, dword [esp + 0x20]
movzx eax, byte [eax + ecx]
cmp al, byte [ebx + edi]
je 0x41da70
mov edi, dword [esp + 8]
mov eax, dword [esp + 0x24]
add edi, dword [esp + 0x28]
mov dword [esp + 0x14], eax
jmp 0x41da3c
lea ebx, [esp + 0x80]
lea edi, [esp + 0x40]
nop
mov ecx, ebx
mov edx, edi
call fcn.0041c400
mov eax, dword [esp + 0x80]
cmp eax, 1
je 0x41dac0
test eax, eax
jne 0x41dce1
mov edi, dword [esp + 0x84]
jmp 0x41dc1e
mov edi, dword [esp + 0x5c]
add ecx, edi
cmp ecx, edx
jae 0x41dce1
mov ebx, dword [esp + 0x48]
mov dword [esp + 0x34], ebx
mov ebx, dword [esp + 0x4c]
mov dword [esp + 0x30], ebx
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x58]
mov dword [esp + 0x24], ebx
mov ebx, dword [esp + 0x18]
cmp ebx, eax
cmova eax, ebx
mov dword [esp + 0x14], eax
lea eax, [ebx - 1]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 4]
lea eax, [eax + ebx - 1]
mov dword [esp + 0x28], eax
jmp 0x41db50
add edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
lea ecx, [edi + eax]
cmp ecx, edx
jae 0x41dce1
movzx ecx, byte [esi + ecx]
xor eax, eax
mov ebx, 1
shld eax, ebx, cl
mov ebx, esi
mov esi, 1
shl esi, cl
test cl, 0x20
mov ecx, 0
cmovne eax, esi
cmovne esi, ecx
and eax, dword [esp + 0x30]
and esi, dword [esp + 0x34]
or esi, eax
je 0x41db39
mov eax, dword [esp + 0x18]
lea ecx, [ebx + edi]
nop dword [eax + eax]
cmp dword [esp + 0x14], eax
je 0x41dbc3
mov esi, eax
add eax, edi
cmp eax, edx
jae 0x41e3e4
mov edx, dword [esp + 4]
lea eax, [esi + 1]
movzx ebx, byte [edx + esi]
mov edx, dword [esp + 0xc]
cmp bl, byte [ecx + esi]
je 0x41db90
sub edi, dword [esp + 0x18]
lea edi, [edi + esi + 1]
jmp 0x41db3d
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x2c]
cmp ecx, eax
jae 0x41e3b2
mov dword [esp + 8], edi
add ecx, edi
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x18]
nop word cs:[eax + eax]
nop dword [eax + eax]
sub edi, 1
jb 0x41dc1a
cmp ecx, edx
jae 0x41e40b
movzx eax, byte [esi]
mov ebx, dword [esp + 0x20]
dec esi
cmp al, byte [ebx + ecx]
lea ecx, [ecx - 1]
je 0x41dbf0
mov edi, dword [esp + 8]
add edi, dword [esp + 0x24]
jmp 0x41db3d
mov edi, dword [esp + 8]
mov ecx, dword [esp + 0x10]
mov edx, dword [ebp + 8]
mov esi, edi
add esi, 6
je 0x41dc44
cmp esi, edx
jae 0x41dc42
cmp byte [ecx + esi], 0xbf
jg 0x41dc44
push 0x406114
push edx
push esi
call fcn.004375e0
jne 0x41dc36
add esi, ecx
add ecx, edx
mov dword [esp + 8], edi
jmp 0x41dc67
inc esi
lea eax, [edx - 0x30]
cmp eax, 0xa
setb al
add edx, 0xffffffc0
cmp edx, 7
setb dl
or dl, al
je 0x41dce1
cmp esi, ecx
je 0x41dd5a
movzx ebx, byte [esi]
movzx edx, bl
test bl, bl
jns 0x41dc50
movzx eax, byte [esi + 1]
and edx, 0x1f
and eax, 0x3f
cmp bl, 0xdf
jbe 0x41dcc6
movzx edi, byte [esi + 2]
shl eax, 6
and edi, 0x3f
or edi, eax
cmp bl, 0xf0
jb 0x41dcd0
movzx eax, byte [esi + 3]
and edx, 7
shl edi, 6
mov ebx, edx
shl ebx, 0x12
and eax, 0x3f
or eax, edi
mov edi, dword [esp + 8]
mov edx, eax
or edx, ebx
cmp edx, 0x110000
je 0x41dd5a
add esi, 4
jmp 0x41dc51
shl edx, 6
add esi, 2
or edx, eax
jmp 0x41dc51
shl edx, 0xc
add esi, 3
or edx, edi
mov edi, dword [esp + 8]
jmp 0x41dc51
mov ecx, dword [esp + 0x10]
mov edx, dword [ebp + 8]
cmp edx, 3
jae 0x41dd1a
mov ebx, 2
cmp edx, 2
jne 0x41e3a4
cmp word [ecx], 0x4e5a
jne 0x41df05
mov eax, 0xfffffffe
mov edi, 2
mov edx, 2
jmp 0x41ddba
movzx eax, word [ecx]
mov esi, edx
movzx edx, byte [ecx + 2]
xor eax, 0x5a5f
xor edx, 0x4e
or dx, ax
je 0x41dd82
cmp word [ecx], 0x4e5a
je 0x41dd98
mov edi, 3
cmp esi, 3
je 0x41debd
cmp dword [ecx], 0x4e5a5f5f
mov edx, esi
je 0x41de55
mov edi, edx
jmp 0x41debd
test edi, edi
je 0x41e367
mov edx, dword [ebp + 8]
cmp edi, edx
jae 0x41de03
mov ecx, dword [esp + 0x10]
cmp byte [ecx + edi], 0xbf
jle 0x41de0d
mov edx, edi
jmp 0x41dce8
mov eax, 0xfffffffd
mov edx, 3
cmp esi, 3
jne 0x41ddae
mov edi, 3
jmp 0x41ddba
cmp byte [ecx + 2], 0xbf
jle 0x41e454
mov edx, 2
mov eax, 0xfffffffe
jmp 0x41ddb8
cmp byte [ecx + 3], 0xbf
jle 0x41e463
mov edi, esi
add eax, edi
add edx, ecx
lea ecx, [edx + eax]
mov dword [esp + 0x20], eax
mov dword [esp + 0x14], edx
mov dword [esp + 0xc], ecx
mov ecx, edx
nop
test eax, eax
je 0x41dde2
dec eax
cmp byte [ecx], 0
lea ecx, [ecx + 1]
jns 0x41ddd0
jmp 0x41deb4
cmp dword [esp + 0x20], 0
je 0x41deb4
mov ebx, dword [esp + 0x14]
movzx ecx, byte [ebx]
movzx edx, cl
test cl, cl
js 0x41de1a
lea ecx, [ebx + 1]
jmp 0x41de9b
mov ecx, dword [esp + 0x10]
je 0x41dce8
push 0x406124
push edi
push 0
call fcn.004375e0
movzx esi, byte [ebx + 1]
and edx, 0x1f
and esi, 0x3f
cmp cl, 0xdf
jbe 0x41de7f
movzx eax, byte [ebx + 2]
shl esi, 6
and eax, 0x3f
or eax, esi
cmp cl, 0xf0
jb 0x41de93
movzx ecx, byte [ebx + 3]
and edx, 7
shl eax, 6
lea esi, [ebx + 4]
shl edx, 0x12
and ecx, 0x3f
or ecx, eax
or edx, ecx
mov ecx, esi
jmp 0x41de9b
mov edi, edx
mov eax, 0xfffffffc
mov edx, 4
cmp edi, 5
jb 0x41de89
cmp byte [ecx + 4], 0xbf
jg 0x41ddb8
mov edx, esi
push 0x405cbc
push esi
push 4
call fcn.004375e0
shl edx, 6
lea ecx, [ebx + 2]
or edx, esi
jmp 0x41de9b
mov edi, 4
jmp 0x41ddba
shl edx, 0xc
lea ecx, [ebx + 3]
or edx, eax
cmp edx, 0x45
mov dword [esp + 4], ecx
je 0x41e05f
cmp edx, 0x110000
jne 0x41e082
mov ecx, dword [esp + 0x10]
cmp edi, 3
jb 0x41df05
cmp word [ecx], 0x525f
je 0x41df2c
cmp byte [ecx], 0x52
je 0x41df18
mov ebx, 2
cmp edi, 3
je 0x41e3a4
movzx eax, word [ecx]
movzx edx, byte [ecx + 2]
xor eax, 0x5f5f
xor edx, 0x52
or dx, ax
jne 0x41e3a4
movzx eax, byte [ecx + 3]
cmp al, 0xbf
jle 0x41e472
add ecx, 3
mov edx, 0xfffffffd
jmp 0x41df40
cmp byte [ecx], 0x52
mov edi, 2
mov ebx, 2
jne 0x41e3a4
movzx eax, byte [ecx + 1]
cmp al, 0xbf
jle 0x41e415
inc ecx
mov edx, 0xffffffff
jmp 0x41df40
movzx eax, byte [ecx + 2]
cmp al, 0xbf
jle 0x41e424
add ecx, 2
mov edx, 0xfffffffe
add al, 0xbf
mov ebx, 2
cmp al, 0x19
ja 0x41e3a4
add edx, edi
xor eax, eax
nop word cs:[eax + eax]
nop dword [eax]
cmp edx, eax
je 0x41df72
cmp byte [ecx + eax], 0
lea eax, [eax + 1]
jns 0x41df60
jmp 0x41e3a4
mov dword [esp + 0x40], ecx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x44], edx
pxor xmm0, xmm0
lea ecx, [esp + 0x40]
xor edx, edx
movq qword [esp + 0x48], xmm0
movq qword [esp + 0x50], xmm0
call fcn.00418fd0
test al, al
jne 0x41e433
mov eax, dword [esp + 0x40]
test eax, eax
je 0x41e3a4
movzx ecx, byte [esp + 0x47]
movzx edx, word [esp + 0x45]
mov dword [esp + 4], eax
movzx eax, byte [esp + 0x44]
movq xmm0, qword [esp + 0x48]
shl ecx, 0x10
or edx, ecx
mov ecx, edx
shl ecx, 8
or ecx, eax
movd eax, xmm0
cmp eax, ecx
jae 0x41e226
mov edx, dword [esp + 4]
mov esi, ecx
movzx ecx, byte [edx + eax]
add cl, 0xbf
cmp cl, 0x1a
jae 0x41e230
mov dword [esp + 0x40], edx
lea ecx, [esp + 0x40]
xor edx, edx
mov dword [esp + 0x44], esi
movq qword [esp + 0x48], xmm0
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
call fcn.00418fd0
test al, al
jne 0x41e433
mov eax, dword [esp + 0x40]
test eax, eax
je 0x41e3a4
movzx edx, byte [esp + 0x47]
movzx esi, word [esp + 0x45]
movzx ecx, byte [esp + 0x44]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x48]
shl edx, 0x10
or esi, edx
mov edx, dword [esp + 0x10]
shl esi, 8
or esi, ecx
jmp 0x41e234
mov dword [esp + 0x1c], 0
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
sub ecx, dword [esp + 4]
test ecx, ecx
jne 0x41e272
xor esi, esi
jmp 0x41e376
mov esi, 0xa
mov dword [esp + 0x1c], 0
mov dword [esp + 8], edi
lea eax, [edx - 0x30]
cmp eax, 9
ja 0x41deb4
xor eax, eax
jmp 0x41e0b4
inc ecx
mov dword [esp + 4], ecx
cmp edx, 0x110000
je 0x41deb4
lea ecx, [edx - 0x30]
cmp ecx, 0xa
jae 0x41e15d
mul esi
jo 0x41deb4
add eax, ecx
jb 0x41deb4
mov ecx, dword [esp + 4]
cmp ecx, dword [esp + 0xc]
je 0x41deb4
mov ecx, dword [esp + 4]
movzx ebx, byte [ecx]
movzx edx, bl
test bl, bl
jns 0x41e0a3
movzx esi, byte [ecx + 1]
and edx, 0x1f
and esi, 0x3f
cmp bl, 0xdf
jbe 0x41e129
movzx edi, byte [ecx + 2]
shl esi, 6
and edi, 0x3f
or edi, esi
cmp bl, 0xf0
jb 0x41e137
movzx esi, byte [ecx + 3]
and edx, 7
shl edi, 6
add ecx, 4
shl edx, 0x12
mov dword [esp + 4], ecx
and esi, 0x3f
or esi, edi
or edx, esi
jmp 0x41e143
shl edx, 6
add ecx, 2
mov dword [esp + 4], ecx
or edx, esi
jmp 0x41e147
shl edx, 0xc
add ecx, 3
mov dword [esp + 4], ecx
or edx, edi
mov edi, dword [esp + 8]
mov esi, 0xa
cmp edx, 0x110000
jne 0x41e0b4
jmp 0x41deb4
mov ecx, dword [esp + 0xc]
test eax, eax
jne 0x41e18f
inc dword [esp + 0x1c]
cmp edx, 0x45
jne 0x41e093
jmp 0x41e067
add ecx, 2
shl edx, 6
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0xc]
or edx, esi
mov esi, 0xa
dec eax
je 0x41e165
cmp dword [esp + 4], ecx
je 0x41deb4
mov ecx, dword [esp + 4]
movzx ebx, byte [ecx]
movzx edx, bl
test bl, bl
js 0x41e1b2
inc ecx
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0xc]
jmp 0x41e18c
movzx esi, byte [ecx + 1]
and edx, 0x1f
and esi, 0x3f
cmp bl, 0xdf
jbe 0x41e177
mov edi, ecx
movzx ecx, byte [ecx + 2]
shl esi, 6
and ecx, 0x3f
or ecx, esi
cmp bl, 0xf0
jb 0x41e208
movzx esi, byte [edi + 3]
and edx, 7
shl ecx, 6
mov edi, edx
shl edi, 0x12
and esi, 0x3f
or esi, ecx
mov edx, esi
mov esi, 0xa
or edx, edi
mov edi, dword [esp + 8]
cmp edx, 0x110000
je 0x41deb4
add dword [esp + 4], 4
jmp 0x41e1ac
shl edx, 0xc
add edi, 3
mov esi, 0xa
mov dword [esp + 4], edi
or edx, ecx
mov ecx, dword [esp + 0xc]
mov edi, dword [esp + 8]
jmp 0x41e18c
mov edx, dword [esp + 0x10]
test eax, eax
jne 0x41e23a
jmp 0x41e25c
mov edx, dword [esp + 0x10]
mov ecx, esi
test eax, eax
je 0x41e25c
cmp ecx, eax
jbe 0x41e25a
mov esi, dword [esp + 4]
cmp byte [esi + eax], 0xbf
jg 0x41e25c
mov edx, ecx
mov ecx, dword [esp + 4]
push 0x405ea8
push edx
push eax
call fcn.004375e0
jne 0x41e248
add dword [esp + 4], eax
sub ecx, eax
mov dword [esp + 0x14], 0
test ecx, ecx
je 0x41e07b
mov edx, dword [esp + 4]
mov ebx, 2
cmp byte [edx], 0x2e
jne 0x41e3a4
lea eax, [edx + ecx]
mov dword [esp + 0xc], ecx
mov dword [esp + 8], eax
mov al, 0x2e
test al, al
jns 0x41e310
nop word cs:[eax + eax]
nop
mov ebx, edi
movzx edi, byte [edx + 1]
mov ecx, eax
and cl, 0x1f
movzx ecx, cl
and edi, 0x3f
cmp al, 0xdf
jbe 0x41e2eb
movzx esi, byte [edx + 2]
shl edi, 6
and esi, 0x3f
or esi, edi
cmp al, 0xf0
jb 0x41e2f9
movzx eax, byte [edx + 3]
and ecx, 7
shl esi, 6
mov edi, ebx
shl ecx, 0x12
and eax, 0x3f
or eax, esi
or eax, ecx
cmp eax, 0x110000
je 0x41e36e
add edx, 4
jmp 0x41e314
shl ecx, 6
add edx, 2
or ecx, edi
mov edi, ebx
mov eax, ecx
jmp 0x41e314
shl ecx, 0xc
add edx, 3
mov edi, ebx
or esi, ecx
mov eax, esi
jmp 0x41e314
inc edx
movzx eax, al
mov ecx, eax
lea esi, [eax - 0x30]
and ecx, 0x1fffdf
add ecx, 0xffffffbf
cmp ecx, 0x1a
setb cl
cmp esi, 0xa
lea esi, [eax - 0x21]
setb ch
cmp esi, 0xf
setb bl
or bl, ch
or bl, cl
jne 0x41e34d
lea ecx, [eax - 0x3a]
cmp ecx, 7
jb 0x41e34d
lea ecx, [eax - 0x5b]
cmp ecx, 6
jae 0x41e35f
cmp edx, dword [esp + 8]
je 0x41e36e
movzx eax, byte [edx]
test al, al
jns 0x41e310
jmp 0x41e2a0
add eax, 0xffffff81
cmp eax, 0xfffffffc
jae 0x41e34d
mov ebx, 2
jmp 0x41e3a4
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x1c]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x20]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], edx
mov edx, dword [esp + 4]
mov ebx, 1
mov dword [eax + 0x14], edi
mov dword [eax + 0x18], edx
mov dword [eax + 0x1c], esi
mov eax, dword [esp + 0x3c]
mov dword [eax], ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
cmp dword [esp + 0x18], 0
je 0x41dc1e
mov edx, eax
push 0x4062f0
call fcn.00437195
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0xc]
add ecx, dword [esp + 8]
cmp edx, ecx
cmova ecx, edx
push 0x406310
call fcn.00437195
add edi, dword [esp + 0x18]
mov edx, dword [esp + 0xc]
cmp edx, edi
cmova edi, edx
mov ecx, edi
push 0x406310
call fcn.00437195
mov edx, esi
push 0x4062f0
call fcn.00437195
mov ecx, edi
push 0x406300
call fcn.00437195
mov edx, edi
push 0x405e38
push edi
push 1
call fcn.004375e0
mov edx, edi
push 0x405e48
push edi
push 2
call fcn.004375e0
lea eax, [esp + 0x80]
mov ecx, 0x405e58
mov edx, 0x3d
push 0x405e98
push 0x405bfc
push eax
call fcn.004373d0
mov edx, esi
push 0x405ccc
push esi
push 2
call fcn.004375e0
mov edx, esi
push 0x405cdc
push esi
push 3
call fcn.004375e0
mov edx, edi
push 0x405e28
push edi
push 3
call fcn.004375e0
int3