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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x24]
cmp eax, dword [ecx + 8]
jbe 0x41d824
sub esp, 0xa4
mov eax, dword [esp + 0xa8]
test byte [eax], al
mov dword [esp], eax
call fcn.00401ce0
mov eax, dword [esp + 4]
test eax, eax
jge 0x41d22e
mov eax, 0x186a0
mov dword [esp + 0x6c], eax
mov ecx, dword [esp + 0xa8]
lea edx, [ecx + 0x70]
mov dword [esp], edx
call fcn.00401e50
mov eax, dword [esp + 0xa8]
lea ecx, [eax + 0x78]
mov edx, dword [esp + 4]
mov dword [esp + 0x50], edx
mov ebx, dword [esp + 8]
mov dword [esp + 0x54], ebx
mov dword [esp], ecx
call fcn.00401e50
mov eax, dword [esp + 4]
mov dword [esp + 0x48], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x4c], ecx
mov edx, dword [esp + 0xa8]
lea ebx, [edx + 0xa8]
mov dword [esp], ebx
call fcn.00401cf0
mov eax, dword [esp + 4]
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x24], ecx
mov edx, dword [esp + 0xa8]
lea ebx, [edx + 0xb0]
mov dword [esp], ebx
call fcn.00401cf0
mov eax, dword [esp + 4]
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x20]
add ecx, eax
mov dword [esp + 0xa0], ecx
mov ebx, dword [esp + 8]
mov dword [esp + 0x28], ebx
mov ebp, dword [esp + 0xa8]
lea esi, [ebp + 0xb8]
mov dword [esp], esi
call fcn.00401cf0
mov eax, dword [esp + 4]
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0xa0]
add eax, ecx
mov dword [esp + 0x30], eax
mov ebx, dword [esp + 8]
mov dword [esp + 0x2c], ebx
mov ebp, dword [esp + 0xa8]
lea esi, [ebp + 0x60]
mov dword [esp], esi
call fcn.00401e50
mov eax, dword [esp + 0xa8]
mov ecx, dword [eax + 0x80]
mov edx, dword [eax + 0x88]
mov dword [esp + 0x9c], edx
mov ebx, ecx
add ecx, edx
mov ebp, dword [eax + 0x98]
mov dword [esp + 0x98], ebp
mov esi, ecx
add ecx, ebp
mov dword [esp + 0x40], ecx
mov edi, dword [esp + 0x48]
add edx, edi
mov dword [esp + 0x94], edx
add ebp, edx
mov dword [esp + 0x90], ebp
mov ebp, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
add ebp, ecx
mov ecx, dword [esp + 0x24]
mov ebp, dword [esp + 0x28]
adc ecx, ebp
mov ebp, dword [esp + 0x18]
mov edx, dword [esp + 0xa0]
add ebp, edx
mov edx, dword [esp + 0x2c]
adc ecx, edx
mov dword [esp + 0x34], ecx
mov edx, dword [eax + 0x84]
mov ebp, dword [eax + 0x8c]
mov ecx, dword [esp + 0x9c]
add ebx, ecx
adc edx, ebp
mov ebx, dword [eax + 0x9c]
mov eax, dword [esp + 0x98]
add esi, eax
adc edx, ebx
add ecx, edi
mov ecx, dword [esp + 0x4c]
adc ebp, ecx
mov ecx, dword [esp + 0x94]
add eax, ecx
adc ebx, ebp
mov dword [esp + 0x44], ebx
mov eax, dword [esp + 0x34]
cmp edx, eax
setl cl
mov ebp, dword [esp + 0x40]
mov esi, dword [esp + 0x30]
cmp ebp, esi
xchg edi, ebx
setb bl
xchg edi, ebx
cmp edx, eax
sete bl
and ebx, edi
or ebx, ecx
mov ecx, dword [esp + 8]
mov dword [esp + 0x64], ecx
mov edi, dword [esp + 4]
mov ecx, dword [esp + 8]
test bl, bl
je 0x41d618
mov dword [esp + 0x8c], edx
mov dword [esp + 0x60], edi
mov dword [esp + 0x68], ecx
mov eax, dword [esp + 0xa8]
mov ecx, dword [eax + 0x18]
sub edi, ecx
mov ecx, dword [eax + 0x1c]
mov ebx, dword [esp + 0x64]
sbb ebx, ecx
mov dword [esp + 4], ebx
mov dword [esp], edi
call fcn.0044ae40
mov eax, dword [esp + 0xc]
mov dword [esp + 0xa0], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x9c], ecx
mov edx, dword [esp + 0x8c]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x40]
mov dword [esp], edx
call fcn.0044ae40
mov eax, dword [esp + 0xa0]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x9c]
mov dword [esp], eax
call fcn.00449b90
mov eax, dword [esp + 0x14]
mov dword [esp + 0xa0], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x9c], ecx
mov edx, dword [esp + 0x44]
mov dword [esp + 4], edx
mov ebx, dword [esp + 0x90]
mov dword [esp], ebx
call fcn.0044ae40
mov eax, dword [esp + 0xa0]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x9c]
mov dword [esp], eax
call fcn.00449710
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.0044aed0
mov eax, dword [esp + 8]
mov dword [esp + 0xa0], eax
mov ecx, dword [esp + 0xa8]
mov edx, dword [ecx + 0x18]
mov dword [esp + 0x9c], edx
add eax, edx
mov dword [esp + 0x70], eax
mov ebp, dword [esp + 0xc]
mov dword [esp + 0x98], ebp
mov esi, dword [ecx + 0x1c]
mov dword [esp + 0x94], esi
mov edi, dword [esp + 0x6c]
mov dword [esp], edi
call fcn.0044adf0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
mov dword [esp + 4], eax
mov dword [esp], ecx
mov dword [esp + 0xc], 0x40590000
mov dword [esp + 8], 0
call fcn.00449b90
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov dword [esp + 4], 0x3ff00000
mov dword [esp], 0
mov dword [esp + 0xc], eax
mov dword [esp + 8], ecx
call fcn.00449090
mov eax, dword [esp + 0x14]
mov dword [esp + 0x88], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x84], ecx
mov edx, dword [esp + 0x68]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x60]
mov dword [esp], edx
call fcn.0044ae40
mov eax, dword [esp + 0x88]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x84]
mov dword [esp], eax
call fcn.00449710
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.0044aed0
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0x9c]
add eax, ecx
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x94]
adc eax, ecx
mov ecx, dword [esp + 0xc]
cmp ecx, eax
setl cl
sete dl
mov ebx, dword [esp + 8]
mov ebp, dword [esp + 0x70]
cmp ebp, ebx
xchg esi, ebx
seta bl
xchg esi, ebx
and esi, edx
or esi, ecx
mov ecx, dword [esp + 0xc]
xchg esi, eax
test al, al
xchg esi, eax
jne 0x41d603
mov ecx, eax
mov ebx, ebp
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 0x30]
mov edi, ebx
mov edx, dword [esp + 0x44]
mov ebp, dword [esp + 0x90]
mov ebx, dword [esp + 0x50]
cmp edi, ebx
setb bl
mov eax, dword [esp + 0x54]
cmp ecx, eax
sete al
xchg esi, ebx
setl bl
xchg esi, ebx
and eax, ebx
or esi, eax
xchg esi, eax
test al, al
xchg esi, eax
je 0x41d692
mov dword [esp + 4], ecx
mov dword [esp], edi
call fcn.0044ae40
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov dword [esp + 4], eax
mov dword [esp], ecx
mov dword [esp + 0xc], 0x3ff19999
mov dword [esp + 8], 0x9999999a
call fcn.00449710
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.0044aed0
mov edi, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x44]
mov ebp, dword [esp + 0x90]
mov eax, dword [esp + 0x30]
sub ebp, eax
mov eax, dword [esp + 0x34]
sbb edx, eax
test edx, edx
setl al
sete bl
cmp ebp, 0x3e8
xchg esi, ebx
setb bl
xchg esi, ebx
and esi, ebx
or esi, eax
xchg esi, eax
test al, al
xchg esi, eax
je 0x41d6c4
xor edx, edx
mov ebp, 0x3e8
mov eax, dword [esp + 0x50]
sub edi, eax
mov eax, dword [esp + 0x54]
sbb ecx, eax
test ecx, ecx
setl al
sete bl
test edi, edi
xchg esi, ebx
setbe bl
xchg esi, ebx
and esi, ebx
or esi, eax
xchg esi, eax
test al, al
xchg esi, eax
je 0x41d6f2
xor ecx, ecx
mov edi, 1
mov dword [esp + 0x38], ebp
mov dword [esp + 0x58], edi
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x3c], edx
mov dword [esp + 4], edx
mov dword [esp], ebp
call fcn.0044ae40
mov eax, dword [esp + 0xc]
mov dword [esp + 0xa0], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x9c], ecx
mov edx, dword [esp + 0x5c]
mov dword [esp + 4], edx
mov ebx, dword [esp + 0x58]
mov dword [esp], ebx
call fcn.0044ae40
mov eax, dword [esp + 0xa0]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x9c]
mov dword [esp], eax
call fcn.00449b90
mov eax, dword [esp + 0x14]
mov dword [esp + 0x78], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x74], ecx
mov edx, dword [esp + 0x5c]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x58]
mov dword [esp], edx
call fcn.0044ae40
mov eax, dword [esp + 0xc]
mov dword [esp + 0xa0], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x9c], ecx
mov edx, dword [esp + 0x3c]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x38]
mov dword [esp], edx
call fcn.0044ae40
mov eax, dword [esp + 0xa0]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x9c]
mov dword [esp], eax
call fcn.00449b90
mov eax, dword [esp + 0x14]
mov dword [esp + 0x80], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x7c], ecx
nop
nop
mov edx, dword [esp + 0xa8]
lea ebx, [edx + 0xf8]
mov dword [esp], ebx
mov ebx, dword [esp + 0x78]
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x74]
mov dword [esp + 4], ebx
call fcn.00401e70
nop
nop
mov eax, dword [esp + 0xa8]
add eax, 0x100
mov dword [esp], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 4], eax
call fcn.00401e70
add esp, 0xa4
ret
call fcn.0045fcc0
jmp fcn.0041d1f0