Function at 0x41e2e0
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 0x41e7d8
cmp dword [ebp + 0x20], 1
jne 0x41e7d8
xor eax, eax
lea ecx, [esi + 0x18]
push edi
mov dword [ebp - 0x30], ecx
lea edi, [ecx + 0x14]
mov dword [ebp + 0x14], eax
lea ecx, [eax + 4]
push ebx
mov ebx, dword [edi + 0x14]
and ebx, 0xfffffffc
cmp ebx, 4
cmovb ebx, ecx
mov ecx, dword [edi - 0x14]
test ecx, ecx
je 0x41e335
cmp ebx, dword [edi]
je 0x41e351
push ecx
call fcn.00402230
mov dword [edi - 0x14], 0
push ebx
mov dword [edi], 0
call fcn.00402200
test eax, eax
je 0x41e7ca
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 0x41e311
mov eax, dword [esi + 0x18]
lea edi, [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 [edi + 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.00402640
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 - 0x2c], xmm0
movlpd qword [ebp - 0x38], xmm0
mov dword [ebp - 0xc], 0
mov dword [ebp - 0x10], 0
call fcn.00402290
mov ebx, dword [ebp - 0x28]
test eax, eax
jne 0x41e6ed
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 4], ebx
mov dword [ebp + 0x14], edx
nop dword [eax]
mov eax, dword [esi + 0xc0]
cmp eax, 4
jae 0x41e5ed
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + eax*4]
mov eax, dword [edi + 0xa8]
mov dword [ebp + 0x20], eax
mov dword [ebp - 8], edx
mov ebx, dword [edi + eax*4 + 0x80]
lea ecx, [edi + eax*4]
lea esi, [eax + 0x24]
mov dword [ebp - 0x14], ecx
mov ecx, dword [ecx]
lea esi, [edi + esi*4]
mov dword [edi + eax*4 + 0x80], ecx
mov dword [edi + eax*4 + 0x90], ecx
add edi, 0x4c
mov dword [ebp - 0x28], esi
mov esi, dword [ebp + 8]
lea eax, [edi + eax*4]
mov edi, dword [eax]
mov dword [ebp - 0x20], eax
test edi, edi
je 0x41e4f1
sub ebx, ecx
mov edx, edi
nop dword [eax]
mov al, byte [ebx + ecx]
lea ecx, [ecx + 1]
mov byte [ecx - 1], al
sub edx, 1
jne 0x41e4e0
mov edx, dword [ebp - 8]
mov ebx, dword [ebp + 0x20]
lea ecx, [esi + 0x18]
lea eax, [ebx + 0xf]
cmp dword [ecx + eax*4], 0
lea eax, [ecx + eax*4]
mov dword [ebp - 0x24], eax
jne 0x41e5c0
lea eax, [ebx - 1]
mov dword [ebp - 0x1c], eax
lea eax, [ebx + 5]
lea eax, [ecx + eax*4]
mov ecx, dword [eax]
mov dword [ebp - 0x18], eax
sub ecx, edi
mov eax, dword [edx]
mov dword [ebp + 0x20], ecx
mov edx, dword [eax + 0xc]
lea eax, [ebp + 0x20]
push eax
mov eax, dword [ebp - 0x14]
push ecx
mov eax, dword [eax]
add eax, edi
push eax
push dword [ebp - 8]
call edx
mov ecx, dword [ebp + 0x20]
mov edx, eax
mov dword [esi + ebx*4 + 0x54], eax
test ecx, ecx
je 0x41e591
add dword [esi + ebx*8 + 0x78], ecx
adc dword [esi + ebx*8 + 0x7c], 0
add edi, ecx
test eax, eax
jne 0x41e591
cmp edi, 4
jae 0x41e591
lea eax, [ebx - 1]
cmp eax, 2
jae 0x41e591
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax]
mov eax, dword [ebp - 8]
sub ecx, edi
mov dword [ebp + 0x20], ecx
mov eax, dword [eax]
mov edx, dword [eax + 0xc]
lea eax, [ebp + 0x20]
push eax
mov eax, dword [ebp - 0x14]
push ecx
mov eax, dword [eax]
add eax, edi
push eax
push dword [ebp - 8]
call edx
mov ecx, dword [ebp + 0x20]
mov edx, eax
mov dword [esi + ebx*4 + 0x54], eax
test ecx, ecx
jne 0x41e544
test edi, edi
je 0x41e5c0
cmp dword [ebp - 0x1c], 2
jae 0x41e5bb
mov ecx, dword [ebp - 0x20]
mov eax, edi
and eax, 3
mov dword [ecx], eax
cmp edi, 4
jae 0x41e5b9
test edx, edx
jne 0x41e5c0
mov eax, dword [ebp - 0x24]
mov dword [eax], 1
jmp 0x41e5c0
sub edi, eax
mov eax, dword [ebp - 0x28]
add dword [eax], edi
mov ecx, dword [esi + 0xc0]
mov ebx, dword [ebp - 4]
mov eax, dword [esi + ecx*4 + 0xa8]
mov edx, dword [esi + ecx*4 + 0x54]
cmp eax, dword [esi + ecx*4 + 0x18]
je 0x41e6e8
test edx, edx
je 0x41e65a
cmp dword [ebp - 0x10], 0
jne 0x41e65a
mov dword [ebp - 0x10], edx
jmp 0x41e65a
mov eax, dword [esi + 0xb8]
mov ecx, dword [esi + 0x28]
sub eax, ecx
je 0x41e619
add edx, eax
push eax
mov eax, dword [ebp + 0x18]
adc ebx, 0
push ecx
mov dword [ebp + 0x14], edx
mov dword [ebp - 4], ebx
push dword [eax]
call fcn.0041e0c0
test eax, eax
jne 0x41e7b3
mov eax, dword [ebp + 0x1c]
mov ecx, dword [esi + 0x3c]
test eax, eax
je 0x41e641
mov eax, dword [eax]
test eax, eax
je 0x41e641
mov edx, dword [eax]
sub edx, dword [ebp + 0x14]
mov eax, dword [eax + 4]
sbb eax, ebx
xor edi, edi
cmp edi, eax
jb 0x41e641
ja 0x41e63f
cmp ecx, edx
jbe 0x41e641
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 0x41e6fa
cmp dword [ebp + 0x24], 0
je 0x41e6cd
mov edx, dword [esi + 0xb8]
xor edi, edi
sub edx, dword [esi + 0x28]
add edx, dword [ebp + 0x14]
mov ecx, edx
adc edi, ebx
sub ecx, dword [ebp - 0x38]
mov eax, edi
sbb eax, dword [ebp - 0x34]
mov dword [ebp - 0x28], eax
jne 0x41e687
cmp ecx, 0x1000000
jb 0x41e6cd
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 0x41e7b3
lea eax, [esi + 0x98]
push eax
call fcn.00402290
test eax, eax
jne 0x41e6f3
mov edx, dword [ebp + 0x14]
lea edi, [esi + 0x18]
jmp 0x41e480
mov dword [ebp - 0xc], edx
jmp 0x41e6fa
mov eax, dword [ebp - 0x2c]
mov dword [ebp + 0x14], eax
mov dword [ebp - 0xc], 1
mov eax, dword [esi + 0xb8]
mov ecx, dword [esi + 0x28]
mov edi, dword [ebp + 0x14]
sub eax, ecx
je 0x41e723
push eax
add edi, eax
mov eax, dword [ebp + 0x18]
push ecx
adc ebx, 0
push dword [eax]
call fcn.0041e0c0
test eax, eax
jne 0x41e7b3
mov ecx, dword [ebp - 0xc]
test ecx, ecx
mov eax, dword [ebp - 0x10]
cmovne eax, ecx
test eax, eax
jne 0x41e7b3
cmp byte [esi + 0x2d8], al
je 0x41e7b1
cmp dword [esi + 0xd0], eax
jne 0x41e7bc
mov eax, dword [esi + 0xc0]
test eax, eax
je 0x41e755
cmp eax, 8
jne 0x41e7bc
mov eax, dword [ebp + 0x1c]
test eax, eax
je 0x41e76b
mov eax, dword [eax]
test eax, eax
je 0x41e76b
cmp dword [eax], edi
jne 0x41e7bc
cmp dword [eax + 4], ebx
jne 0x41e7bc
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x41e7b1
mov ecx, dword [ebp - 0x30]
xor esi, esi
lea edi, [ecx + 0x60]
lea edx, [ecx + 0x80]
mov ebx, dword [eax + esi*4]
test ebx, ebx
je 0x41e7a5
mov eax, dword [edx - 0x34]
add eax, dword [edx + 0x10]
sub eax, dword [edx]
mov ecx, dword [edi]
sub ecx, eax
mov eax, dword [edi + 4]
sbb eax, 0
cmp dword [ebx], ecx
jne 0x41e7bc
cmp dword [ebx + 4], eax
jne 0x41e7bc
mov eax, dword [ebp + 0x10]
inc esi
add edi, 8
add edx, 4
cmp esi, 4
jb 0x41e780
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