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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x40
cmp dword [ebp + 0x14], 4
push esi
mov esi, dword [ebp + 8]
jne 0x41ff05
cmp dword [ebp + 0x20], 1
jne 0x41ff05
xor eax, eax
push edi
mov dword [ebp + 0x14], eax
lea edi, [esi + 0x2c]
push ebx
lea ecx, [eax + 4]
nop dword [eax + eax]
mov ebx, dword [edi + 0x14]
and ebx, 0xfffffffc
cmp ebx, 4
cmovb ebx, ecx
mov ecx, dword [edi - 0x14]
test ecx, ecx
je 0x41fa44
cmp ebx, dword [edi]
je 0x41fa60
push ecx
call fcn.004026f0
mov dword [edi - 0x14], 0
push ebx
mov dword [edi], 0
call fcn.004026c0
test eax, eax
je 0x41fef7
mov dword [edi - 0x14], eax
mov eax, dword [ebp + 0x14]
mov dword [edi], ebx
inc eax
add edi, 4
mov dword [ebp + 0x14], eax
mov ecx, 4
cmp eax, 5
jb 0x41fa20
mov eax, dword [esi + 0x18]
lea ebx, [esi + 0x18]
mov dword [esi + 0x98], eax
lea ecx, [esi + 0x98]
mov dword [esi + 0xa8], eax
mov dword [esi + 0x54], 0
mov dword [esi + 0x64], 0
mov dword [esi + 0x78], 0
mov dword [esi + 0x7c], 0
mov eax, dword [ebx + 4]
mov dword [esi + 0x9c], eax
mov dword [esi + 0xac], eax
mov dword [esi + 0x58], 0
mov dword [esi + 0x68], 0
mov dword [esi + 0x80], 0
mov dword [esi + 0x84], 0
mov eax, dword [esi + 0x20]
mov dword [esi + 0xa0], eax
mov dword [esi + 0xb0], eax
mov dword [esi + 0x5c], 0
mov dword [esi + 0x6c], 0
mov dword [esi + 0x88], 0
mov dword [esi + 0x8c], 0
mov eax, dword [esi + 0x24]
mov dword [esi + 0xa4], eax
mov dword [esi + 0xb4], eax
mov dword [esi + 0x60], 0
mov dword [esi + 0x70], 0
push ecx
mov dword [esi + 0x90], 0
mov dword [esi + 0x94], 0
call fcn.00402b00
mov eax, dword [esi + 0x28]
xorps xmm0, xmm0
mov dword [esi + 0xb8], eax
mov dword [esi + 0xbc], eax
lea eax, [esi + 0x98]
push eax
movlpd qword [ebp - 0x30], xmm0
movlpd qword [ebp - 0x38], xmm0
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x14], 0
call fcn.00402750
mov edi, dword [ebp - 0x2c]
test eax, eax
jne 0x41fe0a
mov edx, dword [ebp - 0x30]
mov dword [ebp - 4], edi
mov dword [ebp + 0x14], edx
nop dword [eax + eax]
mov eax, dword [esi + 0xc0]
cmp eax, 4
jae 0x41fd00
mov edx, dword [ebx + 0xa8]
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x18], edx
mov eax, dword [ecx + eax*4]
mov ecx, dword [ebx + edx*4]
mov dword [ebp - 0x1c], eax
lea eax, [ebx + edx*4]
mov dword [ebp - 0x20], eax
mov eax, dword [ebx + edx*4 + 0x80]
mov dword [ebp + 0x20], eax
lea eax, [ebx + 0x90]
lea eax, [eax + edx*4]
mov dword [ebx + edx*4 + 0x80], ecx
mov dword [eax], ecx
mov dword [ebp - 0x2c], eax
lea eax, [ebx + 0x4c]
mov edi, dword [eax + edx*4]
lea eax, [eax + edx*4]
mov dword [ebp - 0x28], eax
test edi, edi
je 0x41fc04
mov esi, dword [ebp + 0x20]
mov edx, edi
sub esi, ecx
mov al, byte [esi + ecx]
lea ecx, [ecx + 1]
mov byte [ecx - 1], al
sub edx, 1
jne 0x41fbf0
mov esi, dword [ebp + 8]
mov edx, dword [ebp - 0x18]
lea eax, [ebx + 0x3c]
cmp dword [eax + edx*4], 0
lea eax, [eax + edx*4]
mov dword [ebp - 0xc], eax
jne 0x41fcd6
lea eax, [edx - 1]
mov dword [ebp - 0x24], eax
lea esi, [ebp + 0x20]
mov eax, dword [ebx + edx*4 + 0x14]
mov edx, dword [ebp - 0x1c]
sub eax, edi
push esi
push eax
mov dword [ebp + 0x20], eax
mov eax, dword [ebp - 0x20]
mov ecx, dword [edx]
mov eax, dword [eax]
add eax, edi
push eax
push edx
call dword [ecx + 0xc]
mov ecx, dword [ebp - 0xc]
mov edx, eax
mov esi, dword [ebp + 8]
mov dword [ecx], eax
mov ecx, dword [ebp + 0x20]
test ecx, ecx
je 0x41fca7
mov dword [ebp - 8], eax
mov edx, dword [ebp - 0x18]
add dword [ebx + edx*8 + 0x60], ecx
adc dword [ebx + edx*8 + 0x64], 0
add edi, ecx
test eax, eax
jne 0x41fca4
cmp edi, 4
jae 0x41fca4
lea eax, [edx - 1]
cmp eax, 2
jae 0x41fca4
mov eax, dword [ebx + edx*4 + 0x14]
lea esi, [ebp + 0x20]
mov edx, dword [ebp - 0x1c]
sub eax, edi
push esi
push eax
mov dword [ebp + 0x20], eax
mov eax, dword [ebp - 0x20]
mov ecx, dword [edx]
mov eax, dword [eax]
add eax, edi
push eax
push edx
call dword [ecx + 0xc]
mov ecx, dword [ebp - 0xc]
mov edx, eax
mov esi, dword [ebp + 8]
mov dword [ebp - 8], edx
mov dword [ecx], eax
mov ecx, dword [ebp + 0x20]
test ecx, ecx
jne 0x41fc50
jmp 0x41fca7
mov edx, dword [ebp - 8]
test edi, edi
je 0x41fcd6
cmp dword [ebp - 0x24], 2
jae 0x41fcd1
mov ecx, dword [ebp - 0x28]
mov eax, edi
and eax, 3
mov dword [ecx], eax
cmp edi, 4
jae 0x41fccf
test edx, edx
jne 0x41fcd6
mov eax, dword [ebp - 0xc]
mov dword [eax], 1
jmp 0x41fcd6
sub edi, eax
mov eax, dword [ebp - 0x2c]
add dword [eax], edi
mov ecx, dword [esi + 0xc0]
mov eax, dword [esi + ecx*4 + 0xa8]
mov edx, dword [esi + ecx*4 + 0x54]
cmp eax, dword [esi + ecx*4 + 0x18]
je 0x41fe02
test edx, edx
je 0x41fd73
cmp dword [ebp - 0x14], 0
jne 0x41fd73
mov dword [ebp - 0x14], edx
jmp 0x41fd73
mov eax, dword [esi + 0xb8]
mov ecx, dword [esi + 0x28]
sub eax, ecx
je 0x41fd2c
add edx, eax
push eax
mov eax, dword [ebp + 0x18]
adc edi, 0
push ecx
mov dword [ebp + 0x14], edx
mov dword [ebp - 4], edi
push dword [eax]
call fcn.0041f7d0
test eax, eax
jne 0x41fee0
mov eax, dword [ebp + 0x1c]
mov ecx, dword [esi + 0x3c]
test eax, eax
je 0x41fd5a
mov eax, dword [eax]
test eax, eax
je 0x41fd5a
mov edx, dword [eax]
sub edx, dword [ebp + 0x14]
mov eax, dword [eax + 4]
sbb eax, edi
mov dword [ebp + 0x20], 0
cmp dword [ebp + 0x20], eax
jb 0x41fd5a
ja 0x41fd58
cmp ecx, edx
jbe 0x41fd5a
mov ecx, edx
mov eax, dword [esi + 0x28]
mov dword [esi + 0xb8], eax
add eax, ecx
mov dword [esi + 0xbc], eax
test ecx, ecx
je 0x41fe17
cmp dword [ebp + 0x24], 0
je 0x41fde7
mov edx, dword [esi + 0xb8]
xor edi, edi
sub edx, dword [esi + 0x28]
add edx, dword [ebp + 0x14]
mov ecx, edx
adc edi, dword [ebp - 4]
sub ecx, dword [ebp - 0x38]
mov eax, edi
sbb eax, dword [ebp - 0x34]
mov dword [ebp - 0x2c], eax
jne 0x41fda1
cmp ecx, 0x1000000
jb 0x41fde7
mov eax, dword [esi + 0xb4]
sub eax, dword [esi + 0xa4]
mov ecx, dword [esi + 0x90]
sub ecx, eax
mov dword [ebp - 0x38], edx
mov eax, dword [esi + 0x94]
sbb eax, 0
mov dword [ebp - 0x34], edi
add ecx, edx
lea edx, [ebp - 0x38]
mov dword [ebp - 0x40], ecx
mov ecx, dword [ebp + 0x24]
adc eax, edi
push edx
mov dword [ebp - 0x3c], eax
lea edx, [ebp - 0x40]
push edx
mov eax, dword [ecx]
push ecx
call dword [eax + 0xc]
test eax, eax
jne 0x41fee0
lea eax, [esi + 0x98]
push eax
call fcn.00402750
mov edi, dword [ebp - 4]
test eax, eax
jne 0x41fe10
mov edx, dword [ebp + 0x14]
jmp 0x41fb90
mov edi, dword [ebp - 4]
mov dword [ebp - 0x10], edx
jmp 0x41fe17
mov eax, dword [ebp - 0x30]
mov dword [ebp + 0x14], eax
mov dword [ebp - 0x10], 1
mov eax, dword [esi + 0xb8]
mov ecx, dword [esi + 0x28]
sub eax, ecx
je 0x41fe3e
add dword [ebp + 0x14], eax
push eax
mov eax, dword [ebp + 0x18]
adc edi, 0
push ecx
push dword [eax]
call fcn.0041f7d0
test eax, eax
jne 0x41fee0
mov ecx, dword [ebp - 0x10]
test ecx, ecx
mov eax, dword [ebp - 0x14]
cmovne eax, ecx
test eax, eax
jne 0x41fee0
cmp byte [esi + 0x2d8], al
je 0x41fede
cmp dword [esi + 0xd0], eax
jne 0x41fee9
mov eax, dword [esi + 0xc0]
test eax, eax
je 0x41fe78
cmp eax, 8
jne 0x41fee9
mov eax, dword [ebp + 0x1c]
test eax, eax
je 0x41fe91
mov eax, dword [eax]
test eax, eax
je 0x41fe91
mov ecx, dword [ebp + 0x14]
cmp dword [eax], ecx
jne 0x41fee9
cmp dword [eax + 4], edi
jne 0x41fee9
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x41fede
mov esi, 0x60
mov edx, 0x90
mov edi, dword [eax + edx - 0x90]
test edi, edi
je 0x41fed0
mov eax, dword [ebx + edx - 0x44]
sub eax, dword [ebx + edx - 0x10]
add eax, dword [ebx + edx]
mov ecx, dword [ebx + esi]
sub ecx, eax
mov eax, dword [ebx + esi + 4]
sbb eax, 0
cmp dword [edi], ecx
jne 0x41fee9
cmp dword [edi + 4], eax
jne 0x41fee9
mov eax, dword [ebp + 0x10]
add esi, 8
add edx, 4
cmp esi, 0x80
jb 0x41fea2
xor eax, eax
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x20
pop ebx
pop edi
mov eax, 1
pop esi
mov esp, ebp
pop ebp
ret 0x20
pop ebx
pop edi
mov eax, 0x8007000e
pop esi
mov esp, ebp
pop ebp
ret 0x20
mov eax, 0x80070057
pop esi
mov esp, ebp
pop ebp
ret 0x20