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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x4c
mov edi, dword [esp + 0x78]
push edi
mov ecx, dword [esp + 0x68]
push ecx
mov edx, dword [esp + 0x68]
push edx
call fcn.004b81a0
mov eax, dword [0x71f468]
mov dword [esp + 0x18], eax
add esp, 0xc
test eax, eax
je 0x4b8e46
mov edx, dword [edi + 0x20]
mov ebx, dword [0x71f488]
mov dword [esp + 4], edx
mov eax, dword [0x71f478]
mov edx, dword [0x71f498]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
mov ebp, dword [edi + 0x34]
mov eax, dword [edi + 0x1c]
mov esi, dword [esp + 0x68]
mov ebx, dword [esp + 0xc]
lea ecx, [ebp + ebp]
sub esi, eax
mov eax, dword [esp + 0x70]
mov edx, dword [edi + 0x3c]
sub esi, eax
lea eax, [ecx + ebx]
add eax, esi
test eax, eax
jle 0x4b8e46
mov eax, esi
sub eax, ecx
cmp dword [esp + 0x14], eax
jle 0x4b8e46
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x6c]
sub ecx, eax
mov eax, dword [esp + 0x74]
sub ecx, eax
mov eax, dword [esp + 0x10]
lea ebx, [ecx + eax]
test ebx, ebx
jle 0x4b8e46
cmp ecx, dword [esp + 0x18]
jge 0x4b8e46
mov eax, edx
sar eax, 0x1f
shr eax, 0x18
add edx, eax
and edx, 0xff
sub edx, eax
push edx
fild dword [esp]
fldz
add esp, 4
fucomp st(1)
fnstsw ax
test ah, 0x45
je 0x4b92c7
test ecx, ecx
js 0x4b92b2
mov edx, dword [esp + 0x10]
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], edx
fldz
cmp dword [esp + 0x18], ebx
jge 0x4b8b9c
mov eax, dword [esp + 0x18]
sub ebx, eax
mov eax, dword [esp + 0x1c]
sub eax, ebx
mov dword [esp + 0x1c], eax
cmp dword [edi + 0x44], 1
je 0x4b8e4e
push ebp
mov edx, ebp
fild dword [esp]
add esp, 4
fnstcw word [esp + 0x4a]
mov ax, word [esp + 0x4a]
mov ah, 0xc
fstp dword [esp + 0x30]
mov word [esp + 0x48], ax
mov eax, ecx
mov dword [esp + 0x40], ecx
xor eax, 0xffffffff
mov ecx, dword [esp + 0x40]
fld dword [0x594620]
sar eax, 0x1f
sub esi, edx
and ecx, eax
mov eax, dword [esp + 0x20]
fst dword [esp + 0x28]
shl eax, 2
mov dword [esp + 0x40], ecx
fdiv dword [edi + 0x38]
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], eax
fst dword [esp + 0x28]
fmulp st(1)
faddp st(1)
fldcw word [esp + 0x48]
fist dword [esp + 0x44]
fldcw word [esp + 0x4a]
mov eax, dword [esp + 0x44]
push eax
mov edx, eax
fild dword [esp]
fsubp st(1)
add esp, 4
sar edx, 0x1f
shr edx, 0x18
add eax, edx
and eax, 0xff
fst dword [esp + 0x3c]
sub eax, edx
push eax
fild dword [esp]
faddp st(1)
add esp, 4
mov edx, dword [esp + 0x34]
fst dword [esp + 0x3c]
fldcw word [esp + 0x48]
fistp dword [esp + 0x44]
fldcw word [esp + 0x4a]
mov eax, dword [esp + 0x44]
fld dword [esp + 0x30]
fmul dword [eax*4 + 0x548260]
fadd dword [0x594624]
fldcw word [esp + 0x48]
fistp dword [esp + 0x44]
fldcw word [esp + 0x4a]
mov eax, dword [esp + 0x44]
lea ecx, [eax + edx]
mov eax, dword [esp + 0xc]
cmp ecx, dword [esp + 0x14]
lea ebx, [ecx + eax]
jge 0x4b9092
test ebx, ebx
jle 0x4b9092
mov edx, ecx
shr edx, 0x1f
jne 0x4b914b
xor esi, esi
cmp dword [esp + 0x14], ebx
jge 0x4b8ca2
mov ebx, dword [esp + 0x14]
mov eax, dword [0x5cf690]
test eax, eax
jne 0x4b8cc6
mov eax, dword [0x5e3240]
test eax, eax
jne 0x4b8cc6
mov edx, dword [esp + 0x64]
mov eax, dword [edx]
cmp dword [eax], 0x726373
je 0x4b918e
sub ebx, ecx
mov eax, dword [esp + 0x40]
mov dword [esp + 0x24], ebx
mov ebx, dword [0x71f478]
imul eax, ebx
mov edi, dword [0x5e3340]
mov ebx, dword [0x5e32c0]
lea eax, [ecx + eax]
mov edx, dword [0x5e32a0]
mov ecx, dword [edi*4 + 0x5481f4]
mov dword [esp + 8], ebx
imul eax, ecx
add eax, edx
mov dword [0x5e32b0], eax
mov eax, dword [ebx]
mov eax, dword [eax]
cmp eax, 0x726373
je 0x4b90a9
cmp eax, 0x727073
je 0x4b90db
cmp eax, 0x706d62
je 0x4b90a9
mov eax, dword [esp + 0x24]
test eax, eax
jle 0x4b8e06
xor ebp, ebp
mov eax, dword [0x5e3310]
test eax, eax
je 0x4b8db0
cmp edi, 2
je 0x4b8f64
cmp edi, 4
je 0x4b8ef9
test edi, edi
jne 0x4b8db0
mov dl, byte [eax]
mov eax, dword [0x5e3240]
test eax, eax
je 0x4b8d64
test dl, dl
je 0x4b8db0
mov eax, dword [0x5e3200]
test eax, eax
je 0x4b8d6f
mov dl, al
mov ecx, dword [0x5e31f0]
mov ebx, dword [0x5e32b0]
test ecx, ecx
je 0x4b8d98
xor eax, eax
push edi
mov al, byte [ebx]
mov esi, dword [0x5e3230]
push eax
xor eax, eax
mov al, dl
push eax
push esi
call ecx
add esp, 0x10
mov dl, al
mov byte [ebx], dl
mov edx, dword [0x5e32c0]
mov edi, dword [0x5e3340]
mov dword [esp + 8], edx
lea esi, [esi]
mov edx, dword [esp + 8]
mov eax, dword [edi*4 + 0x5481f4]
mov esi, dword [0x5e32b0]
inc ebp
add esi, eax
mov eax, dword [edx]
mov dword [0x5e32b0], esi
mov esi, dword [0x5e32e0]
inc esi
mov eax, dword [eax]
mov dword [0x5e32e0], esi
cmp eax, 0x726373
je 0x4b8ed0
cmp eax, 0x727073
je 0x4b8ea0
cmp eax, 0x706d62
je 0x4b8ed0
cmp ebp, dword [esp + 0x24]
jne 0x4b8d36
mov eax, dword [esp + 0x38]
add eax, 4
dec dword [esp + 0x1c]
mov dword [esp + 0x38], eax
je 0x4b8e46
mov eax, dword [esp + 0x40]
fnstcw word [esp + 0x4a]
inc eax
fld dword [esp + 0x3c]
fadd dword [esp + 0x28]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x20]
inc eax
mov dword [esp + 0x20], eax
mov ax, word [esp + 0x4a]
mov ah, 0xc
mov word [esp + 0x48], ax
jmp 0x4b8bff
add esp, 0x4c
pop ebx
pop esi
pop edi
pop ebp
ret
push ebp
fild dword [esp]
add esp, 4
fnstcw word [esp + 0x4a]
mov ax, word [esp + 0x4a]
mov ah, 0xc
fst dword [esp + 0x30]
fxch st(2)
mov word [esp + 0x48], ax
fldcw word [esp + 0x48]
fist dword [esp + 0x44]
fldcw word [esp + 0x4a]
fxch st(2)
mov eax, dword [esp + 0x44]
fmul dword [eax*4 + 0x548260]
fadd dword [0x594624]
fldcw word [esp + 0x48]
fistp dword [esp + 0x44]
fldcw word [esp + 0x4a]
mov edx, dword [esp + 0x44]
jmp 0x4b8bc3
mov ecx, dword [0x5e3310]
test ecx, ecx
je 0x4b8fe1
mov eax, dword [0x5e3320]
xor edx, edx
mov dl, byte [eax]
add eax, edx
cmp ecx, eax
jae 0x4b8fe1
lea eax, [ecx + 1]
mov dword [0x5e3310], eax
jmp 0x4b8dfc
mov eax, dword [0x5e3330]
mov edx, dword [0x5e3310]
mov eax, dword [eax*4 + 0x5481f4]
add edx, eax
cmp ebp, dword [esp + 0x24]
mov dword [0x5e3310], edx
jne 0x4b8d36
jmp 0x4b8e06
mov edx, dword [0x5e3330]
cmp edx, 1
je 0x4b9047
cmp edx, 4
jne 0x4b8db0
mov esi, dword [0x5e3240]
mov edx, dword [eax]
test esi, esi
je 0x4b8f25
test edx, edx
je 0x4b8db0
mov eax, dword [0x5e3200]
test eax, eax
je 0x4b8f30
mov edx, eax
mov eax, dword [0x5e3220]
test eax, eax
je 0x4b916f
mov ebx, dword [0x5e32b0]
push ecx
push ecx
mov edi, dword [ebx]
push edi
push edx
call eax
add esp, 0x10
mov dword [ebx], eax
mov eax, dword [0x5e32c0]
mov edi, dword [0x5e3340]
mov dword [esp + 8], eax
jmp 0x4b8db0
mov edx, dword [0x5e3330]
cmp edx, 1
je 0x4b906c
cmp edx, 2
jne 0x4b8db0
mov ecx, dword [0x5e3240]
mov dx, word [eax]
test ecx, ecx
je 0x4b8f92
test dx, dx
je 0x4b8db0
mov eax, dword [0x5e3200]
test eax, eax
je 0x4b8f9d
mov edx, eax
mov ecx, dword [0x5e3210]
test ecx, ecx
je 0x4b9181
mov ebx, dword [0x5e32b0]
push edi
push edi
mov ax, word [ebx]
and eax, 0xffff
push eax
mov eax, edx
and eax, 0xffff
push eax
call ecx
add esp, 0x10
mov word [ebx], ax
mov edi, dword [0x5e3340]
mov ebx, dword [0x5e32c0]
mov dword [esp + 8], ebx
jmp 0x4b8db0
mov eax, dword [0x5e32d0]
mov ebx, dword [0x5e3300]
lea edx, [eax*4]
add edx, ebx
xor ebx, ebx
mov ecx, dword [edx]
add edx, ecx
nop
lea esi, [esi]
mov al, byte [edx]
inc edx
cmp al, 0xff
je 0x4b9030
and eax, 0xff
add ebx, eax
cmp esi, ebx
jl 0x4b9030
mov al, byte [edx]
inc edx
test al, al
je 0x4b9000
and eax, 0xff
lea ecx, [eax + ebx]
cmp esi, ecx
jl 0x4b909d
add edx, eax
mov ebx, ecx
mov al, byte [edx]
inc edx
cmp al, 0xff
jne 0x4b9007
mov dword [0x5e3310], 0
lea eax, [edx - 1]
mov dword [0x5e3320], eax
jmp 0x4b8dfc
mov al, byte [eax]
test al, al
jne 0x4b905b
mov ebx, dword [0x5e3240]
test ebx, ebx
jne 0x4b8db0
xor edx, edx
mov dl, al
mov eax, dword [0x5e3230]
mov edx, dword [eax + edx*4]
jmp 0x4b8f25
mov al, byte [eax]
test al, al
jne 0x4b9080
mov edx, dword [0x5e3240]
test edx, edx
jne 0x4b8db0
xor edx, edx
mov dl, al
mov eax, dword [0x5e3230]
mov dx, word [eax + edx*2]
jmp 0x4b8f92
xor esi, esi
xor ecx, ecx
xor ebx, ebx
jmp 0x4b8ca2
lea eax, [edx + esi]
sub eax, ebx
mov dword [0x5e3310], eax
jmp 0x4b903a
mov eax, dword [esp + 0x20]
mov ebx, dword [0x71f468]
imul eax, ebx
mov edx, dword [0x5e3330]
lea eax, [esi + eax]
mov ecx, dword [edx*4 + 0x5481f4]
mov edx, dword [0x5e3300]
imul eax, ecx
add eax, edx
mov dword [0x5e3310], eax
jmp 0x4b8d28
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x38]
mov dword [0x5e32d0], eax
mov eax, dword [0x5e3300]
add edx, eax
mov dword [0x5e32e0], esi
xor ebx, ebx
mov ebp, dword [edx]
add edx, ebp
nop
lea esi, [esi]
mov al, byte [edx]
inc edx
cmp al, 0xff
je 0x4b9134
and eax, 0xff
add ebx, eax
cmp esi, ebx
jl 0x4b9134
mov al, byte [edx]
inc edx
test al, al
je 0x4b9100
and eax, 0xff
lea ecx, [eax + ebx]
cmp esi, ecx
jl 0x4b9209
add edx, eax
mov ebx, ecx
mov al, byte [edx]
inc edx
cmp al, 0xff
jne 0x4b9107
mov dword [0x5e3310], 0
lea eax, [edx - 1]
mov dword [0x5e3320], eax
jmp 0x4b8d28
cmp ebx, dword [esp + 0x14]
jg 0x4b9160
mov esi, ecx
xor ecx, ecx
neg esi
jmp 0x4b8ca2
mov esi, ecx
mov ebx, dword [esp + 0x14]
neg esi
xor ecx, ecx
jmp 0x4b8ca2
mov eax, dword [0x5e32b0]
mov dword [eax], edx
mov edi, dword [0x5e3340]
jmp 0x4b8db0
mov eax, dword [0x5e32b0]
mov word [eax], dx
jmp 0x4b8db0
mov eax, dword [esp + 0x40]
mov ebp, dword [0x71f478]
imul eax, ebp
lea eax, [ecx + eax]
mov dword [esp + 0x2c], eax
mov eax, dword [0x5e3340]
mov edx, dword [esp + 0x2c]
mov edi, dword [eax*4 + 0x5481f4]
mov eax, dword [0x5e32a0]
imul edx, edi
add edx, eax
mov eax, dword [0x5e32c0]
mov dword [esp + 0x2c], edx
mov dword [0x5e32b0], edx
mov eax, dword [eax]
mov eax, dword [eax]
cmp eax, 0x726373
je 0x4b9280
cmp eax, 0x727073
je 0x4b9218
cmp eax, 0x706d62
je 0x4b9280
sub ebx, ecx
mov edi, dword [0x5e3310]
push ebp
push ebx
push edi
mov esi, dword [esp + 0x38]
push esi
call sub.msvcrt.dll_memcpy
add esp, 0x10
jmp 0x4b8e06
lea eax, [edx + esi]
sub eax, ebx
mov dword [0x5e3310], eax
jmp 0x4b913e
mov edx, dword [esp + 0x20]
mov eax, dword [0x5e3300]
mov dword [0x5e32d0], edx
mov edx, dword [esp + 0x38]
add edx, eax
mov dword [0x5e32e0], esi
mov ebp, dword [edx]
add edx, ebp
xor ebp, ebp
mov al, byte [edx]
inc edx
cmp al, 0xff
je 0x4b9269
and eax, 0xff
add ebp, eax
cmp esi, ebp
jl 0x4b9269
mov al, byte [edx]
inc edx
test al, al
je 0x4b9239
and eax, 0xff
lea edi, [eax + ebp]
cmp esi, edi
jl 0x4b92d2
add edx, eax
mov ebp, edi
mov al, byte [edx]
inc edx
cmp al, 0xff
jne 0x4b9240
mov dword [0x5e3310], 0
lea eax, [edx - 1]
mov dword [0x5e3320], eax
jmp 0x4b91ec
mov eax, dword [esp + 0x20]
mov edi, dword [0x71f468]
imul eax, edi
mov edx, dword [0x5e3330]
lea eax, [esi + eax]
mov esi, dword [edx*4 + 0x5481f4]
mov edx, dword [0x5e3300]
imul eax, esi
add eax, edx
mov dword [0x5e3310], eax
jmp 0x4b91ec
mov eax, ecx
mov dword [esp + 0x1c], ebx
neg eax
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
jmp 0x4b8b86
fadd dword [0x594620]
jmp 0x4b8b6c
lea eax, [edx + esi]
sub eax, ebp
mov dword [0x5e3310], eax
jmp 0x4b9273