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

Disassembly:
sub esp, 0x44
mov eax, dword [esp + 0x5c]
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x68]
and edi, 0xffff
and eax, 0xffff
imul edi, eax
imul edi, dword [esp + 0x60]
mov esi, dword [esp + 0x58]
add edi, 7
shr edi, 3
push esi
mov dword [esp + 0x44], 1
mov dword [esp + 0x4c], edi
call fcn.0051d9c0
mov ebx, eax
push esi
mov dword [esp + 0x18], ebx
call fcn.00525c70
mov ebp, eax
lea ecx, [esp + 0x38]
mov eax, ebx
push ecx
sub eax, ebp
push 0x142
push esi
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x28], eax
call fcn.0051a2b0
lea edx, [esp + 0x40]
push edx
push 0x143
push esi
call fcn.0051a2b0
push esi
call fcn.00525e70
add esp, 0x24
cmp ebx, edi
mov dword [esp + 0x68], eax
jle 0x4144ef
mov dword [esp + 0x10], edi
mov ebx, edi
cmp ebp, ebx
jle 0x4144f9
mov dword [esp + 0x38], ebx
mov ebp, ebx
mov esi, dword [esp + 0x30]
mov ecx, dword [esp + 0x60]
cmp esi, ecx
jle 0x41450b
mov esi, ecx
mov dword [esp + 0x30], esi
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x64]
cmp edx, ecx
jle 0x41451d
mov edx, ecx
mov dword [esp + 0x2c], edx
mov ecx, edx
imul ecx, ebp
cmp eax, ecx
jge 0x41453a
cmp ebx, ebp
mov ecx, ebx
jg 0x41452e
mov ecx, ebp
lea eax, [ebp + 1]
imul eax, edx
add eax, ecx
mov dword [esp + 0x68], eax
test edi, edi
jle 0x414960
test eax, eax
jle 0x414960
test esi, esi
jle 0x414960
test edx, edx
jle 0x414960
test ebx, ebx
jle 0x414960
test ebp, ebp
jle 0x414960
mov ecx, dword [esp + 0x14]
test ecx, ecx
jl 0x414960
cmp ebx, ebp
mov ecx, ebx
jg 0x41457e
mov ecx, ebp
lea ebx, [edi + 1]
imul ebx, edx
add ebx, ecx
test ebx, ebx
mov dword [esp + 0x28], ebx
jg 0x41459b
pop edi
pop esi
pop ebp
mov eax, 0xfffffffd
pop ebx
add esp, 0x44
ret
push eax
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov esi, eax
test esi, esi
mov dword [esp + 0x18], esi
jne 0x4145c2
pop edi
pop esi
pop ebp
mov eax, 0xfffffffd
pop ebx
add esp, 0x44
ret
push ebx
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov ebx, eax
test ebx, ebx
mov dword [esp + 0x1c], ebx
jne 0x414603
mov edi, dword [sym.imp.KERNEL32.dll_GlobalHandle]
push esi
call edi
push eax
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push esi
call edi
push eax
call dword [sym.imp.KERNEL32.dll_GlobalFree]
pop edi
pop esi
pop ebp
mov eax, 0xfffffffd
pop ebx
add esp, 0x44
ret
mov eax, dword [esp + 0x74]
cmp eax, edi
mov dword [esp + 0x3c], eax
jb 0x414613
mov dword [esp + 0x3c], edi
mov eax, dword [esp + 0x64]
xor ecx, ecx
test eax, eax
mov dword [esp + 0x20], ecx
ja 0x414659
mov edi, dword [sym.imp.KERNEL32.dll_GlobalHandle]
push esi
call edi
mov ebp, dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push eax
call ebp
push esi
call edi
mov esi, dword [sym.imp.KERNEL32.dll_GlobalFree]
push eax
call esi
push ebx
call edi
push eax
call ebp
push ebx
call edi
push eax
call esi
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x44
ret
mov eax, dword [esp + 0x64]
mov esi, dword [esp + 0x2c]
xor ebx, ebx
lea edx, [ecx + esi]
cmp edx, eax
jbe 0x41466a
mov esi, eax
sub esi, ecx
mov eax, dword [esp + 0x60]
mov dword [esp + 0x34], 0
test eax, eax
jbe 0x4147a3
mov eax, ebp
mov ecx, dword [esp + 0x1c]
neg eax
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x24], eax
mov edi, ebp
mov edx, eax
mov eax, ebp
sub edi, edx
sub eax, ecx
mov dword [esp + 0x44], eax
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x18]
push 0
push 0
push ecx
mov ecx, dword [esp + 0x64]
push edx
push eax
push ecx
call fcn.0051cc20
add esp, 0x18
cmp eax, 0xffffffff
je 0x414916
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x44]
lea ecx, [ebx + edx]
mov edx, dword [esp + 0x10]
add eax, ecx
cmp eax, edx
jle 0x414728
mov eax, dword [esp + 0x24]
test eax, eax
jl 0x41479f
test edi, edi
jl 0x41479f
add eax, edi
mov edx, eax
imul edx, esi
cmp edx, dword [esp + 0x68]
ja 0x414769
mov edx, dword [esp + 0x14]
add edx, eax
mov eax, dword [esp + 0x28]
imul edx, esi
add edx, ebx
cmp edx, eax
ja 0x414769
mov edx, dword [esp + 0x68]
push edx
push eax
mov eax, dword [esp + 0x1c]
push edi
lea edx, [edi + eax]
mov eax, dword [esp + 0x30]
push edx
push eax
jmp 0x41475a
mov eax, esi
mov edx, dword [esp + 0x68]
imul eax, ebp
cmp eax, edx
ja 0x414769
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x28]
add edx, ebp
imul edx, esi
add edx, ebx
cmp edx, eax
ja 0x414769
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x28]
push eax
mov eax, dword [esp + 0x18]
push edx
push 0
push eax
push ebp
mov edx, dword [esp + 0x2c]
push esi
push edx
push ecx
call fcn.004143f0
add esp, 0x20
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x24]
add ebx, ebp
add edi, ebp
add ecx, eax
test ebx, ebx
mov dword [esp + 0x24], ecx
jl 0x41479f
cmp ebx, dword [esp + 0x28]
jae 0x41479f
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x60]
add eax, edx
cmp eax, ecx
mov dword [esp + 0x34], eax
jb 0x4146a0
mov edi, dword [esp + 0x48]
test esi, esi
jle 0x4148ef
mov ecx, dword [esp + 0x64]
mov eax, edi
neg eax
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x20]
sub ecx, esi
mov edx, dword [esp + 0x5c]
sub ecx, eax
lea eax, [esi - 1]
imul ecx, dword [esp + 0x74]
imul eax, edi
lea edx, [ecx + edx + 1]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x34], edx
mov dword [esp + 0x44], esi
lea ebp, [eax + ecx + 1]
mov dword [esp + 0x24], ebp
cmp word [esp + 0x6c], 4
jne 0x414876
mov ecx, dword [esp + 0x78]
xor eax, eax
cmp ecx, eax
lea esi, [edx - 1]
je 0x41481d
mov ecx, dword [esp + 0x60]
cmp ecx, eax
jbe 0x414892
lea edi, [ebp + 2]
mov bl, byte [edi]
add edi, 4
mov byte [eax + esi], bl
inc eax
cmp eax, ecx
jb 0x41480e
jmp 0x414892
cmp dword [esp + 0x70], 0x18
jne 0x4148c4
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x40], eax
cmp ecx, eax
jbe 0x4148c4
mov edi, dword [esp + 0x60]
mov ecx, ebp
mov ebp, 1
mov eax, edx
sub esi, edx
mov dword [esp + 0x4c], ebp
mov dl, byte [ecx + ebp]
mov ebx, dword [esp + 0x4c]
mov byte [esi + eax], dl
mov dl, byte [ecx]
mov byte [eax], dl
or edx, 0xffffffff
add eax, 3
mov dl, byte [edx + ecx]
add ecx, 4
mov byte [ebx + eax - 3], dl
dec edi
jne 0x41484b
mov edx, dword [esp + 0x34]
mov ebp, dword [esp + 0x24]
jmp 0x4148c4
mov ecx, dword [esp + 0x3c]
lea esi, [ebp - 1]
mov eax, ecx
lea edi, [edx - 1]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x60]
cmp dword [esp + 0x70], 0x18
jne 0x4148c4
mov eax, dword [esp + 0x40]
test eax, eax
je 0x4148c4
lea edi, [ecx + ecx*2]
test edi, edi
jbe 0x4148c4
or esi, 0xffffffff
lea eax, [edx + 1]
sub esi, edx
mov cl, byte [eax - 2]
mov bl, byte [eax]
mov byte [eax - 2], bl
mov byte [eax], cl
add eax, 3
lea ecx, [esi + eax]
cmp ecx, edi
jb 0x4148b0
mov esi, dword [esp + 0x74]
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x44]
add edx, esi
add ebp, ecx
dec eax
mov dword [esp + 0x34], edx
mov dword [esp + 0x24], ebp
mov dword [esp + 0x44], eax
jne 0x4147e6
mov ebp, dword [esp + 0x38]
mov edi, dword [esp + 0x48]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x64]
add ecx, edx
cmp ecx, eax
mov dword [esp + 0x20], ecx
jb 0x414655
mov ebx, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
jmp 0x414621
mov ebx, dword [esp + 0x18]
mov esi, dword [sym.imp.KERNEL32.dll_GlobalHandle]
push ebx
call esi
mov edi, dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push eax
call edi
push ebx
call esi
mov ebx, dword [sym.imp.KERNEL32.dll_GlobalFree]
push eax
call ebx
mov ebp, dword [esp + 0x1c]
push ebp
call esi
push eax
call edi
push ebp
call esi
push eax
call ebx
mov esi, dword [esp + 0x20]
xor edx, edx
cmp edx, esi
pop edi
sbb eax, eax
pop esi
and eax, 3
pop ebp
add eax, 0xfffffffe
pop ebx
add esp, 0x44
ret
pop edi
pop esi
pop ebp
mov eax, 0xfffffffe
pop ebx
add esp, 0x44
ret