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

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
and esp, 0xfffffff0
add esp, 0xffffff80
mov eax, dword [ebp + 8]
mov edi, dword [eax + 0x128]
test edi, edi
lea eax, [edi + 2]
cmove eax, edi
mov dword [esp + 0x44], eax
call fcn.004c1ff0
test eax, eax
jne 0x488b75
mov eax, dword [ebp + 8]
mov esi, dword [eax + 0x124]
test esi, esi
jne 0x488b88
mov ebx, 1
mov esi, 1
mov eax, dword [ebp + 8]
movd xmm3, esi
pshuflw xmm2, xmm3, 0
mov esi, dword [eax + 0x134]
movd dword [esp + 0x40], xmm2
lea eax, [esi + 0x410]
test esi, esi
jne 0x488535
mov eax, 0x1410
mov esi, 0x1000
mov edi, dword [ebp + 8]
xor ecx, ecx
mov word [esp + 0x48], cx
mov edi, dword [edi + 0x19c]
test edi, edi
je 0x488e40
mov ecx, dword [edi + 0x10]
mov dword [esp + 4], 0xeb5584
movzx edx, word [ecx + 0x44]
add edx, eax
mov eax, ebx
neg eax
and eax, edx
movzx edx, word [ecx + 0x42]
lea eax, [eax + edx + 0x730]
mov dword [esp], eax
call fcn.004caa50
mov ebx, eax
test eax, eax
je 0x4890e7
mov dword [eax + 0x530], 0x822380
mov edx, 0x8223e0
mov dword [eax + 0x528], eax
mov eax, dword [edi + 0x10]
mov dword [ebx + 0x564], eax
movzx eax, word [esp + 0x48]
mov word [ebx + 0x728], ax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x110]
mov dword [esp + 0x48], eax
mov eax, dword [ebp + 8]
movd xmm4, dword [esp + 0x48]
movd xmm0, dword [eax + 0x114]
punpckldq xmm0, xmm4
movq qword [ebx + 0x6dc], xmm0
movq xmm5, qword [eax + 0x15c]
movq qword [ebx + 0x67c], xmm5
mov eax, dword [eax + 0x12c]
movq qword [esp + 0x48], xmm5
mov dword [ebx + 0x670], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x1a0]
test eax, eax
cmove eax, edx
mov dword [ebx + 0x66c], eax
mov dword [esp], eax
mov dword [esp + 4], 1
call fcn.0048e430
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x168]
mov dword [ebx + 0x6f8], esi
mov dword [ebx + 0x684], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
mov dword [ebx + 0x300], 0xeb5590
mov dword [ebx + 0x320], 0xeb5594
mov dword [ebx + 0x448], eax
mov dword [ebx + 0x340], 0xeb5597
mov dword [ebx + 0x360], 0xeb559e
mov dword [ebx + 0x380], 0xeb55a2
mov dword [ebx + 0x3a0], 0xeb55a9
mov dword [ebx + 0x3c0], 0xeb55af
mov dword [ebx + 0x3e0], 0xeb55b5
mov dword [ebx + 0x400], 0xeb55be
mov dword [esp + 0x20], 0xeb55c7
mov dword [esp + 0x1c], 0xeb55d4
mov dword [esp + 0x18], 0xeb5568
mov dword [esp + 0x14], 0xeb55fd
mov dword [esp + 0x10], 0xeb5a58
mov dword [esp + 0xc], 4
mov dword [esp + 8], ebx
mov dword [esp + 4], 0x487a80
mov eax, dword [ebx + 0x66c]
mov dword [esp], eax
call fcn.0048e010
mov eax, dword [esp + 0x40]
mov dword [ebx + 0x420], 0xeb560b
mov dword [ebx + 0x440], 0xeb5612
mov dword [ebx + 0x71c], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
test eax, eax
je 0x48873a
mov dword [esp + 0x14], 0xeb5618
mov dword [esp + 0x10], 0xeb5a58
mov dword [esp + 0xc], 2
mov dword [esp + 8], ebx
mov dword [esp + 4], 0x487a80
mov eax, dword [ebx + 0x66c]
mov dword [esp], eax
call fcn.0048e010
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x174]
mov dword [ebx + 0x688], eax
mov dword [esp + 4], 0
mov dword [esp], ebx
call fcn.004c1fe0
test eax, eax
jne 0x488e86
mov eax, 0x4c1dd0
mov dword [ebx + 0xf0], ebx
movd xmm1, dword [0xeb5b7c]
movd xmm0, dword [0xeb5b80]
movd xmm7, eax
mov eax, 0x4c1cf0
mov dword [ebx + 0x568], 0xebe2a8
mov dword [ebx + 0xd0], 0x4c1e50
punpckldq xmm1, xmm7
movd xmm7, eax
lea eax, [ebx + 0xc0]
mov dword [ebx + 0x674], eax
punpckldq xmm0, xmm7
mov eax, dword [ebp + 8]
mov dword [ebx + 0xd4], 0
punpcklqdq xmm0, xmm1
movups xmmword [ebx + 0xc0], xmm0
mov eax, dword [eax + 0x138]
test eax, eax
je 0x4887d9
mov dword [ebx + 0xec], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x18]
mov dword [ebx + 0x6b4], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x130]
test eax, eax
je 0x4887f8
mov dword [ebx + 0x6a8], eax
call fcn.004c21a0
mov dword [ebx + 0x6c0], eax
mov eax, dword [ebp + 8]
mov dword [ebx + 0x6c4], edx
mov eax, dword [eax + 0x144]
mov dword [ebx + 0x678], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x94]
mov dword [ebx + 0x704], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x98]
mov dword [ebx + 0x70c], eax
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x11c]
mov eax, dword [eax + 0x118]
mov dword [ebx + 0x6d8], 0x7530
mov dword [esp + 0x48], eax
mov dword [ebx + 0x6c8], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x4c], edx
mov eax, dword [eax + 0x128]
mov dword [ebx + 0x6cc], edx
test eax, eax
je 0x488889
movzx eax, word [ebx + 0x71c]
mov edi, dword [esp + 0x44]
imul eax, edi
cmp eax, 0x752f
jbe 0x488f30
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
mov dword [ebx + 0x6ac], eax
lea eax, [ebx + 0x4b0]
mov dword [esp], eax
call fcn.007ddf38
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0xac]
test edx, edx
je 0x488f60
mov eax, dword [ebp + 8]
mov dword [ebx + 0x4ac], edx
mov edx, 0x3e8
mov eax, dword [eax + 0x1b4]
test eax, eax
cmove eax, edx
mov edx, 0xf
mov dword [ebx + 0x6ec], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xf8]
test eax, eax
cmove eax, edx
mov dword [ebx + 0x6f4], eax
mov eax, dword [ebp + 8]
movzx eax, word [eax + 0x60]
test ax, ax
jne 0x48890b
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x38]
movzx eax, dx
test edx, edx
mov edx, 0x1000
cmove eax, edx
mov dword [ebx + 0x6fc], eax
mov eax, dword [ebp + 8]
movzx eax, word [eax + 0x62]
test ax, ax
jne 0x48892e
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x3c]
test eax, eax
je 0x488f20
movzx eax, ax
mov edi, dword [ebp + 8]
mov dword [ebx + 0x700], eax
movzx eax, word [ebx + 0x71c]
mov ecx, dword [edi + 0x16c]
mov edi, dword [edi + 0x128]
test edi, edi
je 0x488a20
mov edi, dword [esp + 0x44]
mov esi, 0x40004
mov dword [ebx + 0x2b8], 0x8223c8
mov byte [ebx + 0x2c4], 0x14
mov dword [ebx + 0x6f0], edi
mov edi, 0x136012c
mov dword [ebx + 0x2bc], esi
mov dword [ebx + 0x2c0], edi
test ecx, ecx
je 0x488997
cmp word [ecx + 8], 0
je 0x488997
mov edx, dword [ecx + 8]
mov dword [ebx + 0x2c0], edx
test ax, ax
je 0x488a70
lea edx, [ebx + 0x730]
xor eax, eax
mov dword [ebx + 0x268], ebx
mov dword [ebx + 0x26c], edx
add edx, dword [ebx + 0x6f8]
lea edi, [edx + 4]
mov ecx, edx
mov dword [ebx + 0x248], edx
add edx, 0x410
and edi, 0xfffffffc
mov byte [ebx + 0x2b2], 0
sub ecx, edi
mov dword [edx - 4], 0
mov dword [edx - 0x410], 0
add ecx, 0x410
shr ecx, 2
rep stosd dword es:[edi], eax
mov dword [ebx + 0x298], edx
mov dword [ebx + 0x284], 0
mov dword [ebx + 0x290], 0
movzx eax, word [ebx + 0x71c]
jmp 0x488a72
test ax, ax
jne 0x488ec0
mov eax, 0x40004
mov edx, 0x136012c
mov dword [ebx + 0x2b8], 0x8223c8
mov byte [ebx + 0x2c4], 0x14
mov dword [ebx + 0x2bc], eax
mov dword [ebx + 0x2c0], edx
test ecx, ecx
je 0x488a70
cmp word [ecx + 8], 0
je 0x488a70
mov eax, dword [ecx + 8]
mov dword [ebx + 0x2c0], eax
lea esi, cs:[esi]
lea esi, [esi]
xor eax, eax
mov edi, dword [ebp + 8]
mov esi, dword [edi + 0xf4]
test esi, esi
jne 0x488a8d
mov ecx, dword [edi + 0xec]
test ecx, ecx
jg 0x488e54
mov dword [esp + 4], 0xeb566d
neg eax
and eax, dword [ebx + 0x6f0]
shl eax, 3
mov dword [esp], eax
call fcn.004caa50
mov dword [ebx + 0x270], eax
test eax, eax
je 0x48910f
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x28]
test eax, eax
je 0x488ad5
mov dword [ebx + 0x560], eax
mov dword [esp], eax
call fcn.007ddf80
mov word [ebx + 0x724], ax
mov eax, dword [ebp + 8]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.004c2040
mov esi, eax
test eax, eax
jne 0x488b65
mov eax, dword [ebx + 0x564]
mov edx, dword [eax + 4]
test edx, edx
je 0x488b0d
mov eax, dword [ebp + 8]
mov dword [esp], ebx
mov dword [esp + 4], eax
call edx
test eax, eax
jne 0x488b65
mov eax, dword [ebx + 0x564]
mov edx, dword [eax + 0x14]
test edx, edx
je 0x488ba0
cmp word [ebx + 0x71c], 0
je 0x488ba0
mov edi, dword [ebp + 8]
jmp 0x488b47
movzx eax, word [ebx + 0x71c]
add esi, 1
cmp eax, esi
jle 0x488ba0
mov eax, dword [ebx + 0x564]
mov edx, dword [eax + 0x14]
mov eax, dword [edi + 0x13c]
test eax, eax
je 0x488b54
mov eax, dword [eax + esi*4]
mov dword [esp + 8], esi
mov dword [esp + 4], eax
mov dword [esp], ebx
call edx
test eax, eax
je 0x488b30
test byte [ebx + 0x718], 4
jne 0x488b75
mov eax, ebx
call fcn.00487d30
lea esp, [ebp - 0xc]
xor ebx, ebx
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
cmp si, 0
mov eax, 1
cmova esi, eax
movzx ebx, si
jmp 0x488509
mov dword [esp], ebx
call fcn.00497d20
test eax, eax
jne 0x488b65
cmp word [ebx + 0x71c], 0
lea edi, [ebx + 0x1c8]
je 0x488c3a
mov ecx, dword [0x822414]
mov dword [esp + 0x48], eax
test ecx, ecx
je 0x488c3a
lea esi, [esi]
mov esi, 0x822414
lea esi, cs:[esi]
lea esi, [esi]
movzx eax, byte [ecx + 0xc]
add esi, 4
and eax, 0xf
je 0x488f48
mov ecx, dword [ecx + 8]
mov dword [esp + 0xc], 0
movzx eax, al
mov dword [esp + 8], edi
mov edx, dword [ebp + 8]
mov dword [esp], ebx
mov dword [esp + 4], edx
call dword [ecx + eax*4 - 4]
mov ecx, dword [esi]
test ecx, ecx
jne 0x488be0
add dword [esp + 0x48], 1
movzx eax, word [ebx + 0x71c]
mov edx, dword [esp + 0x48]
cmp eax, edx
jle 0x488c3a
mov ecx, dword [0x822414]
add edi, 0xf0
test ecx, ecx
jne 0x488bd0
mov eax, dword [ebp + 8]
mov dword [esp], ebx
lea esi, [ebx + 0x51c]
mov dword [esp + 4], eax
call fcn.004c4b20
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x120]
mov dword [ebx], 0x6e6b6e75
mov dword [ebx + 4], 0x6e776f
mov dword [ebx + 0x6b0], eax
mov eax, dword [ebp + 8]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.004a8970
lea eax, [ebx + 0x53c]
mov dword [ebx + 0x534], 0xeb568e
mov dword [ebx + 0x538], 1
mov dword [ebx + 0x52c], ebx
mov dword [ebx + 0x54c], 0xeb5695
mov dword [ebx + 0x548], 0x487ae0
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.0049e660
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x170]
mov dword [esp], esi
mov dword [esp + 4], eax
call fcn.0049e690
mov eax, dword [ebp + 8]
xor ecx, ecx
mov edx, dword [eax + 0x11c]
mov eax, dword [eax + 0x118]
mov dword [esp + 0x48], eax
and eax, 0x2000
or eax, ecx
mov dword [esp + 0x4c], edx
je 0x488d02
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x158]
test edx, edx
je 0x48901d
mov eax, dword [ebp + 8]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.004985d0
test eax, eax
je 0x489170
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x1a4]
test eax, eax
je 0x488db5
lea esi, [esp + 0x58]
pxor xmm0, xmm0
mov dword [esp + 0x58], ebx
mov dword [esp], esi
movups xmmword [esp + 0x60], xmm0
mov dword [esp + 0x5c], 0xeb56bf
mov dword [esp + 0x68], 0xeb6360
mov dword [esp + 0x6c], eax
movups xmmword [esp + 0x70], xmm0
call fcn.0048f180
mov dword [ebx + 0x4c8], eax
test eax, eax
je 0x488b65
mov dword [esp + 0x64], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x68], 0xeb61c0
movq xmm4, qword [eax + 0x1a8]
mov eax, dword [eax + 0x1b0]
mov dword [esp], esi
mov dword [esp + 0x5c], 0xeb56c3
mov dword [esp + 0x78], eax
movq qword [esp + 0x48], xmm4
movq qword [esp + 0x70], xmm4
call fcn.0048f180
mov dword [ebx + 0x4c4], eax
test eax, eax
je 0x48917d
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x11c]
mov eax, dword [eax + 0x118]
mov dword [esp + 0x4c], edx
xor edx, edx
mov dword [esp + 0x48], eax
and eax, 0x2000
or eax, edx
jne 0x48902b
mov dword [esp + 4], 1
mov dword [esp], ebx
call fcn.004c1fe0
test eax, eax
jne 0x488b65
lea eax, [ebx + 0x2c8]
mov dword [esp], ebx
mov dword [esp + 8], eax
mov dword [esp + 0x10], 1
mov dword [esp + 0x14], 0
mov dword [esp + 0xc], 0x487ac0
mov dword [esp + 4], 0
call fcn.0049bc00
mov dword [esp], ebx
call fcn.00497c90
lea esp, [ebp - 0xc]
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
mov edx, 0x3e8
mov edi, 0xebbdbc
mov word [esp + 0x48], dx
jmp 0x48854d
mov dword [esp + 0x14], 0xeb5640
mov dword [esp + 0x10], 0xeb5a58
mov dword [esp + 0xc], 1
mov dword [esp + 8], ebx
mov dword [esp + 4], 0x487a80
mov eax, dword [ebx + 0x66c]
mov dword [esp], eax
call fcn.0048e010
mov dword [esp + 4], 0xffffffff
mov eax, dword [ebx + 0x66c]
mov dword [esp], eax
call fcn.0048e430
mov dword [esp + 8], 0xeb5511
mov dword [esp + 4], 0
mov dword [esp], ebx
call fcn.004caa40
jmp 0x488b75
movzx esi, ax
mov eax, dword [ebx + 0x6d8]
xor edx, edx
mov dword [ebx + 0x2b8], 0x8223c8
mov byte [ebx + 0x2c4], 0x14
div esi
mov edx, 0x136012c
mov dword [ebx + 0x2c0], edx
mov dword [ebx + 0x6f0], eax
mov eax, 0x40004
mov dword [ebx + 0x2bc], eax
test ecx, ecx
je 0x4889a0
cmp word [ecx + 8], 0
je 0x4889a0
mov eax, dword [ecx + 8]
mov dword [ebx + 0x2c0], eax
jmp 0x4889a0
mov eax, dword [ebx + 0x6d8]
jmp 0x48892e
or byte [ebx + 0x719], 8
mov dword [ebx + 0x6d8], eax
jmp 0x488889
mov ecx, dword [esi]
test ecx, ecx
jne 0x488be0
jmp 0x488c16
mov eax, dword [0x822414]
lea edx, [ebx + 0x48c]
lea ecx, [ebx + 0x4aa]
mov esi, 0x822414
mov dword [esp + 0x48], ecx
mov edi, edx
test eax, eax
je 0x4888b4
mov dword [esp + 0x3c], edx
mov ecx, 1
mov dword [esp + 0x40], ebx
mov edx, dword [eax + 4]
add esi, 4
test edx, edx
je 0x488fff
mov ebx, dword [esp + 0x48]
test cl, cl
je 0x489150
mov eax, ebx
mov dword [esp + 0xc], edx
sub eax, edi
mov dword [esp + 8], 0xeb563c
mov dword [esp + 4], eax
mov dword [esp], edi
call fcn.0048a610
lea edx, [edi + eax]
mov eax, dword [esi]
test eax, eax
je 0x489010
mov edi, dword [eax + 4]
lea ecx, [esi + 4]
test edi, edi
je 0x488fe8
mov byte [edx], 0x2c
lea edi, [edx + 1]
mov esi, ecx
mov edx, dword [eax + 4]
jmp 0x488fa7
mov eax, dword [esi + 4]
test eax, eax
je 0x489010
lea ecx, [esi + 8]
mov esi, dword [eax + 4]
test esi, esi
jne 0x488fd6
mov esi, ecx
mov edi, edx
xor ecx, ecx
mov eax, dword [esi]
test eax, eax
jne 0x488f91
lea esi, cs:[esi]
lea esi, [esi]
mov edx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x40]
jmp 0x4888b4
mov eax, dword [eax + 0x1a4]
test eax, eax
jne 0x488d2a
mov eax, dword [ebx + 0x688]
test eax, eax
je 0x489100
mov dword [esp + 4], 0
mov dword [esp], ebx
call fcn.004becb0
test eax, eax
jne 0x488b65
mov esi, dword [ebx + 0x688]
mov dword [esp], esi
call fcn.007ddf80
mov dword [esp + 4], esi
mov dword [esp + 8], eax
mov dword [esp], ebx
call fcn.004bf030
cmp eax, 0xffffffff
jl 0x489163
mov dword [esp + 4], 0xeb59fb
mov dword [esp], ebx
call fcn.004bcb30
test eax, eax
jne 0x4890b0
mov eax, dword [ebp + 8]
xor ecx, ecx
mov eax, dword [eax + 0x118]
and eax, 0x2000
or eax, ecx
jne 0x488df3
jmp 0x488ddb
mov dword [esp + 0x14], 0xeb5a05
mov dword [esp + 0x10], 0xeb5a58
mov dword [esp + 0xc], 1
mov dword [esp + 8], ebx
mov dword [esp + 4], 0x487a80
mov eax, dword [ebx + 0x66c]
mov dword [esp], eax
call fcn.0048e010
jmp 0x488b65
mov dword [esp + 4], 0xeb558c
mov dword [esp], 1
call fcn.0048dfc0
jmp 0x488b75
mov dword [ebx + 0x688], 0xeb56e0
jmp 0x489039
mov eax, dword [ebx + 0x6d8]
mov dword [esp + 0x14], 0xeb5677
mov dword [esp + 0x10], 0xeb5a58
mov dword [esp + 0x18], eax
mov dword [esp + 0xc], 1
mov dword [esp + 8], ebx
mov dword [esp + 4], 0x487a80
mov eax, dword [ebx + 0x66c]
mov dword [esp], eax
call fcn.0048e010
jmp 0x488e86
mov edx, edi
mov edi, dword [esp + 0x40]
mov ecx, esi
lea ebx, [edi + 0x4aa]
jmp 0x488fd6
mov dword [esp], ebx
call fcn.004bede0
jmp 0x488b65
mov dword [esp + 0x14], 0xeb56a0
jmp 0x4890b8
mov dword [esp + 0x14], 0xeb56c6
jmp 0x4890b8