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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x13c
mov edi, ecx
mov eax, dword [0x8e4a3c]
xor eax, esp
mov dword [esp + 0x138], eax
push ecx
call fcn.00407580
add esp, 4
cmp word [eax + 0x30], 0
je 0x4b614c
mov esi, eax
push edi
call fcn.0046ef20
add esp, 4
mov dword [esp + 0xc], eax
or byte [esi + 0x22], 4
lea eax, [esp + 0xc0]
push eax
push esi
call fcn.00474ef0
add esp, 8
movzx ebx, word [esi + 0x20]
mov word [esi + 0x20], 0
or byte [esi + 0x22], 4
lea ebp, [esp + 0xc8]
push ebp
call fcn.00480110
add esp, 4
lea edi, [esp + 0x78]
push edi
call fcn.0047d770
add esp, 4
push ebp
push 0x50000
push esi
call fcn.00473750
add esp, 0xc
push edi
push 0x50000
push esi
call fcn.00473b20
add esp, 0xc
and byte [esi + 0x22], 0xfb
mov dword [esp + 0x10], ebx
mov word [esi + 0x20], bx
push 0x10
push 0
push esi
call fcn.00478c90
add esp, 0xc
mov edi, eax
push 0x11
push 0
push esi
call fcn.00478c90
add esp, 0xc
mov ebx, eax
push 0x12
push 0
push esi
call fcn.00478c90
add esp, 0xc
mov ebp, eax
push 0x13
push 0
push esi
call fcn.00478c90
add esp, 0xc
mov dword [esp + 8], eax
lea eax, [esp + 0x30]
push dword [esp + 0xc]
push eax
call fcn.00474070
add esp, 8
mov dword [esp + 0x64], 0x50000
mov dword [esp + 0x34], 0x644940
mov dword [esp + 0x38], 0
lea eax, [esp + 0x100]
mov dword [esp + 0x40], eax
lea eax, [esp + 0x98]
mov dword [esp + 0x44], eax
movzx eax, word [esi + 0x30]
mov word [esp], ax
test ax, ax
je 0x4b6148
mov eax, dword [esp + 0x10]
and eax, 0x2e
mov dword [esp + 0x24], eax
movsx eax, bp
mov dword [esp + 0x20], eax
movsx eax, word [esp + 8]
mov dword [esp + 0x1c], eax
movsx eax, di
mov dword [esp + 0x18], eax
movsx eax, bx
mov dword [esp + 0x14], eax
xor ebx, ebx
xor ebp, ebp
mov dword [esp + 4], esi
jmp 0x4b5db4
push 0
push edi
lea eax, [esp + 0xc0]
push eax
lea eax, [esp + 0xa4]
push eax
push dword [esp + 0x1c]
call fcn.0047d7c0
add esp, 0x14
lea eax, [esp + 0x30]
push eax
push 0x1b
push esi
call fcn.0046e9e0
add esp, 0xc
movzx eax, word [esi + 0x30]
mov word [esp], ax
inc ebx
movzx eax, word [esp]
cmp ebx, eax
jae 0x4b6148
mov esi, dword [esi + 0x24]
nop word [eax + eax]
movzx edi, bp
push 0x659a8b
push dword [esi + edi*4]
call fcn.004d0730
add esp, 8
inc ebp
test eax, eax
je 0x4b5dc0
mov esi, dword [esp + 4]
mov eax, dword [esi + 0x2c]
movzx ecx, word [eax + ebx*2]
test cl, 8
jne 0x4b5da7
mov eax, ecx
shr eax, 7
and eax, 1
mov dx, 0x80
test cl, 0x20
jne 0x4b5e09
movzx ecx, word [esi + 0x34]
cmp ebx, ecx
mov edx, 0
cmove edx, dword [esp + 0x24]
mov dword [esp], edx
mov ecx, dword [esi + 0x28]
movzx edx, word [ecx + ebx*8]
mov word [esp + 0xb8], dx
movd xmm0, edx
movzx edx, word [ecx + ebx*8 + 2]
pinsrw xmm0, edx, 1
mov word [esp + 0xba], dx
movzx edx, word [ecx + ebx*8 + 4]
pinsrw xmm0, edx, 2
mov word [esp + 0xbc], dx
pinsrw xmm0, word [ecx + ebx*8 + 6], 3
or ax, word [esp]
movd xmm1, dword [esp + 0xc0]
pshufd xmm1, xmm1, 0
paddw xmm0, xmm1
movq qword [esp + 0xb8], xmm0
je 0x4b5ecd
mov word [esi + 0x20], ax
or byte [esi + 0x22], 4
lea eax, [esp + 0x100]
push eax
call fcn.00480110
add esp, 4
lea eax, [esp + 0x98]
push eax
call fcn.0047d770
add esp, 4
lea eax, [esp + 0x100]
push eax
push 0x50000
push esi
call fcn.00473750
add esp, 0xc
lea eax, [esp + 0x98]
push eax
push 0x50000
push esi
call fcn.00473b20
add esp, 0xc
mov eax, dword [esp + 0x10]
mov word [esi + 0x20], ax
and byte [esi + 0x22], 0xfb
jmp 0x4b5efe
push 0x38
lea eax, [esp + 0xcc]
push eax
lea eax, [esp + 0x108]
push eax
call fcn.004af000
add esp, 0xc
push 0x20
lea eax, [esp + 0x7c]
push eax
lea eax, [esp + 0xa0]
push eax
call fcn.004af000
add esp, 0xc
mov eax, dword [esi + 0x2c]
movzx eax, word [eax + ebx*2]
movzx ecx, byte [esp + 0xb5]
and cl, 0xfe
shr eax, 0xc
and al, 1
or al, cl
mov byte [esp + 0xb5], al
lea eax, [esp + 0xb8]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x68], ebx
lea eax, [esp + 0x30]
push eax
push 0x1a
push esi
call fcn.0046e9e0
add esp, 0xc
movzx eax, byte [esp + 0x123]
test al, 0x20
jne 0x4b5f60
movzx eax, word [esp + 0xba]
movzx esi, word [esp + 0xbe]
jmp 0x4b5ff1
and al, 0xc1
mov ecx, eax
or cl, 0x1e
mov byte [esp + 0x123], cl
movsx edx, word [esp + 0xb8]
movsx esi, word [esi + 0x14]
add esi, dword [esp + 0x20]
cmp esi, edx
jne 0x4b5f8d
or al, 0x16
mov byte [esp + 0x123], al
mov ecx, eax
movsx eax, word [esp + 0xbc]
mov esi, dword [esp + 4]
movsx edx, word [esi + 0x18]
sub edx, dword [esp + 0x1c]
cmp edx, eax
mov edx, esi
jne 0x4b5fb1
and cl, 0xef
mov byte [esp + 0x123], cl
movsx eax, word [esp + 0xba]
movsx edx, word [edx + 0x16]
add edx, dword [esp + 0x18]
cmp edx, eax
jne 0x4b5fcf
and cl, 0xfb
mov byte [esp + 0x123], cl
movsx esi, word [esp + 0xbe]
mov edx, dword [esp + 4]
movsx edx, word [edx + 0x1a]
sub edx, dword [esp + 0x14]
cmp edx, esi
jne 0x4b5ff1
and cl, 0xfd
mov byte [esp + 0x123], cl
mov ecx, dword [esp]
sub esi, eax
inc esi
movzx ecx, cx
mov dword [esp], ecx
test cl, 0x20
je 0x4b601a
mov ecx, dword [esp + 4]
mov ecx, dword [ecx + 0x2c]
test byte [ecx + ebx*2 + 1], 2
je 0x4b601a
sub eax, esi
mov word [esp + 0xba], ax
mov dword [esp + 0x28], esi
lea eax, [esp + 0xb8]
push eax
lea eax, [esp + 0x104]
push eax
push dword [esp + 0x14]
call fcn.00480170
add esp, 0xc
movsx eax, word [esp + 0xac]
mov dword [esp + 8], eax
movsx ecx, word [esp + 0xaa]
mov esi, dword [esp + 4]
mov edx, dword [esi + 0x24]
mov eax, dword [edx + edi*4]
movzx edx, byte [esp + 0xb5]
movzx edi, word [esp + 0xc4]
sub di, word [esp + 0xc0]
inc edi
movsx edi, di
push edx
push edi
mov edi, eax
push ecx
push dword [esp + 0x14]
push dword [esp + 0xa8]
push eax
lea eax, [esp + 0x44]
push eax
call fcn.004b1fa0
add esp, 0x1c
movd xmm0, dword [esp + 0xbc]
movd xmm2, dword [esp + 0xb8]
psubw xmm0, xmm2
psubw xmm0, xmmword [0x4f8870]
punpcklwd xmm1, xmm0
psrad xmm1, 0x10
movd xmm0, dword [esp + 0x2c]
pshuflw xmm3, xmm0, 0x60
psrad xmm3, 0x10
psubd xmm1, xmm3
movdqa xmm3, xmm1
psrld xmm3, 0x1f
paddd xmm3, xmm1
psrld xmm3, 1
pshuflw xmm1, xmm3, 0xe8
paddw xmm1, xmm2
movd dword [esp + 0xb8], xmm1
paddw xmm0, xmm1
movd dword [esp + 0xbc], xmm0
test byte [esp], 0x20
je 0x4b5d70
mov eax, dword [esi + 0x2c]
test byte [eax + ebx*2 + 1], 2
je 0x4b5d70
mov ecx, dword [esp + 0x28]
movzx eax, cx
shr eax, 0xf
add eax, ecx
cwde
sar eax, 1
pextrw ecx, xmm1, 1
sub ecx, eax
mov word [esp + 0xba], cx
pextrw ecx, xmm0, 1
sub ecx, eax
mov word [esp + 0xbe], cx
jmp 0x4b5d70
and byte [esi + 0x22], 0xfb
mov ecx, dword [esp + 0x138]
xor ecx, esp
call fcn.004c0e60
add esp, 0x13c
pop esi
pop edi
pop ebx
pop ebp
ret