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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xc90
mov ecx, dword [ebp + 0x10]
mov eax, dword [0x7024bc]
xor eax, ebp
mov dword [esp + 0xc88], eax
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0x2c0], xmm0
movdqa xmmword [esp + 0x2b0], xmm0
movdqa xmmword [esp + 0x2a0], xmm0
movdqa xmmword [esp + 0x290], xmm0
movdqa xmmword [esp + 0x280], xmm0
movdqa xmmword [esp + 0x270], xmm0
movdqa xmmword [esp + 0x260], xmm0
movdqa xmmword [esp + 0x250], xmm0
movdqa xmmword [esp + 0x240], xmm0
movdqa xmmword [esp + 0x230], xmm0
xor ebx, ebx
cmp byte [ecx + 0x3f], 0x1f
ja 0x4d43b3
lea eax, [esp + 0x230]
push dword [ebp + 0x14]
push eax
call fcn.004ca5d0
add esp, 8
test eax, eax
je 0x4d43b3
mov ebx, 0x7ffffda
sub ebx, dword [esp + 0x230]
mov dword [esp + 4], ebx
shr ebx, 0x1a
sub ebx, dword [esp + 0x234]
add ebx, 0x3fffffe
mov esi, ebx
shr esi, 0x19
sub esi, dword [esp + 0x238]
add esi, 0x7fffffe
mov dword [esp + 8], esi
shr esi, 0x1a
sub esi, dword [esp + 0x23c]
add esi, 0x3fffffe
mov dword [esp + 0x14], esi
shr esi, 0x19
sub esi, dword [esp + 0x240]
add esi, 0x7fffffe
mov dword [esp + 0x10], esi
shr esi, 0x1a
sub esi, dword [esp + 0x244]
add esi, 0x3fffffe
mov dword [esp + 0xc], esi
shr esi, 0x19
sub esi, dword [esp + 0x248]
add esi, 0x7fffffe
mov dword [esp + 0x18], esi
shr esi, 0x1a
sub esi, dword [esp + 0x24c]
add esi, 0x3fffffe
mov ecx, esi
shr ecx, 0x19
sub ecx, dword [esp + 0x250]
add ecx, 0x7fffffe
mov edx, ecx
shr edx, 0x1a
sub edx, dword [esp + 0x254]
add edx, 0x3fffffe
mov eax, edx
shr eax, 0x19
lea edi, [eax + eax*8]
lea eax, [eax + edi*2]
mov edi, dword [esp + 4]
and edi, 0x3ffffff
add eax, edi
mov edi, eax
shr edi, 0x1a
and ebx, 0x1ffffff
add ebx, edi
mov dword [esp + 4], ebx
shr ebx, 0x19
mov edi, dword [esp + 8]
and edi, 0x3ffffff
add edi, ebx
and eax, 0x3ffffff
mov dword [esp + 0x230], eax
mov eax, dword [esp + 4]
and eax, 0x1ffffff
mov dword [esp + 0x234], eax
mov dword [esp + 0x238], edi
mov eax, dword [esp + 0x14]
and eax, 0x1ffffff
mov dword [esp + 0x23c], eax
mov eax, dword [esp + 0x10]
and eax, 0x3ffffff
mov dword [esp + 0x240], eax
mov eax, dword [esp + 0xc]
and eax, 0x1ffffff
mov dword [esp + 0x244], eax
mov eax, dword [esp + 0x18]
and eax, 0x3ffffff
and esi, 0x1ffffff
and ecx, 0x3ffffff
and edx, 0x1ffffff
mov dword [esp + 0x248], eax
mov dword [esp + 0x24c], esi
mov dword [esp + 0x250], ecx
mov dword [esp + 0x254], edx
mov ebx, 0x7ffffda
sub ebx, dword [esp + 0x2a8]
mov dword [esp + 4], ebx
shr ebx, 0x1a
sub ebx, dword [esp + 0x2ac]
add ebx, 0x3fffffe
mov edx, ebx
shr edx, 0x19
sub edx, dword [esp + 0x2b0]
add edx, 0x7fffffe
mov dword [esp + 8], edx
shr edx, 0x1a
sub edx, dword [esp + 0x2b4]
add edx, 0x3fffffe
mov dword [esp + 0x14], edx
shr edx, 0x19
sub edx, dword [esp + 0x2b8]
add edx, 0x7fffffe
mov dword [esp + 0x10], edx
shr edx, 0x1a
sub edx, dword [esp + 0x2bc]
add edx, 0x3fffffe
mov dword [esp + 0xc], edx
shr edx, 0x19
sub edx, dword [esp + 0x2c0]
add edx, 0x7fffffe
mov dword [esp + 0x18], edx
shr edx, 0x1a
sub edx, dword [esp + 0x2c4]
add edx, 0x3fffffe
mov esi, edx
shr esi, 0x19
sub esi, dword [esp + 0x2c8]
add esi, 0x7fffffe
mov edi, esi
shr edi, 0x1a
sub edi, dword [esp + 0x2cc]
add edi, 0x3fffffe
mov eax, edi
shr eax, 0x19
lea ecx, [eax + eax*8]
lea eax, [eax + ecx*2]
mov ecx, dword [esp + 4]
and ecx, 0x3ffffff
add eax, ecx
mov ecx, eax
shr ecx, 0x1a
and ebx, 0x1ffffff
add ebx, ecx
mov dword [esp + 4], ebx
shr ebx, 0x19
mov ecx, dword [esp + 8]
and ecx, 0x3ffffff
add ecx, ebx
and eax, 0x3ffffff
mov dword [esp + 0x2a8], eax
mov eax, dword [esp + 4]
and eax, 0x1ffffff
mov dword [esp + 0x2ac], eax
mov dword [esp + 0x2b0], ecx
mov eax, dword [esp + 0x14]
and eax, 0x1ffffff
mov dword [esp + 0x2b4], eax
mov eax, dword [esp + 0x10]
and eax, 0x3ffffff
mov dword [esp + 0x2b8], eax
mov eax, dword [esp + 0xc]
and eax, 0x1ffffff
mov dword [esp + 0x2bc], eax
mov eax, dword [esp + 0x18]
and eax, 0x3ffffff
mov dword [esp + 0x2c0], eax
and edx, 0x1ffffff
mov dword [esp + 0x2c4], edx
xor ebx, ebx
and esi, 0x3ffffff
and edi, 0x1ffffff
mov dword [esp + 0x2c8], esi
mov dword [esp + 0x2cc], edi
mov edx, dword [ebp + 0x10]
movups xmm0, xmmword [edx]
movups xmm1, xmmword [edx + 0x10]
movaps xmmword [esp + 0x220], xmm1
movaps xmmword [esp + 0x210], xmm0
movdqu xmm0, xmmword [edx + 0x20]
movups xmm1, xmmword [edx + 0x30]
movaps xmmword [esp + 0x200], xmm1
movdqa xmmword [esp + 0x1f0], xmm0
mov ecx, dword [esp + 0x208]
mov eax, dword [esp + 0x20c]
neg ecx
mov ecx, 0x10000000
sbb ecx, eax
mov ecx, 0x10000000
jb 0x4d43b3
cmp eax, ecx
jae 0x4d3944
mov edi, dword [ebp + 0xc]
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0x1d0], xmm0
movdqa xmmword [esp + 0x1c0], xmm0
movdqa xmmword [esp + 0x1b0], xmm0
movdqa xmmword [esp + 0x1a0], xmm0
movdqa xmmword [esp + 0x190], xmm0
movdqa xmmword [esp + 0x180], xmm0
movdqa xmmword [esp + 0x170], xmm0
movdqa xmmword [esp + 0x160], xmm0
movdqa xmmword [esp + 0x150], xmm0
movdqa xmmword [esp + 0x140], xmm0
movdqa xmmword [esp + 0x130], xmm0
movdqa xmmword [esp + 0x120], xmm0
movdqa xmmword [esp + 0x110], xmm0
mov dword [esp + 0x1e4], 0xffffffff
mov dword [esp + 0x1e0], 0xffffffff
lea ebx, [esp + 0x110]
push ebx
mov esi, edx
call fcn.0050c8e0
add esp, 4
push 0x20
push esi
push ebx
call fcn.0050c940
add esp, 0xc
push 0x20
push dword [ebp + 0x14]
push ebx
call fcn.0050c940
add esp, 0xc
push edi
push dword [ebp + 8]
push ebx
call fcn.0050c940
add esp, 0xc
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0x100], xmm0
movdqa xmmword [esp + 0xf0], xmm0
movdqa xmmword [esp + 0xe0], xmm0
movdqa xmmword [esp + 0xd0], xmm0
lea esi, [esp + 0xd0]
push ebx
push esi
call fcn.0050ca30
add esp, 8
push esi
call fcn.004cd3b0
add esp, 4
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0xb0], xmm0
movdqa xmmword [esp + 0xa0], xmm0
movdqa xmmword [esp + 0x90], xmm0
movdqa xmmword [esp + 0x80], xmm0
movdqa xmmword [esp + 0x70], xmm0
movdqa xmmword [esp + 0x60], xmm0
movdqa xmmword [esp + 0x50], xmm0
mov dword [esp + 0xc4], 0xffffffff
mov dword [esp + 0xc0], 0xffffffff
movdqa xmmword [esp + 0xba0], xmm0
movdqa xmmword [esp + 0xb90], xmm0
movdqa xmmword [esp + 0xb80], xmm0
movdqa xmmword [esp + 0xb70], xmm0
movdqa xmmword [esp + 0xb60], xmm0
movdqa xmmword [esp + 0xb50], xmm0
movdqa xmmword [esp + 0xb40], xmm0
movdqa xmmword [esp + 0xb30], xmm0
movdqa xmmword [esp + 0xb20], xmm0
movdqa xmmword [esp + 0xb10], xmm0
movdqa xmmword [esp + 0xb00], xmm0
movdqa xmmword [esp + 0xaf0], xmm0
movdqa xmmword [esp + 0xae0], xmm0
movdqa xmmword [esp + 0xad0], xmm0
movdqa xmmword [esp + 0xac0], xmm0
movdqa xmmword [esp + 0xab0], xmm0
movdqa xmmword [esp + 0xaa0], xmm0
movdqa xmmword [esp + 0xa90], xmm0
movdqa xmmword [esp + 0xa80], xmm0
movdqa xmmword [esp + 0xa70], xmm0
movdqa xmmword [esp + 0xa60], xmm0
movdqa xmmword [esp + 0xa50], xmm0
movdqa xmmword [esp + 0xa40], xmm0
movdqa xmmword [esp + 0xa30], xmm0
movdqa xmmword [esp + 0xa20], xmm0
movdqa xmmword [esp + 0xa10], xmm0
movdqa xmmword [esp + 0xa00], xmm0
movdqa xmmword [esp + 0x9f0], xmm0
movdqa xmmword [esp + 0x9e0], xmm0
movdqa xmmword [esp + 0x9d0], xmm0
movdqa xmmword [esp + 0x9c0], xmm0
movdqa xmmword [esp + 0x9b0], xmm0
lea eax, [esp + 0x4b0]
push 0x500
push 0xff
push eax
call fcn.00645dd0
add esp, 0xc
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0x4a0], xmm0
movdqa xmmword [esp + 0x490], xmm0
movdqa xmmword [esp + 0x480], xmm0
movdqa xmmword [esp + 0x470], xmm0
movdqa xmmword [esp + 0x460], xmm0
movdqa xmmword [esp + 0x450], xmm0
movdqa xmmword [esp + 0x440], xmm0
movdqa xmmword [esp + 0x430], xmm0
movdqa xmmword [esp + 0x420], xmm0
movdqa xmmword [esp + 0x410], xmm0
movdqa xmmword [esp + 0x400], xmm0
movdqa xmmword [esp + 0x3f0], xmm0
movdqa xmmword [esp + 0x3e0], xmm0
movdqa xmmword [esp + 0x3d0], xmm0
movdqa xmmword [esp + 0x3c0], xmm0
movdqa xmmword [esp + 0x3b0], xmm0
movdqa xmmword [esp + 0x3a0], xmm0
movdqa xmmword [esp + 0x390], xmm0
movdqa xmmword [esp + 0x380], xmm0
movdqa xmmword [esp + 0x370], xmm0
movdqa xmmword [esp + 0x360], xmm0
movdqa xmmword [esp + 0x350], xmm0
movdqa xmmword [esp + 0x340], xmm0
movdqa xmmword [esp + 0x330], xmm0
movdqa xmmword [esp + 0x320], xmm0
movdqa xmmword [esp + 0x310], xmm0
movdqa xmmword [esp + 0x300], xmm0
movdqa xmmword [esp + 0x2f0], xmm0
movdqa xmmword [esp + 0x2e0], xmm0
movdqa xmmword [esp + 0x2d0], xmm0
xor eax, eax
nop word cs:[eax + eax]
mov edx, eax
shr edx, 3
mov ecx, eax
and cl, 6
movzx edx, byte [esp + edx + 0xd0]
mov ebx, edx
shr ebx, cl
and bl, 1
mov byte [esp + eax + 0xab0], bl
mov ecx, eax
add cl, 1
and cl, 7
shr edx, cl
and dl, 1
mov byte [esp + eax + 0xab1], dl
add eax, 2
cmp eax, 0x100
jne 0x4d3140
xor esi, esi
mov dword [esp + 8], 0xfe
jmp 0x4d31a5
add dword [esp + 8], 0xffffffff
mov esi, dword [esp + 0xc]
cmp esi, 0x100
je 0x4d3269
lea eax, [esi + 1]
mov dword [esp + 0xc], eax
cmp esi, 0xfe
ja 0x4d3190
cmp byte [esp + esi + 0xab0], 0
je 0x4d3190
mov eax, dword [esp + 8]
cmp eax, 5
mov ecx, 5
cmovb ecx, eax
add ecx, 1
mov dword [esp + 0x14], ecx
mov ecx, 1
mov ebx, dword [esp + 0xc]
jmp 0x4d3204
mov eax, dword [esp + 0x10]
mov byte [esp + esi + 0xab0], al
mov byte [esp + ebx + 0xab0], 0
lea ebx, [ecx + esi]
add ebx, 1
lea eax, [ecx + 1]
cmp ecx, dword [esp + 0x14]
mov ecx, eax
je 0x4d3190
movsx edx, byte [esp + ebx + 0xab0]
test edx, edx
je 0x4d31f3
shl edx, cl
movsx eax, byte [esp + esi + 0xab0]
lea edi, [edx + eax]
mov dword [esp + 0x10], edi
cmp edi, 0xf
jle 0x4d31e0
sub eax, edx
cmp eax, 0xfffffff1
jl 0x4d3190
mov byte [esp + esi + 0xab0], al
nop dword [eax + eax]
cmp byte [esp + ebx + 0xab0], 0
je 0x4d325f
mov byte [esp + ebx + 0xab0], 0
add ebx, 1
cmp ebx, 0x100
jne 0x4d3240
jmp 0x4d31f3
mov byte [esp + ebx + 0xab0], 1
jmp 0x4d31f3
xor eax, eax
nop dword [eax + eax]
mov edx, eax
shr edx, 3
mov ecx, eax
and cl, 6
movzx edx, byte [esp + edx + 0x1f0]
mov ebx, edx
shr ebx, cl
and bl, 1
mov byte [esp + eax + 0x9b0], bl
mov ecx, eax
add cl, 1
and cl, 7
shr edx, cl
and dl, 1
mov byte [esp + eax + 0x9b1], dl
add eax, 2
cmp eax, 0x100
jne 0x4d3270
xor esi, esi
mov dword [esp + 8], 0xfe
jmp 0x4d32d5
add dword [esp + 8], 0xffffffff
mov esi, dword [esp + 0xc]
cmp esi, 0x100
je 0x4d3399
lea eax, [esi + 1]
mov dword [esp + 0xc], eax
cmp esi, 0xfe
ja 0x4d32c0
cmp byte [esp + esi + 0x9b0], 0
je 0x4d32c0
mov eax, dword [esp + 8]
cmp eax, 5
mov ecx, 5
cmovb ecx, eax
add ecx, 1
mov dword [esp + 0x14], ecx
mov ecx, 1
mov ebx, dword [esp + 0xc]
jmp 0x4d3334
mov eax, dword [esp + 0x10]
mov byte [esp + esi + 0x9b0], al
mov byte [esp + ebx + 0x9b0], 0
lea ebx, [ecx + esi]
add ebx, 1
lea eax, [ecx + 1]
cmp ecx, dword [esp + 0x14]
mov ecx, eax
je 0x4d32c0
movsx edx, byte [esp + ebx + 0x9b0]
test edx, edx
je 0x4d3323
shl edx, cl
movsx eax, byte [esp + esi + 0x9b0]
lea edi, [edx + eax]
mov dword [esp + 0x10], edi
cmp edi, 0xf
jle 0x4d3310
sub eax, edx
cmp eax, 0xfffffff1
jl 0x4d32c0
mov byte [esp + esi + 0x9b0], al
nop dword [eax + eax]
cmp byte [esp + ebx + 0x9b0], 0
je 0x4d338f
mov byte [esp + ebx + 0x9b0], 0
add ebx, 1
cmp ebx, 0x100
jne 0x4d3370
jmp 0x4d3323
mov byte [esp + ebx + 0x9b0], 1
jmp 0x4d3323
lea eax, [esp + 0x230]
push eax
lea esi, [esp + 0x4b4]
push esi
call fcn.004cb370
add esp, 8
movsd xmm0, qword [esp + 0x250]
movsd qword [esp + 0xbd0], xmm0
movaps xmm0, xmmword [esp + 0x230]
movdqa xmm1, xmmword [esp + 0x240]
movdqa xmmword [esp + 0xbc0], xmm1
movaps xmmword [esp + 0xbb0], xmm0
movups xmm0, xmmword [esp + 0x258]
movups xmmword [esp + 0xbd8], xmm0
movups xmm0, xmmword [esp + 0x268]
movups xmmword [esp + 0xbe8], xmm0
movsd xmm0, qword [esp + 0x278]
movsd qword [esp + 0xbf8], xmm0
movaps xmm0, xmmword [esp + 0x280]
movaps xmmword [esp + 0xc00], xmm0
movaps xmm0, xmmword [esp + 0x290]
movaps xmmword [esp + 0xc10], xmm0
movq xmm0, qword [esp + 0x2a0]
movq qword [esp + 0xc20], xmm0
lea ebx, [esp + 0x410]
lea edx, [esp + 0xbb0]
mov ecx, ebx
call fcn.004ccc00
lea eax, [esp + 0x488]
lea ecx, [esp + 0x2d0]
mov edx, ebx
push eax
call fcn.004d5b10
add esp, 4
lea esi, [esp + 0x460]
lea edi, [esp + 0x438]
lea ecx, [esp + 0x2f8]
mov edx, edi
push esi
call fcn.004d5b10
add esp, 4
lea ecx, [esp + 0x320]
mov edx, esi
lea esi, [esp + 0x488]
push esi
call fcn.004d5b10
add esp, 4
lea ecx, [esp + 0x348]
mov edx, ebx
push edi
call fcn.004d5b10
add esp, 4
lea eax, [esp + 0x4b0]
push eax
lea eax, [esp + 0x2d4]
push eax
push ebx
call fcn.004cb440
add esp, 0xc
lea ecx, [esp + 0x370]
mov edx, ebx
push esi
call fcn.004d5b10
add esp, 4
lea ecx, [esp + 0x398]
mov edx, edi
lea eax, [esp + 0x460]
push eax
call fcn.004d5b10
add esp, 4
lea ecx, [esp + 0x3c0]
lea edx, [esp + 0x460]
push esi
call fcn.004d5b10
add esp, 4
lea ecx, [esp + 0x3e8]
mov edx, ebx
push edi
call fcn.004d5b10
add esp, 4
lea esi, [esp + 0x550]
lea eax, [esp + 0x370]
push eax
push esi
call fcn.004cb370
add esp, 8
push esi
lea eax, [esp + 0x2d4]
push eax
push ebx
call fcn.004cb440
add esp, 0xc
lea ecx, [esp + 0x370]
mov edi, ecx
mov edx, ebx
lea eax, [esp + 0x488]
push eax
call fcn.004d5b10
add esp, 4
lea ecx, [esp + 0x398]
lea edx, [esp + 0x438]
mov esi, edx
lea eax, [esp + 0x460]
push eax
call fcn.004d5b10
add esp, 4
lea ecx, [esp + 0x3c0]
lea edx, [esp + 0x460]
lea eax, [esp + 0x488]
push eax
call fcn.004d5b10
add esp, 4
lea ecx, [esp + 0x3e8]
mov edx, ebx
push esi
call fcn.004d5b10
add esp, 4
lea esi, [esp + 0x5f0]
push edi
push esi
call fcn.004cb370
add esp, 8
push esi
lea eax, [esp + 0x2d4]
push eax
push ebx
call fcn.004cb440
add esp, 0xc
mov ecx, edi
mov edx, ebx
lea eax, [esp + 0x488]
push eax
call fcn.004d5b10
add esp, 4
lea ecx, [esp + 0x398]
lea edx, [esp + 0x438]
lea eax, [esp + 0x460]
push eax
call fcn.004d5b10
add esp, 4
lea ecx, [esp + 0x3c0]
lea edx, [esp + 0x460]
lea eax, [esp + 0x488]
push eax
call fcn.004d5b10
add esp, 4
lea ecx, [esp + 0x3e8]
mov edx, ebx
lea eax, [esp + 0x438]
push eax
call fcn.004d5b10
add esp, 4
lea esi, [esp + 0x690]
push edi
push esi
call fcn.004cb370
add esp, 8
push esi
lea eax, [esp + 0x2d4]
push eax
push ebx
call fcn.004cb440
add esp, 0xc
mov ecx, edi
mov edx, ebx
lea eax, [esp + 0x488]
push eax
call fcn.004d5b10
add esp, 4
lea ecx, [esp + 0x398]
lea edx, [esp + 0x438]
lea eax, [esp + 0x460]
push eax
call fcn.004d5b10
add esp, 4
lea ecx, [esp + 0x3c0]
lea edx, [esp + 0x460]
lea eax, [esp + 0x488]
push eax
call fcn.004d5b10
add esp, 4
lea ecx, [esp + 0x3e8]
mov edx, ebx
lea eax, [esp + 0x438]
push eax
call fcn.004d5b10
add esp, 4
lea esi, [esp + 0x730]
push edi
push esi
call fcn.004cb370
add esp, 8
push esi
lea eax, [esp + 0x2d4]
push eax
push ebx
call fcn.004cb440
add esp, 0xc
mov ecx, edi
mov edx, ebx
lea eax, [esp + 0x488]
push eax
call fcn.004d5b10
add esp, 4
lea ecx, [esp + 0x398]
lea edx, [esp + 0x438]
lea eax, [esp + 0x460]
push eax
call fcn.004d5b10
add esp, 4
lea ecx, [esp + 0x3c0]
lea edx, [esp + 0x460]
lea eax, [esp + 0x488]
push eax
call fcn.004d5b10
add esp, 4
lea ecx, [esp + 0x3e8]
mov edx, ebx
lea eax, [esp + 0x438]
push eax
call fcn.004d5b10
add esp, 4
lea esi, [esp + 0x7d0]
push edi
push esi
call fcn.004cb370
add esp, 8
push esi
lea eax, [esp + 0x2d4]
push eax
push ebx
call fcn.004cb440
add esp, 0xc
mov ecx, edi
mov edx, ebx
lea eax, [esp + 0x488]
push eax
call fcn.004d5b10
add esp, 4
lea ecx, [esp + 0x398]
lea edx, [esp + 0x438]
lea eax, [esp + 0x460]
push eax
call fcn.004d5b10
add esp, 4
lea ecx, [esp + 0x3c0]
lea edx, [esp + 0x460]
lea eax, [esp + 0x488]
push eax
call fcn.004d5b10
add esp, 4
lea ecx, [esp + 0x3e8]
mov edx, ebx
lea eax, [esp + 0x438]
push eax
call fcn.004d5b10
add esp, 4
lea esi, [esp + 0x870]
push edi
push esi
call fcn.004cb370
add esp, 8
push esi
lea esi, [esp + 0x464]
lea eax, [esp + 0x2d4]
push eax
push ebx
call fcn.004cb440
add esp, 0xc
mov ecx, edi
mov edx, ebx
lea eax, [esp + 0x488]
push eax
call fcn.004d5b10
add esp, 4
lea ecx, [esp + 0x398]
lea edx, [esp + 0x438]
push esi
call fcn.004d5b10
add esp, 4
lea ecx, [esp + 0x3c0]
mov edx, esi
lea eax, [esp + 0x488]
push eax
call fcn.004d5b10
add esp, 4
lea ecx, [esp + 0x3e8]
mov edx, ebx
lea eax, [esp + 0x438]
push eax
call fcn.004d5b10
add esp, 4
lea eax, [esp + 0x910]
push edi
push eax
call fcn.004cb370
add esp, 8
pxor xmm0, xmm0
movdqa xmmword [esp + 0x60], xmm0
movdqa xmmword [esp + 0x50], xmm0
mov dword [esp + 0x74], 0
mov dword [esp + 0x70], 0
movdqu xmmword [esp + 0x7c], xmm0
movdqu xmmword [esp + 0x8c], xmm0
mov dword [esp + 0x9c], 0
mov dword [esp + 0x78], 1
movdqu xmmword [esp + 0xa4], xmm0
movdqu xmmword [esp + 0xb4], xmm0
mov dword [esp + 0xc4], 0
mov dword [esp + 0xa0], 1
mov esi, 0xff
mov eax, 0xfe
cmp byte [esp + eax + 0xab1], 0
jne 0x4d39b5
cmp byte [esp + eax + 0x9b1], 0
jne 0x4d39b0
cmp byte [esp + eax + 0xab0], 0
jne 0x4d4243
cmp byte [esp + eax + 0x9b0], 0
jne 0x4d39b3
add esi, 0xfffffffe
add eax, 0xfffffffe
cmp eax, 0xfffffffe
jne 0x4d3900
jmp 0x4d424e
mov eax, dword [esp + 0x200]
or eax, dword [esp + 0x204]
jne 0x4d43b3
mov eax, 0x14def9de
mov esi, 0xa2f79cd6
mov ecx, dword [esp + 0x1f8]
mov edx, dword [esp + 0x1fc]
cmp esi, ecx
mov edi, 0x14def9de
sbb edi, edx
jb 0x4d43b3
xor ecx, esi
xor edx, eax
or edx, ecx
mov edx, dword [ebp + 0x10]
jne 0x4d2d8b
mov eax, dword [esp + 0x1f4]
cmp dword [esp + 0x1f0], 0x5cf5d3ed
sbb eax, 0x5812631a
jb 0x4d2d8b
jmp 0x4d43b3
add eax, 1
mov esi, eax
test esi, esi
js 0x4d424e
add esi, 1
lea edx, [esp + 0x50]
jmp 0x4d3ab6
lea ecx, [esp + 0x370]
lea edx, [esp + 0x410]
lea edi, [esp + 0x488]
push edi
call fcn.004d5b10
add esp, 4
lea ecx, [esp + 0x398]
lea edx, [esp + 0x438]
lea esi, [esp + 0x460]
push esi
call fcn.004d5b10
add esp, 4
lea ecx, [esp + 0x3c0]
mov edx, esi
push edi
call fcn.004d5b10
add esp, 4
lea ecx, [esp + 0x3e8]
lea esi, [esp + 0x410]
mov edx, esi
lea eax, [esp + 0x438]
push eax
call fcn.004d5b10
add esp, 4
shr ebx, 1
imul eax, ebx, 0x78
lea eax, [eax + 0x68c538]
mov ecx, esi
lea edx, [esp + 0x370]
push eax
call fcn.004cc6f0
add esp, 4
lea ebx, [esp + 0x50]
mov ecx, ebx
mov esi, edi
lea edx, [esp + 0x410]
push edi
call fcn.004d5b10
add esp, 4
lea ecx, [esp + 0x78]
lea edx, [esp + 0x438]
lea edi, [esp + 0x460]
push edi
call fcn.004d5b10
add esp, 4
lea ecx, [esp + 0xa0]
mov edx, edi
push esi
call fcn.004d5b10
mov edx, ebx
add esp, 4
mov esi, dword [esp + 0x14]
add esi, 0xffffffff
lea ebx, [esp + 0x410]
jle 0x4d424e
mov ecx, ebx
call fcn.004ccc00
mov eax, ebx
movzx ebx, byte [esp + esi + 0xaaf]
test bl, bl
mov dword [esp + 0x14], esi
jle 0x4d3b70
lea ecx, [esp + 0x370]
mov edx, eax
lea esi, [esp + 0x488]
push esi
call fcn.004d5b10
add esp, 4
lea ecx, [esp + 0x398]
lea edx, [esp + 0x438]
lea edi, [esp + 0x460]
push edi
call fcn.004d5b10
add esp, 4
lea ecx, [esp + 0x3c0]
mov edx, edi
push esi
mov esi, dword [esp + 0x18]
call fcn.004d5b10
add esp, 4
lea ecx, [esp + 0x3e8]
lea edi, [esp + 0x410]
mov edx, edi
lea eax, [esp + 0x438]
push eax
call fcn.004d5b10
add esp, 4
shr ebx, 1
lea eax, [ebx + ebx*4]
shl eax, 5
add eax, esp
add eax, 0x4b0
push eax
lea eax, [esp + 0x374]
push eax
push edi
call fcn.004cb440
add esp, 0xc
jmp 0x4d3b78
test bl, bl
js 0x4d41a9
movzx ebx, byte [esp + esi + 0x9af]
test bl, bl
jg 0x4d39d0
test bl, bl
lea edi, [esp + 0x488]
jns 0x4d3a5b
lea ecx, [esp + 0x370]
lea edx, [esp + 0x410]
push edi
call fcn.004d5b10
add esp, 4
lea ecx, [esp + 0x398]
lea edi, [esp + 0x438]
mov edx, edi
lea esi, [esp + 0x460]
push esi
call fcn.004d5b10
add esp, 4
lea ecx, [esp + 0x3c0]
mov edx, esi
lea eax, [esp + 0x488]
push eax
call fcn.004d5b10
add esp, 4
lea ecx, [esp + 0x3e8]
lea edx, [esp + 0x410]
push edi
call fcn.004d5b10
add esp, 4
movdqu xmm0, xmmword [esp + 0x398]
movdqa xmm1, xmmword [esp + 0x370]
movdqa xmm2, xmmword [esp + 0x380]
movdqa xmm3, xmm1
paddd xmm3, xmm0
movdqu xmm4, xmmword [esp + 0x3a8]
movdqa xmmword [esp + 0x410], xmm3
movdqa xmm3, xmm2
paddd xmm3, xmm4
movdqa xmmword [esp + 0x420], xmm3
mov eax, dword [esp + 0x3b8]
mov esi, dword [esp + 0x390]
lea edx, [esi + eax]
mov edi, dword [esp + 0x3bc]
mov dword [esp + 0x430], edx
mov edx, dword [esp + 0x394]
lea ecx, [edx + edi]
mov dword [esp + 0x434], ecx
psubd xmm0, xmm1
psubd xmm4, xmm2
movdqa xmm1, xmmword [0x68c080]
paddd xmm0, xmm1
movdqu xmmword [esp + 0x438], xmm0
movdqa xmm0, xmmword [0x68c090]
paddd xmm4, xmm0
movdqu xmmword [esp + 0x448], xmm4
sub eax, esi
sub edi, edx
neg bl
shr bl, 1
movzx ecx, bl
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0xbc0], xmm0
movdqa xmmword [esp + 0xbb0], xmm0
mov dword [esp + 0xbd4], 0xffffffff
mov dword [esp + 0xbd0], 0xffffffff
movdqa xmmword [esp + 0xc70], xmm0
movdqa xmmword [esp + 0xc60], xmm0
mov dword [esp + 0xc84], 0xffffffff
mov dword [esp + 0xc80], 0xffffffff
movdqa xmmword [esp + 0xc40], xmm0
movdqa xmmword [esp + 0xc30], xmm0
mov dword [esp + 0xc54], 0xffffffff
mov dword [esp + 0xc50], 0xffffffff
add eax, 0x7fffffe
add edi, 0x3fffffe
mov dword [esp + 0x458], eax
mov dword [esp + 0x45c], edi
imul edi, ecx, 0x78
lea ebx, [edi + 0x68c538]
lea eax, [edi + 0x68c560]
lea ecx, [esp + 0xc60]
lea edx, [esp + 0x410]
push eax
call fcn.004d5b10
add esp, 4
lea ecx, [esp + 0xbb0]
lea edx, [esp + 0x438]
push ebx
call fcn.004d5b10
add esp, 4
lea edx, [edi + 0x68c588]
lea ecx, [esp + 0xc30]
lea eax, [esp + 0x3e8]
push eax
call fcn.004d5b10
add esp, 4
movdqa xmm2, xmmword [esp + 0x3c0]
movdqa xmm1, xmmword [esp + 0x3d0]
movdqa xmm0, xmm2
paddd xmm0, xmm2
paddd xmm1, xmm1
mov eax, dword [esp + 0x3e0]
mov dword [esp + 4], eax
add eax, eax
mov ecx, dword [esp + 0x3e4]
mov dword [esp + 0x1c], ecx
lea edx, [ecx + ecx]
movdqu xmmword [esp + 0x488], xmm0
movdqu xmmword [esp + 0x498], xmm1
mov dword [esp + 0x4a8], eax
mov dword [esp + 0x4ac], edx
movdqa xmm3, xmmword [esp + 0xc60]
movdqa xmm4, xmmword [esp + 0xc70]
movdqa xmm6, xmmword [esp + 0xbb0]
movdqa xmm5, xmmword [esp + 0xbc0]
movdqa xmm7, xmm3
psubd xmm7, xmm6
paddd xmm7, xmmword [0x68c080]
movdqa xmmword [esp + 0x410], xmm7
movdqa xmm7, xmm4
psubd xmm7, xmm5
paddd xmm7, xmmword [0x68c090]
movdqa xmmword [esp + 0x420], xmm7
mov ecx, dword [esp + 0xc80]
mov edx, dword [esp + 0xbd0]
mov edi, ecx
sub edi, edx
add edi, 0x7fffffe
mov dword [esp + 0x430], edi
mov eax, dword [esp + 0xc84]
mov ebx, dword [esp + 0xbd4]
mov edi, eax
sub edi, ebx
add edi, 0x3fffffe
mov dword [esp + 0x434], edi
add edx, ecx
add ebx, eax
movd ecx, xmm2
paddd xmm3, xmm6
paddd xmm5, xmm4
movdqu xmmword [esp + 0x438], xmm3
movdqu xmmword [esp + 0x448], xmm5
mov dword [esp + 0x458], edx
mov dword [esp + 0x45c], ebx
shr ecx, 0x19
and ecx, 0x3f
pshufd xmm2, xmm0, 0x55
movd eax, xmm2
add eax, ecx
mov ecx, eax
shr ecx, 0x19
pshufd xmm2, xmm0, 0xee
movd edx, xmm2
add edx, ecx
mov ecx, edx
shr ecx, 0x1a
pshufd xmm2, xmm0, 0xff
movd edi, xmm2
add edi, ecx
mov ecx, edi
shr ecx, 0x19
movd esi, xmm1
add esi, ecx
mov dword [esp + 0x10], esi
mov ecx, esi
shr ecx, 0x1a
pshufd xmm2, xmm1, 0x55
movd esi, xmm2
add esi, ecx
mov dword [esp + 0xc], esi
mov ecx, esi
shr ecx, 0x19
pshufd xmm2, xmm1, 0xee
movd esi, xmm2
add esi, ecx
mov dword [esp + 8], esi
mov ecx, esi
shr ecx, 0x1a
pshufd xmm1, xmm1, 0xff
movd esi, xmm1
add esi, ecx
mov dword [esp + 0x18], esi
mov ecx, esi
shr ecx, 0x19
mov esi, dword [esp + 4]
lea ecx, [ecx + esi*2]
mov dword [esp + 4], ecx
shr ecx, 0x1a
mov esi, dword [esp + 0x1c]
lea ecx, [ecx + esi*2]
mov dword [esp + 0x1c], ecx
shr ecx, 0x19
lea ebx, [ecx + ecx*8]
lea ecx, [ecx + ebx*2]
movd ebx, xmm0
and ebx, 0x3fffffe
add ecx, ebx
mov ebx, ecx
shr ebx, 0x1a
and eax, 0x1ffffff
add eax, ebx
mov esi, eax
shr eax, 0x19
and edx, 0x3ffffff
add edx, eax
mov dword [esp + 0x20], edx
mov eax, ecx
and eax, 0x3ffffff
mov dword [esp + 0x4c], eax
mov ecx, dword [esp + 0xc30]
mov dword [esp + 0x48], ecx
sub eax, ecx
add eax, 0x7ffffda
mov dword [esp + 0x460], eax
and esi, 0x1ffffff
mov eax, dword [esp + 0xc34]
mov dword [esp + 0x44], eax
mov ebx, esi
sub ebx, eax
add ebx, 0x3fffffe
mov dword [esp + 0x464], ebx
mov eax, dword [esp + 0xc38]
mov dword [esp + 0x40], eax
mov edx, dword [esp + 0x20]
sub edx, eax
add edx, 0x7fffffe
mov dword [esp + 0x468], edx
mov eax, edi
and eax, 0x1ffffff
mov dword [esp + 0x3c], eax
mov ecx, dword [esp + 0xc3c]
mov dword [esp + 0x38], ecx
sub eax, ecx
add eax, 0x3fffffe
mov dword [esp + 0x46c], eax
mov ebx, dword [esp + 0x10]
and ebx, 0x3ffffff
mov dword [esp + 0x10], ebx
mov eax, dword [esp + 0xc40]
mov dword [esp + 0x34], eax
sub ebx, eax
add ebx, 0x7fffffe
mov dword [esp + 0x470], ebx
mov edx, dword [esp + 0xc]
and edx, 0x1ffffff
mov dword [esp + 0xc], edx
mov eax, dword [esp + 0xc44]
mov dword [esp + 0x30], eax
sub edx, eax
add edx, 0x3fffffe
mov dword [esp + 0x474], edx
mov edi, dword [esp + 8]
and edi, 0x3ffffff
mov dword [esp + 8], edi
mov eax, dword [esp + 0xc48]
mov dword [esp + 0x2c], eax
sub edi, eax
add edi, 0x7fffffe
mov dword [esp + 0x478], edi
mov eax, dword [esp + 0x18]
and eax, 0x1ffffff
mov dword [esp + 0x18], eax
mov edi, dword [esp + 0xc4c]
sub eax, edi
add eax, 0x3fffffe
mov dword [esp + 0x47c], eax
mov ebx, dword [esp + 4]
and ebx, 0x3ffffff
mov dword [esp + 4], ebx
mov eax, dword [esp + 0xc50]
mov dword [esp + 0x28], eax
sub ebx, eax
add ebx, 0x7fffffe
mov dword [esp + 0x480], ebx
mov ecx, dword [esp + 0x1c]
and ecx, 0x1ffffff
mov dword [esp + 0x1c], ecx
mov eax, dword [esp + 0xc54]
mov dword [esp + 0x24], eax
sub ecx, eax
add ecx, 0x3fffffe
mov dword [esp + 0x484], ecx
mov ebx, dword [esp + 0x4c]
add ebx, dword [esp + 0x48]
add esi, dword [esp + 0x44]
mov edx, dword [esp + 0x20]
add edx, dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
add eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x30]
add dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x2c]
add dword [esp + 8], ecx
add dword [esp + 0x18], edi
lea edi, [esp + 0x488]
mov ecx, dword [esp + 0x28]
add dword [esp + 4], ecx
mov ecx, dword [esp + 0x1c]
add ecx, dword [esp + 0x24]
mov dword [esp + 0x488], ebx
mov dword [esp + 0x48c], esi
mov dword [esp + 0x490], edx
mov dword [esp + 0x494], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x498], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x49c], eax
mov eax, dword [esp + 8]
mov dword [esp + 0x4a0], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x4a4], eax
mov eax, dword [esp + 4]
mov dword [esp + 0x4a8], eax
mov dword [esp + 0x4ac], ecx
jmp 0x4d3a5b
lea ecx, [esp + 0x370]
lea edx, [esp + 0x410]
lea esi, [esp + 0x488]
push esi
call fcn.004d5b10
add esp, 4
lea ecx, [esp + 0x398]
lea edx, [esp + 0x438]
lea edi, [esp + 0x460]
push edi
call fcn.004d5b10
add esp, 4
lea ecx, [esp + 0x3c0]
mov edx, edi
push esi
mov esi, dword [esp + 0x18]
call fcn.004d5b10
add esp, 4
lea ecx, [esp + 0x3e8]
lea edi, [esp + 0x410]
mov edx, edi
lea eax, [esp + 0x438]
push eax
call fcn.004d5b10
add esp, 4
neg bl
shr bl, 1
movzx eax, bl
lea eax, [eax + eax*4]
shl eax, 5
add eax, esp
add eax, 0x4b0
push eax
lea eax, [esp + 0x374]
push eax
push edi
call fcn.004cb9b0
jmp 0x4d3b5e
add esi, 0xffffffff
test esi, esi
jns 0x4d39bd
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0x380], xmm0
movdqa xmmword [esp + 0x370], xmm0
movdqa xmmword [esp + 0xac0], xmm0
movdqa xmmword [esp + 0xab0], xmm0
mov dword [esp + 0xad4], 0xffffffff
mov dword [esp + 0xad0], 0xffffffff
movdqa xmmword [esp + 0x9c0], xmm0
movdqa xmmword [esp + 0x9b0], xmm0
mov dword [esp + 0x9d4], 0xffffffff
mov dword [esp + 0x9d0], 0xffffffff
movdqa xmmword [esp + 0x420], xmm0
movdqa xmmword [esp + 0x410], xmm0
mov dword [esp + 0x434], 0xffffffff
mov dword [esp + 0x430], 0xffffffff
movsd xmm0, qword [esp + 0xc0]
movsd qword [esp + 0x4d0], xmm0
movdqa xmm0, xmmword [esp + 0xa0]
movaps xmm1, xmmword [esp + 0xb0]
movaps xmmword [esp + 0x4c0], xmm1
movdqa xmmword [esp + 0x4b0], xmm0
lea esi, [esp + 0xab0]
lea edx, [esp + 0x4b0]
mov ecx, esi
call fcn.004d5740
lea edi, [esp + 0x370]
lea ecx, [esp + 0x9b0]
lea edx, [esp + 0x50]
push esi
call fcn.004d5b10
add esp, 4
lea ebx, [esp + 0x410]
mov ecx, ebx
lea edx, [esp + 0x78]
push esi
call fcn.004d5b10
add esp, 4
mov ecx, edi
mov edx, ebx
call fcn.004ca2a0
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0x4c0], xmm0
movdqa xmmword [esp + 0x4b0], xmm0
lea ecx, [esp + 0x4b0]
lea edx, [esp + 0x9b0]
call fcn.004ca2a0
mov al, byte [esp + 0x4b0]
shl al, 7
xor byte [esp + 0x38f], al
lea eax, [esp + 0x210]
push 0x20
push eax
push edi
call fcn.00516910
add esp, 0xc
xor ebx, ebx
test eax, eax
sete bl
mov ecx, dword [esp + 0xc88]
xor ecx, ebp
call fcn.0064180a
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret