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

Disassembly:
sub esp, 0x74
lea eax, [eax + eax*2]
shl eax, 4
mov edx, dword [eax + 0x68fef0]
push esi
mov esi, ecx
mov dword [esp + 0x10], eax
test edx, edx
jns 0x41c2e1
xor eax, eax
pop esi
add esp, 0x74
ret
mov ecx, dword [eax + 0x68fef4]
mov dword [esp + 0x14], ecx
mov ecx, dword [eax + 0x68ff00]
mov dword [esp + 0x30], ecx
mov ecx, dword [eax + 0x68fef8]
mov dword [esp + 0x28], ecx
mov ecx, dword [eax + 0x68ff04]
push ebx
mov dword [esp + 0x30], ecx
mov ecx, dword [eax + 0x68fefc]
mov eax, dword [eax + 0x68ff08]
push ebp
push edi
mov dword [esp + 0x24], ecx
test esi, esi
je 0x41ca10
mov edi, dword [esp + 0x1c]
mov ecx, dword [edi + 0x68feec]
mov ebp, ecx
sub ebp, edx
cmp ecx, edx
jge 0x41c351
mov edx, dword [edi + 0x68fef0]
lea esp, [esp]
mov edi, dword [ecx*8 + 0x47fb00]
movzx edi, byte [edi]
inc ecx
add ebp, edi
cmp ecx, edx
jl 0x41c340
test ebp, ebp
jle 0x41c3ec
fld1
mov edi, dword [esp + 0x3c]
sub edi, dword [esp + 0x20]
fst dword [esi + 0xc]
fldz
mov ebx, dword [esp + 0x38]
fst dword [esi + 0x18]
sub ebx, dword [esp + 0x34]
fst dword [esi + 0x24]
inc edi
fst dword [esi + 0x10]
sub eax, dword [esp + 0x24]
fst dword [esi + 0x28]
mov dword [esp + 0x10], edi
fst dword [esi + 0x14]
inc ebx
fstp dword [esi + 0x20]
mov dword [esp + 0x18], ebx
inc eax
mov dword [esp + 0x5c], eax
lea edx, [ebx + 2]
fst dword [esi + 0x1c]
imul edx, edi
fstp dword [esi + 0x2c]
fild dword [esp + 0x10]
fld qword [0x4449a0]
fmul st(1), st(0)
fxch st(1)
fst qword [esp + 0x7c]
lea eax, [edx + ebp*4 + 0x14]
fiadd dword [esp + 0x20]
add eax, eax
push eax
fstp dword [esi]
fild dword [esp + 0x1c]
fmul st(1)
fst qword [esp + 0x78]
fiadd dword [esp + 0x38]
fstp dword [esi + 4]
fimul dword [esp + 0x60]
fst qword [esp + 0x70]
fiadd dword [esp + 0x28]
fstp dword [esi + 8]
call fcn.00409567
add esp, 4
test eax, eax
jne 0x41c3f6
pop edi
pop ebp
pop ebx
xor eax, eax
pop esi
add esp, 0x74
ret
fld qword [esp + 0x7c]
mov ecx, dword [esp + 0x5c]
mov dword [esi + 0x50], eax
fstp dword [eax + 0xc]
fld qword [esp + 0x74]
mov dword [eax + 4], ebx
fstp dword [eax + 0x10]
mov dword [eax + 8], ecx
fld qword [esp + 0x6c]
mov dword [eax + 0x18], ebp
fstp dword [eax + 0x14]
mov dword [eax], edi
mov ecx, dword [esi + 0x50]
add ecx, 0x28
lea ebp, [ecx + ebp*8]
lea edx, [ebp + edi*4]
xor esi, esi
mov dword [eax + 0x1c], ecx
mov dword [eax + 0x20], ebp
mov dword [eax + 0x24], edx
mov eax, dword [esp + 0x20]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x14], esi
mov dword [esp + 0x68], ebp
mov dword [esp + 0x6c], esi
mov dword [esp + 0x60], edx
mov dword [esp + 0x64], esi
mov ebx, eax
mov dword [esp + 0x10], eax
cmp eax, dword [esp + 0x3c]
jg 0x41ca10
mov ecx, dword [esp + 0x1c]
jmp 0x41c470
mov edx, dword [esp + 0x34]
mov dword [esp + 0x18], edx
cmp edx, dword [esp + 0x38]
jg 0x41c9ea
mov eax, edx
shl eax, 9
mov dword [esp + 0x28], eax
add eax, ebx
mov edi, dword [eax*4 + 0x4ffb40]
cmp byte [edi], 0
mov dword [esp + 0x30], edi
je 0x41c9c3
movzx edx, byte [edi]
mov eax, edi
sar eax, 0xf
mov ebx, edi
sar ebx, 3
sub eax, ebx
and eax, 0xfff
mov eax, dword [eax*4 + 0x5ffe80]
lea edx, [edi + edx*4]
mov dword [esp + 0x2c], edx
test eax, eax
js 0x41c4db
cmp dword [eax*8 + 0x47fb00], edi
je 0x41c4de
mov eax, dword [eax*8 + 0x47fb04]
test eax, eax
jns 0x41c4c7
or eax, 0xffffffff
cmp eax, dword [ecx + 0x68fef0]
jae 0x41c9ac
cmp eax, dword [ecx + 0x68feec]
jl 0x41c9ac
movzx eax, byte [edi + 1]
movzx ecx, byte [edi + 2]
cmp eax, ecx
jg 0x41c735
mov ecx, dword [esp + 0x10]
lea edx, [ecx - 1]
mov esi, edx
mov dword [esp + 0x74], edx
mov edx, dword [esp + 0x18]
or esi, edx
mov dword [esp + 0x44], esi
lea esi, [ecx + 1]
mov dword [esp + 0x7c], esi
or esi, edx
mov dword [esp + 0x48], esi
lea esi, [edx - 1]
inc edx
mov dword [esp + 0x50], esi
or esi, ecx
mov dword [esp + 0x58], edx
or edx, ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x4c], esi
lea ebp, [edx + ecx*8 + 6]
mov edi, edi
mov esi, dword [esp + 0x30]
movzx edx, byte [esi + 1]
mov ecx, eax
sub ecx, edx
movzx edi, byte [esi + ecx*4 + 7]
lea esi, [esi + ecx*4 + 4]
movzx ecx, byte [esi + 2]
imul ecx, edi
sar ecx, 7
cmp ecx, 0xff
jl 0x41c57c
mov ecx, 0xff
movzx edx, byte [esi + 1]
imul edx, edi
sar edx, 7
mov ebx, edx
cmp edx, 0xff
jl 0x41c595
mov ebx, 0xff
movzx edx, byte [esi]
imul edx, edi
sar edx, 7
cmp edx, 0xff
jl 0x41c5ab
mov edx, 0xff
shl ecx, 8
or ecx, ebx
shl ecx, 8
or ecx, edx
mov edx, eax
sub edx, dword [esp + 0x24]
mov ebx, 0x200
mov dword [ebp - 6], ecx
mov word [ebp - 2], dx
cmp dword [esp + 0x44], ebx
jae 0x41c608
mov ecx, dword [esp + 0x74]
add ecx, dword [esp + 0x28]
mov ecx, dword [ecx*4 + 0x4ffb40]
movzx edx, byte [ecx + 1]
cmp eax, edx
jl 0x41c608
mov dl, byte [ecx]
test dl, dl
je 0x41c79c
movzx edx, dl
lea ecx, [ecx + edx*4]
movzx edx, byte [ecx + 3]
cmp eax, edx
jl 0x41c79c
movzx edx, byte [ecx + 1]
cmp eax, edx
jge 0x41c5e4
mov dword [esp + 0x40], 0
cmp dword [esp + 0x48], ebx
jae 0x41c654
mov ecx, dword [esp + 0x7c]
add ecx, dword [esp + 0x28]
mov ecx, dword [ecx*4 + 0x4ffb40]
movzx edx, byte [ecx + 1]
cmp eax, edx
jl 0x41c654
lea ecx, [ecx]
mov dl, byte [ecx]
test dl, dl
je 0x41c7a9
movzx edx, dl
lea ecx, [ecx + edx*4]
movzx edx, byte [ecx + 3]
cmp eax, edx
jl 0x41c7a9
movzx edx, byte [ecx + 1]
cmp eax, edx
jge 0x41c630
xor edi, edi
cmp dword [esp + 0x4c], ebx
jae 0x41c69a
mov ecx, dword [esp + 0x50]
shl ecx, 9
add ecx, dword [esp + 0x10]
mov ecx, dword [ecx*4 + 0x4ffb40]
movzx edx, byte [ecx + 1]
cmp eax, edx
jl 0x41c69a
mov dl, byte [ecx]
test dl, dl
je 0x41c7b3
movzx edx, dl
lea ecx, [ecx + edx*4]
movzx edx, byte [ecx + 3]
cmp eax, edx
jl 0x41c7b3
movzx edx, byte [ecx + 1]
cmp eax, edx
jge 0x41c676
xor esi, esi
cmp dword [esp + 0x54], ebx
jae 0x41c6e4
mov ecx, dword [esp + 0x58]
shl ecx, 9
add ecx, dword [esp + 0x10]
mov ecx, dword [ecx*4 + 0x4ffb40]
movzx edx, byte [ecx + 1]
cmp eax, edx
jl 0x41c6e4
lea esp, [esp]
mov dl, byte [ecx]
test dl, dl
je 0x41c7bd
movzx edx, dl
lea ecx, [ecx + edx*4]
movzx edx, byte [ecx + 3]
cmp eax, edx
jl 0x41c7bd
movzx edx, byte [ecx + 1]
cmp eax, edx
jge 0x41c6c0
xor ecx, ecx
mov edx, dword [esp + 0x30]
movzx ebx, byte [edx + 1]
cmp eax, ebx
sete bl
add bl, bl
test ecx, ecx
sete cl
or bl, cl
add bl, bl
test esi, esi
sete cl
or bl, cl
add bl, bl
test edi, edi
sete cl
or bl, cl
add bl, bl
cmp dword [esp + 0x40], 0
mov byte [ebp + 1], 0
sete cl
inc dword [esp + 0x14]
or bl, cl
mov byte [ebp], bl
movzx edx, byte [edx + 2]
inc eax
add ebp, 8
cmp eax, edx
jle 0x41c550
mov eax, dword [esp + 0x2c]
movzx ecx, byte [eax + 3]
mov eax, dword [esp + 0x30]
movzx edx, byte [eax + 2]
movzx esi, byte [eax + 1]
movzx eax, byte [eax]
sub edx, esi
sub edx, eax
lea eax, [edx + ecx + 2]
cmp eax, ecx
jge 0x41c995
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
lea esi, [ebx - 1]
or esi, edx
mov dword [esp + 0x44], esi
lea esi, [ebx + 1]
or esi, edx
mov dword [esp + 0x48], esi
lea esi, [edx - 1]
inc edx
mov dword [esp + 0x50], esi
or esi, ebx
mov dword [esp + 0x58], edx
or edx, ebx
mov dword [esp + 0x4c], esi
mov esi, dword [esp + 0x14]
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x5c]
lea ebp, [edx + esi*8 + 6]
jmp 0x41c7cb
mov dword [esp + 0x40], 1
jmp 0x41c610
mov edi, 1
jmp 0x41c656
mov esi, 1
jmp 0x41c69c
mov ecx, 1
jmp 0x41c6e6
mov ebx, dword [esp + 0x10]
mov edx, eax
sub edx, ecx
mov ecx, dword [esp + 0x2c]
movzx edi, byte [ecx + edx*4 + 3]
lea edx, [ecx + edx*4]
movzx ecx, byte [edx + 2]
imul ecx, edi
sar ecx, 7
cmp ecx, 0xff
jl 0x41c7f2
mov ecx, 0xff
movzx esi, byte [edx + 1]
imul esi, edi
sar esi, 7
cmp esi, 0xff
jl 0x41c809
mov esi, 0xff
movzx edx, byte [edx]
imul edx, edi
sar edx, 7
cmp edx, 0xff
jl 0x41c81f
mov edx, 0xff
shl ecx, 8
or ecx, esi
shl ecx, 8
or ecx, edx
mov edx, eax
sub edx, dword [esp + 0x24]
cmp dword [esp + 0x44], 0x200
mov dword [ebp - 6], ecx
mov word [ebp - 2], dx
jae 0x41c87a
lea ecx, [ebx - 1]
add ecx, dword [esp + 0x28]
mov ecx, dword [ecx*4 + 0x4ffb40]
movzx edx, byte [ecx + 1]
cmp eax, edx
jl 0x41c87a
mov dl, byte [ecx]
test dl, dl
je 0x41cbbe
movzx edx, dl
lea ecx, [ecx + edx*4]
movzx edx, byte [ecx + 3]
cmp eax, edx
jl 0x41cbbe
movzx edx, byte [ecx + 1]
cmp eax, edx
jge 0x41c856
xor ebx, ebx
mov esi, 0x200
cmp dword [esp + 0x48], esi
jae 0x41c8c4
mov ecx, dword [esp + 0x10]
inc ecx
add ecx, dword [esp + 0x28]
mov ecx, dword [ecx*4 + 0x4ffb40]
movzx edx, byte [ecx + 1]
cmp eax, edx
jl 0x41c8c4
nop
mov dl, byte [ecx]
test dl, dl
je 0x41cbc8
movzx edx, dl
lea ecx, [ecx + edx*4]
movzx edx, byte [ecx + 3]
cmp eax, edx
jl 0x41cbc8
movzx edx, byte [ecx + 1]
cmp eax, edx
jge 0x41c8a0
xor edi, edi
cmp dword [esp + 0x4c], esi
jae 0x41c90a
mov ecx, dword [esp + 0x50]
shl ecx, 9
add ecx, dword [esp + 0x10]
mov ecx, dword [ecx*4 + 0x4ffb40]
movzx edx, byte [ecx + 1]
cmp eax, edx
jl 0x41c90a
mov dl, byte [ecx]
test dl, dl
je 0x41cbd2
movzx edx, dl
lea ecx, [ecx + edx*4]
movzx edx, byte [ecx + 3]
cmp eax, edx
jl 0x41cbd2
movzx edx, byte [ecx + 1]
cmp eax, edx
jge 0x41c8e6
xor esi, esi
cmp dword [esp + 0x54], 0x200
jae 0x41c954
mov ecx, dword [esp + 0x58]
shl ecx, 9
add ecx, dword [esp + 0x10]
mov ecx, dword [ecx*4 + 0x4ffb40]
movzx edx, byte [ecx + 1]
cmp eax, edx
jl 0x41c954
mov dl, byte [ecx]
test dl, dl
je 0x41cbdc
movzx edx, dl
lea ecx, [ecx + edx*4]
movzx edx, byte [ecx + 3]
cmp eax, edx
jl 0x41cbdc
movzx edx, byte [ecx + 1]
cmp eax, edx
jge 0x41c930
xor ecx, ecx
test ecx, ecx
sete cl
add cl, cl
test esi, esi
sete dl
or cl, dl
add cl, cl
test edi, edi
sete dl
or cl, dl
add cl, cl
test ebx, ebx
sete dl
inc dword [esp + 0x14]
or cl, dl
mov byte [ebp], cl
mov ecx, dword [esp + 0x2c]
mov byte [ebp + 1], 0
movzx ecx, byte [ecx + 3]
inc eax
add ebp, 8
cmp eax, ecx
jl 0x41c7c7
mov ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0x14]
or byte [ecx + eax*8 - 2], 0x20
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x2c]
mov esi, eax
cmp byte [edx], 0
mov edi, edx
mov dword [esp + 0x30], edx
jne 0x41c4a1
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x60]
mov edi, esi
sub edi, dword [esp + 0x64]
inc edx
mov word [eax], di
add eax, 2
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], esi
mov dword [esp + 0x18], edx
cmp edx, dword [esp + 0x38]
jle 0x41c482
mov eax, dword [esp + 0x68]
mov edx, esi
sub edx, dword [esp + 0x6c]
inc ebx
mov dword [eax], edx
add eax, 4
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], esi
mov dword [esp + 0x10], ebx
cmp ebx, dword [esp + 0x3c]
jle 0x41c470
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x38]
cmp ecx, eax
jg 0x41cbe6
mov edx, dword [esp + 0x20]
mov esi, ecx
shl esi, 9
add esi, edx
sub eax, ecx
mov ecx, dword [esp + 0x1c]
lea esi, [esi*4 + 0x4ffb40]
inc eax
mov dword [esp + 0x58], esi
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x3c]
cmp edx, eax
jg 0x41cbaa
mov esi, dword [esp + 0x58]
sub eax, edx
inc eax
mov dword [esp + 0x5c], esi
mov dword [esp + 0x6c], eax
lea esp, [esp]
mov edx, dword [esp + 0x5c]
mov edi, dword [edx]
cmp byte [edi], 0
je 0x41cb96
nop
movzx eax, byte [edi]
lea ebx, [edi + eax*4]
mov edx, edi
sar edx, 0xf
mov eax, edi
sar eax, 3
sub edx, eax
and edx, 0xfff
mov eax, dword [edx*4 + 0x5ffe80]
test eax, eax
js 0x41caa7
cmp dword [eax*8 + 0x47fb00], edi
je 0x41caaa
mov eax, dword [eax*8 + 0x47fb04]
test eax, eax
jns 0x41ca93
or eax, 0xffffffff
cmp eax, dword [ecx + 0x68fef0]
jae 0x41cb87
cmp eax, dword [ecx + 0x68feec]
jl 0x41cb87
push 0
mov eax, edi
call fcn.0041b1b0
mov ebp, ebx
add esp, 4
sub ebp, edi
cmp byte [ebx], 0
mov esi, ebx
je 0x41cafa
lea esp, [esp]
mov ecx, esi
sub ecx, ebp
push ecx
mov eax, esi
call fcn.0041b1b0
movzx edx, byte [esi]
lea esi, [esi + edx*4]
add esp, 4
cmp byte [esi], 0
jne 0x41cae0
movzx ecx, byte [esi + 1]
movzx eax, byte [esi + 2]
movzx edx, byte [ebx]
sub eax, ecx
mov byte [edi], dl
mov cl, byte [ebx + 1]
mov byte [edi + 1], cl
movzx edx, byte [ebx + 2]
lea eax, [eax*4 + 8]
sub eax, ebx
mov byte [edi + 2], dl
add eax, esi
mov edx, 4
cmp eax, edx
jle 0x41cb4b
add eax, 0xfffffffb
shr eax, 2
inc eax
lea ecx, [edi + 4]
lea edx, [eax*4 + 4]
jmp 0x41cb40
mov esi, dword [ecx + ebp]
mov dword [ecx], esi
add ecx, 4
dec eax
jne 0x41cb40
mov ecx, edi
sub ecx, 0x690500
add ecx, edx
sar ecx, 2
sar ebp, 2
add ebp, ecx
mov eax, 1
rol eax, cl
cmp ecx, ebp
jge 0x41cb81
mov edx, ecx
sar edx, 5
mov esi, eax
lea edx, [edx*4 + 0x603ea0]
not esi
and dword [edx], esi
inc ecx
rol eax, 1
cmp ecx, ebp
jl 0x41cb68
mov ecx, dword [esp + 0x1c]
mov ebx, edi
cmp byte [ebx], 0
mov edi, ebx
jne 0x41ca70
mov eax, dword [esp + 0x6c]
add dword [esp + 0x5c], 4
dec eax
mov dword [esp + 0x6c], eax
jne 0x41ca60
mov edx, dword [esp + 0x20]
add dword [esp + 0x58], 0x800
dec dword [esp + 0x68]
jne 0x41ca41
jmp 0x41cbea
mov ebx, 1
jmp 0x41c87c
mov edi, 1
jmp 0x41c8c6
mov esi, 1
jmp 0x41c90c
mov ecx, 1
jmp 0x41c956
mov ecx, dword [esp + 0x1c]
pop edi
pop ebp
pop ebx
mov dword [ecx + 0x68fef0], 0xffffffff
mov eax, 1
pop esi
add esp, 0x74
ret