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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x54
cmp dword [ebp + 0x14], 4
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
jne 0x41e04a
cmp dword [ebp + 0x20], 1
jne 0x41e04a
lea eax, [ebx + 0x18]
mov ecx, 4
mov dword [esp + 0x4c], eax
lea edi, [ebx + 0x2c]
xor eax, eax
mov dword [esp + 0x20], eax
nop dword [eax + eax]
mov esi, dword [edi + 0x14]
and esi, 0xfffffffc
cmp esi, 4
cmovb esi, ecx
mov ecx, dword [edi - 0x14]
test ecx, ecx
je 0x41da9c
cmp esi, dword [edi]
je 0x41dacb
push 0x8000
push 0
push ecx
call dword [sym.imp.KERNEL32.dll_VirtualFree]
mov dword [edi - 0x14], 0
mov dword [edi], 0
test esi, esi
je 0x41e03c
push 4
push 0x1000
push esi
push 0
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
test eax, eax
je 0x41e03c
mov dword [edi - 0x14], eax
mov eax, dword [esp + 0x20]
mov dword [edi], esi
inc eax
add edi, 4
mov dword [esp + 0x20], eax
mov ecx, 4
cmp eax, 5
jb 0x41da70
mov eax, dword [ebx + 0x18]
lea esi, [ebx + 0x18]
mov dword [ebx + 0x98], eax
lea edi, [ebx + 0xd4]
mov dword [ebx + 0xa8], eax
mov ecx, 0x81
mov dword [ebx + 0x54], 0
xorps xmm0, xmm0
mov dword [ebx + 0x64], 0
mov dword [ebx + 0x78], 0
mov dword [ebx + 0x7c], 0
mov eax, dword [esi + 4]
mov dword [ebx + 0x9c], eax
mov dword [ebx + 0xac], eax
mov dword [ebx + 0x58], 0
mov dword [ebx + 0x68], 0
mov dword [ebx + 0x80], 0
mov dword [ebx + 0x84], 0
mov eax, dword [ebx + 0x20]
mov dword [ebx + 0xa0], eax
mov dword [ebx + 0xb0], eax
mov dword [ebx + 0x5c], 0
mov dword [ebx + 0x6c], 0
mov dword [ebx + 0x88], 0
mov dword [ebx + 0x8c], 0
mov eax, dword [ebx + 0x24]
mov dword [ebx + 0xa4], eax
mov dword [ebx + 0xb4], eax
mov eax, 0x4000400
mov dword [ebx + 0x60], 0
mov dword [ebx + 0x70], 0
mov dword [ebx + 0x90], 0
mov dword [ebx + 0x94], 0
mov dword [ebx + 0xc0], 3
mov dword [ebx + 0xc4], 0
mov dword [ebx + 0xc8], 0
mov dword [ebx + 0xcc], 0
mov dword [ebx + 0xd0], 0
rep stosd dword es:[edi], eax
mov eax, dword [ebx + 0x28]
lea ecx, [ebx + 0x98]
mov dword [ebx + 0xb8], eax
mov dword [ebx + 0xbc], eax
movlpd qword [esp + 0x40], xmm0
movlpd qword [esp + 0x50], xmm0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
call fcn.00402690
test eax, eax
jne 0x41df10
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x40]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], edx
nop dword [eax]
nop word [eax + eax]
mov eax, dword [ebx + 0xc0]
cmp eax, 4
jae 0x41ddbd
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + eax*4]
mov eax, dword [esi + 0xa8]
mov dword [esp + 0x18], eax
mov dword [esp + 0x24], edx
mov edi, dword [esi + eax*4 + 0x80]
lea ecx, [esi + eax*4]
lea ebx, [eax + 0x24]
mov dword [esp + 0x28], ecx
mov ecx, dword [ecx]
lea ebx, [esi + ebx*4]
mov dword [esi + eax*4 + 0x80], ecx
mov dword [esi + eax*4 + 0x90], ecx
add esi, 0x4c
mov dword [esp + 0x38], ebx
mov ebx, dword [ebp + 8]
lea eax, [esi + eax*4]
mov esi, dword [eax]
mov dword [esp + 0x30], eax
test esi, esi
je 0x41dcb4
sub edi, ecx
mov edx, esi
mov al, byte [edi + ecx]
lea ecx, [ecx + 1]
mov byte [ecx - 1], al
sub edx, 1
jne 0x41dca2
mov edx, dword [esp + 0x24]
mov edi, dword [esp + 0x18]
lea eax, [edi + 0x15]
cmp dword [ebx + eax*4], 0
lea eax, [ebx + eax*4]
mov dword [esp + 0x34], eax
jne 0x41dd86
mov ecx, dword [edx]
lea eax, [edi - 1]
mov dword [esp + 0x2c], eax
mov eax, dword [ebx + edi*4 + 0x2c]
lea ebx, [esp + 0x18]
sub eax, esi
push ebx
push eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x30]
mov eax, dword [eax]
add eax, esi
push eax
push edx
call dword [ecx + 0xc]
mov ebx, dword [ebp + 8]
mov edx, eax
mov ecx, dword [esp + 0x18]
mov dword [ebx + edi*4 + 0x54], eax
test ecx, ecx
je 0x41dd53
add dword [ebx + edi*8 + 0x78], ecx
adc dword [ebx + edi*8 + 0x7c], 0
add esi, ecx
test eax, eax
jne 0x41dd53
cmp esi, 4
jae 0x41dd53
lea eax, [edi - 1]
cmp eax, 2
jae 0x41dd53
mov eax, dword [ebx + edi*4 + 0x2c]
lea ebx, [esp + 0x18]
mov edx, dword [esp + 0x24]
sub eax, esi
push ebx
push eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x30]
mov ecx, dword [edx]
mov eax, dword [eax]
add eax, esi
push eax
push edx
call dword [ecx + 0xc]
mov ebx, dword [ebp + 8]
mov edx, eax
mov ecx, dword [esp + 0x18]
mov dword [ebx + edi*4 + 0x54], eax
test ecx, ecx
jne 0x41dd03
test esi, esi
je 0x41dd86
cmp dword [esp + 0x2c], 2
jae 0x41dd80
mov ecx, dword [esp + 0x30]
mov eax, esi
and eax, 3
mov dword [ecx], eax
cmp esi, 4
jae 0x41dd7e
test edx, edx
jne 0x41dd86
mov eax, dword [esp + 0x34]
mov dword [eax], 1
jmp 0x41dd86
sub esi, eax
mov eax, dword [esp + 0x38]
add dword [eax], esi
mov ecx, dword [ebx + 0xc0]
mov eax, dword [ebx + ecx*4 + 0xa8]
mov edx, dword [ebx + ecx*4 + 0x54]
cmp eax, dword [ebx + ecx*4 + 0x18]
je 0x41defa
test edx, edx
je 0x41de5e
cmp dword [esp + 0x20], 0
jne 0x41de5e
mov dword [esp + 0x20], edx
jmp 0x41de5e
mov esi, dword [ebx + 0xb8]
mov edi, dword [ebx + 0x28]
sub esi, edi
je 0x41de1c
mov eax, dword [ebp + 0x18]
add edx, esi
mov dword [esp + 0x10], edx
adc ecx, 0
mov dword [esp + 0x14], ecx
mov edx, dword [eax]
mov dword [esp + 0x38], edx
mov ecx, dword [edx]
lea eax, [esp + 0x40]
push eax
mov eax, SysReAllocStringLen
cmp esi, eax
cmovb eax, esi
push eax
push edi
push edx
call dword [ecx + 0xc]
mov ecx, eax
mov eax, dword [esp + 0x40]
add edi, eax
sub esi, eax
test ecx, ecx
jne 0x41df05
test eax, eax
je 0x41df00
mov edx, dword [esp + 0x38]
test esi, esi
jne 0x41dde0
mov edi, dword [ebx + 0x28]
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebx + 0x3c]
test eax, eax
je 0x41de47
mov eax, dword [eax]
test eax, eax
je 0x41de47
mov edx, dword [eax]
sub edx, dword [esp + 0x10]
mov eax, dword [eax + 4]
sbb eax, dword [esp + 0x14]
xor esi, esi
cmp esi, eax
jb 0x41de47
ja 0x41de45
cmp ecx, edx
jbe 0x41de47
mov ecx, edx
mov dword [ebx + 0xb8], edi
lea eax, [edi + ecx]
mov dword [ebx + 0xbc], eax
test ecx, ecx
je 0x41df28
mov edi, dword [ebp + 0x24]
test edi, edi
je 0x41dedb
mov edx, dword [ebx + 0xb8]
xor esi, esi
sub edx, dword [ebx + 0x28]
add edx, dword [esp + 0x10]
mov ecx, edx
adc esi, dword [esp + 0x14]
sub ecx, dword [esp + 0x50]
mov eax, esi
sbb eax, dword [esp + 0x54]
mov dword [esp + 0x3c], eax
jne 0x41de92
cmp ecx, 0x1000000
jb 0x41dedb
mov eax, dword [ebx + 0xb4]
sub eax, dword [ebx + 0xa4]
mov ecx, dword [ebx + 0x90]
sub ecx, eax
mov dword [esp + 0x50], edx
mov eax, dword [ebx + 0x94]
sbb eax, 0
mov dword [esp + 0x54], esi
add ecx, edx
mov dword [esp + 0x58], ecx
lea ecx, [esp + 0x50]
adc eax, esi
push ecx
mov dword [esp + 0x60], eax
lea ecx, [esp + 0x5c]
mov eax, dword [edi]
push ecx
push edi
call dword [eax + 0xc]
test eax, eax
jne 0x41e04f
lea ecx, [ebx + 0x98]
call fcn.00402690
test eax, eax
jne 0x41df20
mov ecx, dword [esp + 0x14]
lea esi, [ebx + 0x18]
mov edx, dword [esp + 0x10]
jmp 0x41dc40
mov dword [esp + 0x1c], edx
jmp 0x41df28
mov ecx, 0x80004005
mov eax, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20
mov eax, dword [esp + 0x44]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x10], eax
mov dword [esp + 0x1c], 1
mov esi, dword [ebx + 0xb8]
mov edi, dword [ebx + 0x28]
sub esi, edi
je 0x41df78
mov eax, dword [ebp + 0x18]
add dword [esp + 0x10], esi
adc dword [esp + 0x14], 0
mov edx, dword [eax]
mov dword [esp + 0x38], edx
mov ecx, dword [edx]
lea eax, [esp + 0x40]
push eax
mov eax, SysReAllocStringLen
cmp esi, eax
cmovb eax, esi
push eax
push edi
push edx
call dword [ecx + 0xc]
mov ecx, eax
mov eax, dword [esp + 0x40]
add edi, eax
sub esi, eax
test ecx, ecx
jne 0x41df05
test eax, eax
je 0x41df00
mov edx, dword [esp + 0x38]
test esi, esi
jne 0x41df47
mov ecx, dword [esp + 0x1c]
test ecx, ecx
mov eax, dword [esp + 0x20]
cmovne eax, ecx
test eax, eax
jne 0x41e04f
cmp byte [ebx + 0x2d8], al
je 0x41e023
cmp dword [ebx + 0xd0], eax
jne 0x41e02e
mov eax, dword [ebx + 0xc0]
test eax, eax
je 0x41dfb4
cmp eax, 8
jne 0x41e02e
mov eax, dword [ebp + 0x1c]
test eax, eax
je 0x41dfd2
mov eax, dword [eax]
test eax, eax
je 0x41dfd2
mov ecx, dword [esp + 0x10]
cmp dword [eax], ecx
jne 0x41e02e
mov ecx, dword [esp + 0x14]
cmp dword [eax + 4], ecx
jne 0x41e02e
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x41e023
mov esi, 0x60
mov edx, 0x90
mov edi, dword [eax + edx - 0x90]
test edi, edi
je 0x41e015
mov ebx, dword [esp + 0x4c]
mov eax, dword [edx + ebx - 0x44]
sub eax, dword [edx + ebx - 0x10]
add eax, dword [edx + ebx]
mov ecx, dword [esi + ebx]
sub ecx, eax
mov eax, dword [esi + ebx + 4]
sbb eax, 0
cmp dword [edi], ecx
jne 0x41e02e
cmp dword [edi + 4], eax
jne 0x41e02e
mov eax, dword [ebp + 0x10]
add esi, 8
add edx, 4
cmp esi, 0x80
jb 0x41dfe3
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20
mov eax, 0x8007000e
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20
mov eax, 0x80070057
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20