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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x3c
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov eax, dword [esi + 0x78]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc]
test eax, eax
jne 0x41c8e3
mov ecx, esi
call fcn.0041c430
test eax, eax
jne 0x41c8e3
xorps xmm0, xmm0
xor bl, bl
movlpd qword [esp + 0x38], xmm0
xor esi, esi
mov eax, dword [esp + 0x3c]
xor edi, edi
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x38]
movlpd qword [esp + 0x40], xmm0
mov byte [esp + 0x13], bl
mov dword [esp + 0x14], edi
mov dword [esp + 0x2c], eax
nop dword [eax]
mov ecx, dword [ebp + 0x18]
test ecx, ecx
je 0x41c602
mov eax, dword [esp + 0x44]
cmp eax, dword [ecx + 4]
ja 0x41c8c8
jb 0x41c602
mov eax, dword [esp + 0x40]
cmp eax, dword [ecx]
jae 0x41c8c8
mov eax, dword [ebp + 8]
xor edx, edx
mov dword [esp + 0x18], edx
test bl, bl
jne 0x41c67a
mov ebx, dword [eax + 0x34]
mov ecx, edx
mov edi, dword [eax + 0x38]
add ebx, esi
mov dword [esp + 0x1c], ecx
sub edi, esi
je 0x41c666
mov edx, dword [ebp + 0xc]
lea eax, [esp + 0x34]
push eax
mov eax, SysReAllocStringLen
cmp edi, eax
mov ecx, dword [edx]
cmovb eax, edi
push eax
push ebx
push edx
call dword [ecx + 0xc]
mov ecx, dword [esp + 0x1c]
mov edx, eax
mov eax, dword [esp + 0x34]
add ecx, eax
add ebx, eax
mov dword [esp + 0x18], edx
sub edi, eax
mov dword [esp + 0x1c], ecx
test edx, edx
jne 0x41c714
test eax, eax
je 0x41c663
test edi, edi
jne 0x41c621
mov eax, dword [ebp + 8]
xor edx, edx
add esi, ecx
cmp esi, dword [eax + 0x38]
mov dword [esp + 0x18], edx
setne byte [esp + 0x13]
mov edi, dword [esp + 0x14]
test esi, esi
je 0x41c8e1
cmp esi, edi
je 0x41c72d
nop word [eax + eax]
mov edx, dword [eax + 0x78]
mov ebx, esi
mov eax, dword [eax + 0x34]
sub ebx, edi
push ebx
add eax, edi
mov ecx, dword [edx]
push eax
push edx
call dword [ecx + 0x10]
mov ecx, eax
mov dword [esp + 0x1c], ecx
test ecx, ecx
je 0x41c72d
add edi, ecx
cmp ecx, ebx
jbe 0x41c704
cmp dword [esp + 0x18], 0
mov ebx, dword [esp + 0x14]
jne 0x41c729
mov edx, dword [ebp + 8]
cmp byte [edx + 0x44], 0
je 0x41c723
mov eax, dword [edx + 0x38]
sub eax, ebx
cmp ecx, eax
ja 0x41c723
cmp byte [esp + 0x13], 0
je 0x41c723
mov eax, dword [edx + 0x34]
nop dword [eax + eax]
mov byte [eax + esi], 0
inc esi
cmp esi, edi
jne 0x41c6e0
mov ecx, dword [edx + 0x78]
mov ebx, dword [esp + 0x1c]
add eax, dword [esp + 0x14]
push ebx
mov edx, dword [ecx]
push eax
push ecx
call dword [edx + 0x10]
cmp ebx, eax
jne 0x41c8d3
mov dword [esp + 0x14], edi
cmp esi, edi
je 0x41c72d
mov eax, dword [ebp + 8]
jmp 0x41c690
mov eax, dword [ebp + 8]
add esi, ecx
mov byte [esp + 0x13], 1
jmp 0x41c676
mov cl, 1
mov edi, ebx
jmp 0x41c73d
mov edi, ebx
jmp 0x41c759
mov ebx, dword [esp + 0x14]
xor cl, cl
cmp dword [esp + 0x18], 0
jne 0x41c759
mov edx, dword [ebp + 8]
mov eax, ebx
and eax, 0xffffffc0
cmp byte [esp + 0x13], 0
je 0x41c757
test cl, cl
jne 0x41c751
mov edi, esi
jmp 0x41c759
cmp byte [edx + 0x44], 0
je 0x41c759
mov edi, eax
mov eax, dword [ebp + 0x18]
mov edx, edi
mov dword [esp + 0x1c], edx
test eax, eax
je 0x41c78d
mov ecx, dword [eax]
sub ecx, dword [esp + 0x40]
mov eax, dword [eax + 4]
sbb eax, dword [esp + 0x44]
mov dword [esp + 0x20], 0
cmp dword [esp + 0x20], eax
jb 0x41c78d
ja 0x41c787
cmp edi, ecx
jbe 0x41c78d
mov edx, ecx
mov dword [esp + 0x1c], ecx
mov eax, dword [ebp + 8]
mov dword [esp + 0x20], edx
mov ecx, dword [eax + 0x34]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x41c7f1
mov ecx, dword [ebp + 0x10]
lea eax, [esp + 0x38]
push eax
mov eax, SysReAllocStringLen
cmp edx, eax
mov ecx, dword [ecx]
cmovb eax, edx
push eax
push dword [esp + 0x1c]
push dword [ebp + 0x10]
call dword [ecx + 0xc]
mov edx, dword [esp + 0x20]
mov ecx, eax
mov eax, dword [esp + 0x38]
sub edx, eax
add dword [esp + 0x14], eax
mov dword [esp + 0x20], edx
test ecx, ecx
jne 0x41c8af
test eax, eax
je 0x41c8aa
test edx, edx
jne 0x41c7a3
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x40], ecx
mov edx, dword [esp + 0x18]
adc dword [esp + 0x44], 0
test edx, edx
jne 0x41c8e1
cmp byte [esp + 0x13], dl
je 0x41c81d
cmp esi, edi
je 0x41c8c8
cmp byte [eax + 0x44], dl
je 0x41c8ba
test edi, edi
je 0x41c8d3
cmp ebx, edi
jb 0x41c8d3
sub ebx, edi
mov dword [esp + 0x14], ebx
sub esi, edi
je 0x41c848
mov ecx, dword [eax + 0x34]
push esi
lea eax, [ecx + edi]
push eax
push ecx
call fcn.0044b640
add esp, 0xc
mov edx, dword [ebp + 0x1c]
mov edi, dword [esp + 0x14]
mov bl, byte [esp + 0x13]
test edx, edx
je 0x41c5e0
mov ecx, dword [esp + 0x40]
sub ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x44]
sbb eax, dword [esp + 0x30]
mov dword [esp + 0x24], eax
jne 0x41c87d
cmp ecx, 0x400000
jb 0x41c5e0
mov eax, dword [esp + 0x40]
lea ecx, [esp + 0x40]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x44]
push ecx
mov dword [esp + 0x34], eax
mov eax, dword [edx]
push ecx
push edx
call dword [eax + 0xc]
test eax, eax
jne 0x41c8e3
mov edi, dword [esp + 0x14]
mov bl, byte [esp + 0x13]
jmp 0x41c5e0
mov ecx, 0x80004005
mov eax, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
mov eax, 0x80004005
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
mov eax, edx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18