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

Disassembly:
sub esp, 0x54
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x64]
push ebx
mov dword [esp + 0x40], eax
mov ebx, 0x20
mov eax, dword [esp + 0x64]
push ebp
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x20], ebx
push esi
push edi
test eax, eax
jle 0x48b689
mov ecx, eax
mov edi, edx
or eax, 0xffffffff
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x78]
mov edi, dword [esp + 0x6c]
xor ecx, ecx
mov dword [esp + 0x2c], ecx
cmp ecx, 3
jne 0x48b69d
lea esi, [ecx - 2]
jmp 0x48b6a4
mov esi, 0x20
sar esi, cl
xor dl, dl
mov dword [esp + 0x18], esi
mov byte [esp + 0x13], dl
mov ebp, ecx
mov dword [esp + 0x44], ebp
cmp ecx, eax
jge 0x48b89d
mov eax, esi
mov edx, esi
shl eax, 8
neg edx
mov dword [esp + 0x60], eax
lea eax, [esi*4]
mov esi, dword [esp + 0x48]
mov dword [esp + 0x58], eax
mov eax, ecx
shl eax, 8
add edi, eax
shl edx, 8
sub esi, eax
mov dword [esp + 0x5c], edx
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x78]
add eax, 0x10
mov dword [esp + 0x1c], edi
mov dword [esp + 0x24], esi
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x20], ecx
jmp 0x48b710
mov edi, dword [esp + 0x74]
cmp dword [edi + ebp*4], 0xffffffff
mov edi, dword [esp + 0x1c]
jne 0x48b86b
test ebp, ebp
jle 0x48b748
mov eax, dword [esp + 0x78]
dec eax
cmp ebp, eax
jge 0x48b748
mov eax, dword [esp + 0x74]
cmp dword [eax + ebp*4 - 4], 0
jne 0x48b748
cmp dword [eax + ebp*4 + 4], 0
jne 0x48b748
xor ecx, ecx
jmp 0x48b84c
mov eax, dword [ecx]
xor esi, esi
mov dword [esp + 0x54], eax
mov edx, 0x400
mov dword [esp + 0x40], esi
mov dword [esp + 0x3c], edx
mov dword [esp + 0x14], 1
cmp ebx, 1
jl 0x48b831
mov ecx, dword [esp + 0x24]
lea eax, [ebx + ebx]
sub ecx, eax
mov dword [esp + 0x50], ecx
jmp 0x48b780
mov eax, ecx
mov dword [esp + 0x30], edi
mov edx, 4
mov dword [esp + 0x34], eax
xor ebx, ebx
mov dword [esp + 0x38], edx
mov ecx, edi
mov esi, ecx
cmp eax, 8
jle 0x48b7a3
mov eax, 8
lea ebp, [ecx + eax]
cmp ecx, ebp
jae 0x48b7e5
mov eax, dword [esp + 0x14]
lea edi, [ecx + eax]
mov al, byte [edi + eax]
mov dl, byte [edi]
sub al, dl
sub dl, byte [esi]
movsx ecx, al
movsx eax, dl
sub eax, ecx
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x20
jl 0x48b7d1
mov eax, 0x20
add ebx, eax
inc esi
mov eax, dword [esp + 0x14]
inc edi
cmp esi, ebp
jb 0x48b7b1
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
add ecx, 0x40
sub eax, 0x40
mov dword [esp + 0x30], ecx
sub edx, 1
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], edx
jne 0x48b797
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x14]
cmp ebx, edx
jge 0x48b8ca
mov esi, eax
mov edx, ebx
mov dword [esp + 0x40], esi
mov dword [esp + 0x3c], edx
cmp ebx, 0x10
jge 0x48b8ce
mov ebx, dword [esp + 0x28]
mov ebp, dword [esp + 0x44]
mov edi, dword [esp + 0x1c]
imul edx, dword [esp + 0x54]
xor ecx, ecx
mov eax, dword [esp + 0x74]
cmp edx, 0xc000
setge cl
dec ecx
and ecx, esi
mov esi, dword [esp + 0x24]
mov dword [eax + ebp*4], ecx
mov eax, ebx
cdq
sub eax, edx
mov edx, dword [esp + 0x78]
sar eax, 1
cmp ecx, eax
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x18]
jle 0x48b86b
mov byte [esp + 0x13], 1
add ecx, dword [esp + 0x58]
add ebp, eax
add esi, dword [esp + 0x5c]
add edi, dword [esp + 0x60]
mov dword [esp + 0x44], ebp
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], esi
mov dword [esp + 0x1c], edi
cmp ebp, edx
jl 0x48b710
mov dl, byte [esp + 0x13]
mov ecx, dword [esp + 0x2c]
test dl, dl
jne 0x48b8aa
mov eax, ebx
cdq
sub eax, edx
mov ebx, eax
sar ebx, 1
mov dword [esp + 0x28], ebx
mov eax, dword [esp + 0x78]
inc ecx
mov edi, dword [esp + 0x6c]
mov dword [esp + 0x2c], ecx
cmp ecx, 4
jl 0x48b693
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret 0x14
mov esi, dword [esp + 0x40]
mov ebx, dword [esp + 0x28]
inc eax
mov ecx, dword [esp + 0x50]
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x14], eax
cmp eax, ebx
jle 0x48b780
jmp 0x48b829