Function at 0x41fe20
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 0x420335
cmp dword [ebp + 0x20], 1
jne 0x420335
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 0x41fe74
cmp ebx, dword [edi]
je 0x41fe90
push ecx
call fcn.00402a40
mov dword [edi - 0x14], 0
push ebx
mov dword [edi], 0
call fcn.00402a10
test eax, eax
je 0x420327
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 0x41fe50
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.00402e50
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.00402aa0
mov edi, dword [ebp - 0x2c]
test eax, eax
jne 0x42023a
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 0x420130
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 0x420034
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 0x420020
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 0x420106
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 0x4200d7
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 0x4200d4
cmp edi, 4
jae 0x4200d4
lea eax, [edx - 1]
cmp eax, 2
jae 0x4200d4
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 0x420080
jmp 0x4200d7
mov edx, dword [ebp - 8]
test edi, edi
je 0x420106
cmp dword [ebp - 0x24], 2
jae 0x420101
mov ecx, dword [ebp - 0x28]
mov eax, edi
and eax, 3
mov dword [ecx], eax
cmp edi, 4
jae 0x4200ff
test edx, edx
jne 0x420106
mov eax, dword [ebp - 0xc]
mov dword [eax], 1
jmp 0x420106
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 0x420232
test edx, edx
je 0x4201a3
cmp dword [ebp - 0x14], 0
jne 0x4201a3
mov dword [ebp - 0x14], edx
jmp 0x4201a3
mov eax, dword [esi + 0xb8]
mov ecx, dword [esi + 0x28]
sub eax, ecx
je 0x42015c
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.0041fc00
test eax, eax
jne 0x420310
mov eax, dword [ebp + 0x1c]
mov ecx, dword [esi + 0x3c]
test eax, eax
je 0x42018a
mov eax, dword [eax]
test eax, eax
je 0x42018a
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 0x42018a
ja 0x420188
cmp ecx, edx
jbe 0x42018a
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 0x420247
cmp dword [ebp + 0x24], 0
je 0x420217
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 0x4201d1
cmp ecx, 0x1000000
jb 0x420217
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 0x420310
lea eax, [esi + 0x98]
push eax
call fcn.00402aa0
mov edi, dword [ebp - 4]
test eax, eax
jne 0x420240
mov edx, dword [ebp + 0x14]
jmp 0x41ffc0
mov edi, dword [ebp - 4]
mov dword [ebp - 0x10], edx
jmp 0x420247
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 0x42026e
add dword [ebp + 0x14], eax
push eax
mov eax, dword [ebp + 0x18]
adc edi, 0
push ecx
push dword [eax]
call fcn.0041fc00
test eax, eax
jne 0x420310
mov ecx, dword [ebp - 0x10]
test ecx, ecx
mov eax, dword [ebp - 0x14]
cmovne eax, ecx
test eax, eax
jne 0x420310
cmp byte [esi + 0x2d8], al
je 0x42030e
cmp dword [esi + 0xd0], eax
jne 0x420319
mov eax, dword [esi + 0xc0]
test eax, eax
je 0x4202a8
cmp eax, 8
jne 0x420319
mov eax, dword [ebp + 0x1c]
test eax, eax
je 0x4202c1
mov eax, dword [eax]
test eax, eax
je 0x4202c1
mov ecx, dword [ebp + 0x14]
cmp dword [eax], ecx
jne 0x420319
cmp dword [eax + 4], edi
jne 0x420319
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x42030e
mov esi, 0x60
mov edx, 0x90
mov edi, dword [eax + edx - 0x90]
test edi, edi
je 0x420300
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 0x420319
cmp dword [edi + 4], eax
jne 0x420319
mov eax, dword [ebp + 0x10]
add esi, 8
add edx, 4
cmp esi, 0x80
jb 0x4202d2
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