Function at 0x4dc3b0
Capabilities:
Check for time delay via gettickcount
Resolve function by parsing pe exports

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x54b50d
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x168
mov eax, dword [0x57a040]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebx + 0xc]
mov esi, dword [ebx + 8]
mov dword [ebp - 0x174], eax
mov dword [ebp - 0x170], esi
test eax, eax
js 0x4dce9d
cmp eax, 0x1194
jge 0x4dce9d
mov edi, dword [eax*4 + 0x20a514c]
mov dword [ebp - 0x1c], edi
mov eax, dword [edi + 4]
test eax, eax
je 0x4dce9d
cmp eax, 1
je 0x4dce9d
mov al, byte [esi + 0x1d]
test al, al
je 0x4dc483
cmp al, 1
je 0x4dc483
cmp al, 2
je 0x4dc483
cmp al, 0x10
je 0x4dc483
cmp al, 0x11
je 0x4dc483
cmp al, 0x12
je 0x4dc483
cmp al, 0x20
je 0x4dc483
cmp al, 0x21
je 0x4dc483
cmp al, 0x22
je 0x4dc483
cmp al, 0x30
je 0x4dc483
cmp al, 0x32
je 0x4dc483
cmp al, 0x40
je 0x4dc483
cmp al, 0x42
je 0x4dc483
cmp al, 0x50
je 0x4dc483
cmp al, 0x51
je 0x4dc483
cmp al, 0x52
je 0x4dc483
cmp al, 0x60
je 0x4dc483
cmp al, 0x62
jne 0x4dce9d
mov ecx, dword [edi]
call fcn.0051d990
xor esi, esi
xor edx, edx
nop
mov ecx, dword [edi + 0x3d0]
add ecx, edx
call fcn.00493c10
mov eax, dword [edi + 0x3d4]
lea esi, [esi + 1]
add edx, 0x10c
mov byte [esi + eax - 1], 0xff
cmp edx, 0x2180
jl 0x4dc490
mov esi, dword [ebp - 0x170]
lea edx, [edi + 0x144]
or eax, 0xffffffff
mov dword [ebp - 0x15c], edx
mov word [edi + 0x224], ax
movzx eax, word [esi + 0x1e]
mov word [edi + 0xd0], ax
mov eax, dword [esi + 0x20]
mov dword [edi + 0xd4], eax
mov al, byte [esi + 0x1d]
mov byte [edi + 0xce], al
mov al, byte [esi + 0x1d]
shr al, 4
movzx eax, al
mov word [edi + 0xcc], ax
mov al, byte [esi + 0x1d]
and al, 0xf
mov byte [edi + 0xcf], al
movzx eax, byte [esi + 0x11bc]
mov dword [edi + 0x634], eax
movzx eax, byte [esi + 0x11bd]
mov dword [edi + 0x63c], eax
mov eax, dword [esi + 0x11c0]
mov dword [edi + 0x73c], eax
mov eax, dword [esi + 0x11c4]
mov dword [edi + 0x740], eax
movzx eax, word [esi + 0x11d0]
mov word [edi + 0x9fe], ax
movq xmm0, qword [esi + 0x11d2]
movq qword [edi + 0xa00], xmm0
movzx eax, word [esi + 0x11da]
mov word [edi + 0xa08], ax
mov al, byte [esi + 0x11dc]
mov byte [edi + 0xa0a], al
movq xmm0, qword [esi + 0x11]
movq qword [edi + 0x86], xmm0
movzx eax, word [esi + 0x19]
mov word [edi + 0x8e], ax
mov al, byte [esi + 0x1b]
mov byte [edi + 0x90], al
movzx eax, word [esi + 0x11de]
mov word [edi + 0x116a], ax
movzx eax, word [esi + 0x11e0]
mov word [edi + 0x116c], ax
movzx eax, word [esi + 0x11e2]
mov word [edi + 0x116e], ax
movzx eax, word [esi + 0x11e4]
mov word [edi + 0x1170], ax
movzx eax, word [esi + 0x11e6]
mov word [edi + 0x1172], ax
movzx eax, word [esi + 0x11e8]
mov word [edi + 0x1174], ax
mov cl, byte [esi + 0xfd4]
mov byte [edi + 0x149], cl
movzx eax, byte [esi + 0xfd5]
mov word [edx], ax
movzx eax, byte [esi + 0xfd6]
mov word [edi + 0x146], ax
mov al, byte [esi + 0xfd5]
mov byte [edi + 0x160], al
mov al, byte [esi + 0xfd6]
mov byte [edi + 0x161], al
cmp cl, 0x6e
jb 0x4dc648
lea eax, [edi + 0x146]
mov byte [edi + 0x149], 0
push eax
push edx
push 0
mov ecx, 0xd2f370
call fcn.004b3300
movzx ecx, byte [edi + 0x149]
lea eax, [ebp - 0x154]
push eax
lea eax, [ebp - 0x2c]
mov dword [ebp - 0x154], ecx
push eax
mov ecx, 0x9f436c
call fcn.00405650
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x154]
cmp byte [edx + 0xd], 0
jne 0x4dc713
cmp eax, dword [edx + 0x10]
jl 0x4dc713
cmp edx, dword [0x9f436c]
je 0x4dc713
cmp dword [edx + 0x64], 0xffffffff
je 0x4dc713
mov dword [ebp - 0x15c], eax
mov ecx, 0x9f436c
lea eax, [ebp - 0x15c]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.00405650
mov eax, dword [ebp - 0x24]
cmp byte [eax + 0xd], 0
jne 0x4dc6cf
mov ecx, dword [ebp - 0x154]
cmp ecx, dword [eax + 0x10]
jl 0x4dc6cf
mov ecx, dword [0x9f436c]
jmp 0x4dc6d7
mov ecx, dword [0x9f436c]
mov eax, ecx
cmp eax, ecx
je 0x4dc6e0
mov eax, dword [eax + 0x64]
jmp 0x4dc6e3
or eax, 0xffffffff
lea ecx, [ebp - 0x15c]
push ecx
lea ecx, [ebp - 0x160]
push ecx
lea ecx, [ebp - 0x164]
push ecx
lea ecx, [ebp - 0x16c]
push ecx
lea ecx, [ebp - 0x168]
push ecx
lea ecx, [ebp - 0x154]
push ecx
push eax
jmp 0x4dca37
cmp word [edi + 0xd0], 6
jge 0x4dc7cd
movsx edx, word [edi + 0x146]
imul ecx, eax, 0x15d38
mov eax, dword [ebp - 0x15c]
movsx eax, word [eax]
test eax, eax
js 0x4dc767
cmp eax, dword [ecx + 0xd2f384]
jge 0x4dc767
test edx, edx
js 0x4dc767
mov eax, dword [ecx + 0xd2f388]
cmp edx, eax
jge 0x4dc767
imul eax, edx
add eax, dword [ecx + 0xd2f380]
movsx ecx, word [edi + 0x144]
test byte [eax + ecx], 1
jne 0x4dc7cd
movzx eax, word [edi + 0xcc]
test ax, ax
je 0x4dc7d7
cmp eax, 1
je 0x4dc7d7
cmp eax, 3
je 0x4dc7d7
cmp eax, 4
je 0x4dc7d7
cmp eax, 6
je 0x4dc7d7
cmp eax, 2
je 0x4dca0b
cmp eax, 5
jne 0x4dca74
lea eax, [ebp - 0x15c]
push eax
lea eax, [ebp - 0x160]
push eax
lea eax, [ebp - 0x164]
push eax
lea eax, [ebp - 0x16c]
push eax
lea eax, [ebp - 0x168]
push eax
lea eax, [ebp - 0x154]
push eax
push 0x10b
jmp 0x4dca37
mov al, byte [edi + 0x149]
cmp al, 0x28
jne 0x4dc808
lea eax, [ebp - 0x15c]
push eax
lea eax, [ebp - 0x160]
push eax
lea eax, [ebp - 0x164]
push eax
lea eax, [ebp - 0x16c]
push eax
lea eax, [ebp - 0x168]
push eax
lea eax, [ebp - 0x154]
push eax
push 0x11
jmp 0x4dca37
cmp al, 9
je 0x4dca0b
cmp al, 0x20
je 0x4dca0b
cmp al, 0xb
jb 0x4dca74
cmp al, 0x11
jbe 0x4dc95f
cmp al, 0x34
je 0x4dc95f
cmp al, 0x17
jbe 0x4dc7d7
cmp al, 0x35
je 0x4dc7d7
cmp al, 0x1e
jne 0x4dc87a
cmp dword [0x5d9184], 7
jne 0x4dca74
lea eax, [ebp - 0x15c]
push eax
lea eax, [ebp - 0x160]
push eax
lea eax, [ebp - 0x164]
push eax
lea eax, [ebp - 0x16c]
push eax
lea eax, [ebp - 0x168]
push eax
lea eax, [ebp - 0x154]
push eax
push 0x64
jmp 0x4dca37
cmp al, 0x2d
jae 0x4dc8b6
cmp al, 0x27
jne 0x4dc8ee
lea eax, [ebp - 0x15c]
push eax
lea eax, [ebp - 0x160]
push eax
lea eax, [ebp - 0x164]
push eax
lea eax, [ebp - 0x16c]
push eax
lea eax, [ebp - 0x168]
push eax
lea eax, [ebp - 0x154]
push eax
push 0x8b
jmp 0x4dca37
cmp al, 0x32
ja 0x4dc8ee
lea eax, [ebp - 0x15c]
push eax
lea eax, [ebp - 0x160]
push eax
lea eax, [ebp - 0x164]
push eax
lea eax, [ebp - 0x16c]
push eax
lea eax, [ebp - 0x168]
push eax
lea eax, [ebp - 0x154]
push eax
push 0x10b
jmp 0x4dca37
cmp al, 0x3a
jne 0x4dc926
lea eax, [ebp - 0x15c]
push eax
lea eax, [ebp - 0x160]
push eax
lea eax, [ebp - 0x164]
push eax
lea eax, [ebp - 0x16c]
push eax
lea eax, [ebp - 0x168]
push eax
lea eax, [ebp - 0x154]
push eax
push 0x11e
jmp 0x4dca37
cmp al, 0x40
jne 0x4dc95b
lea eax, [ebp - 0x15c]
push eax
lea eax, [ebp - 0x160]
push eax
lea eax, [ebp - 0x164]
push eax
lea eax, [ebp - 0x16c]
push eax
lea eax, [ebp - 0x168]
push eax
lea eax, [ebp - 0x154]
push eax
push 0x11
jmp 0x4dca37
cmp al, 0x3e
jne 0x4dc990
lea eax, [ebp - 0x15c]
push eax
lea eax, [ebp - 0x160]
push eax
lea eax, [ebp - 0x164]
push eax
lea eax, [ebp - 0x16c]
push eax
lea eax, [ebp - 0x168]
push eax
lea eax, [ebp - 0x154]
push eax
push 0x16
jmp 0x4dca37
cmp al, 0x41
jb 0x4dca74
cmp al, 0x44
ja 0x4dc9cd
lea eax, [ebp - 0x15c]
push eax
lea eax, [ebp - 0x160]
push eax
lea eax, [ebp - 0x164]
push eax
lea eax, [ebp - 0x16c]
push eax
lea eax, [ebp - 0x168]
push eax
lea eax, [ebp - 0x154]
push eax
push 0x10b
jmp 0x4dca37
cmp al, 0x45
jb 0x4dca74
cmp al, 0x48
ja 0x4dca74
lea eax, [ebp - 0x15c]
push eax
lea eax, [ebp - 0x160]
push eax
lea eax, [ebp - 0x164]
push eax
lea eax, [ebp - 0x16c]
push eax
lea eax, [ebp - 0x168]
push eax
lea eax, [ebp - 0x154]
push eax
push 0x16
jmp 0x4dca37
lea eax, [ebp - 0x15c]
push eax
lea eax, [ebp - 0x160]
push eax
lea eax, [ebp - 0x164]
push eax
lea eax, [ebp - 0x16c]
push eax
lea eax, [ebp - 0x168]
push eax
lea eax, [ebp - 0x154]
push eax
push 0x1b
call fcn.00484ba0
test al, al
je 0x4dca74
mov al, byte [ebp - 0x168]
mov byte [edi + 0x149], al
movzx eax, word [ebp - 0x16c]
mov word [edi + 0x144], ax
movzx eax, word [ebp - 0x164]
mov word [edi + 0x146], ax
mov al, byte [ebp - 0x160]
mov byte [edi + 0x148], al
cmp byte [edi + 0x9c1], 0
je 0x4dcadd
movzx eax, word [edi + 0x9ca]
push eax
movsx eax, word [edi + 0x9cc]
push eax
push dword [ebp - 0x174]
call fcn.004b5840
cwde
cmp eax, dword [0xbda7bc]
jne 0x4dce92
mov al, byte [edi + 0x9cc]
mov dl, byte [edi + 0x9ce]
mov cl, byte [edi + 0x9cf]
mov byte [edi + 0x149], al
movzx eax, dl
mov word [edi + 0x144], ax
movzx eax, cl
mov word [edi + 0x146], ax
mov byte [edi + 0x160], dl
mov byte [edi + 0x161], cl
mov al, byte [edi + 0x149]
movsx edx, word [edi + 0x146]
mov byte [ebp - 0x155], al
movzx eax, al
imul ecx, eax, 0x15d38
movsx eax, word [edi + 0x144]
test eax, eax
js 0x4dcb52
cmp eax, dword [ecx + 0xd2f384]
jge 0x4dcb52
test edx, edx
js 0x4dcb52
mov eax, dword [ecx + 0xd2f388]
cmp edx, eax
jge 0x4dcb52
movsx esi, word [edi + 0x144]
imul eax, edx
add eax, dword [ecx + 0xd2f380]
test byte [eax + esi], 4
mov esi, dword [ebp - 0x170]
jne 0x4dcb52
mov eax, dword [ecx + 0xd2f388]
imul eax, edx
add eax, dword [ecx + 0xd2f380]
movsx ecx, word [edi + 0x144]
test byte [eax + ecx], 8
je 0x4dcb80
movzx eax, byte [ebp - 0x155]
imul ecx, eax, 0x15d38
lea eax, [edi + 0x146]
push eax
lea eax, [edi + 0x144]
push eax
movzx eax, byte [ebp - 0x155]
add ecx, 0xd2f370
push eax
call fcn.004b3300
movzx eax, byte [edi + 0x149]
movsx ecx, word [edi + 0x144]
imul edx, eax, 0x15d38
movsx eax, word [edi + 0x146]
mov dword [ebp - 0x154], eax
test ecx, ecx
js 0x4dcbd0
cmp ecx, dword [edx + 0xd2f384]
jge 0x4dcbd0
test eax, eax
js 0x4dcbd0
mov eax, dword [edx + 0xd2f388]
cmp dword [ebp - 0x154], eax
jge 0x4dcbd0
imul eax, dword [ebp - 0x154]
add eax, dword [edx + 0xd2f380]
or byte [eax + ecx], 2
movzx ecx, word [edi + 0x144]
movzx eax, word [edi + 0x146]
mov word [edi + 0x168], ax
mov word [edi + 0x164], ax
mov word [edi + 0x166], cx
mov word [edi + 0x162], cx
mov eax, dword [esi + 0x24]
mov dword [edi + 0xdc], eax
mov eax, dword [esi + 0x2c]
mov dword [edi + 0xe8], eax
mov eax, dword [esi + 0x30]
mov dword [edi + 0xec], eax
mov eax, dword [esi + 0x34]
mov dword [edi + 0xf0], eax
mov eax, dword [esi + 0x38]
mov dword [edi + 0xf4], eax
mov eax, dword [esi + 0x3c]
mov dword [edi + 0xf8], eax
mov eax, dword [esi + 0x40]
movd xmm0, eax
shr eax, 0x1f
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [eax*8 + 0x56a8c0]
cvtpd2ps xmm0, xmm0
movss dword [edi + 0xfc], xmm0
mov eax, dword [esi + 0x44]
movd xmm0, eax
shr eax, 0x1f
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [eax*8 + 0x56a8c0]
cvtpd2ps xmm0, xmm0
movss dword [edi + 0x100], xmm0
mov eax, dword [esi + 0x48]
movd xmm0, eax
shr eax, 0x1f
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [eax*8 + 0x56a8c0]
cvtpd2ps xmm0, xmm0
movss dword [edi + 0x108], xmm0
mov eax, dword [esi + 0x4c]
movd xmm0, eax
shr eax, 0x1f
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [eax*8 + 0x56a8c0]
cvtpd2ps xmm0, xmm0
movss dword [edi + 0x10c], xmm0
mov eax, dword [esi + 0x50]
mov dword [edi + 0x128], eax
mov eax, dword [esi + 0x54]
mov dword [edi + 0x12c], eax
mov eax, dword [esi + 0x58]
mov dword [edi + 0x154], eax
mov eax, dword [esi + 0x5c]
mov dword [edi + 0x158], eax
mov eax, dword [esi + 0x28]
mov dword [edi + 0xe4], eax
movzx eax, word [esi + 0x1018]
mov word [edi + 0xd8], ax
movzx eax, word [esi + 0x101a]
mov word [edi + 0xda], ax
movzx eax, word [edi + 0xcc]
lea ecx, [eax + eax*2]
shl ecx, 4
mov eax, dword [ecx + 0x64010c]
mov dword [edi + 0x134], eax
mov eax, dword [ecx + 0x640110]
mov dword [edi + 0x138], eax
mov al, byte [esi + 0xfd8]
mov byte [edi + 0x13c], al
mov cl, byte [esi + 0xfdc]
mov byte [edi + 0x13d], cl
mov eax, dword [esi + 0xfe0]
mov dword [edi + 0x140], eax
mov eax, 0x190
mov dword [edi + 0x220], 0xfa0
mov word [edi + 0x30c], ax
mov eax, dword [esi + 0x11c8]
mov dword [edi + 0x9f4], eax
mov eax, dword [esi + 0x11cc]
mov dword [edi + 0x9f8], eax
movups xmm0, xmmword [esi + 0x11ea]
movups xmmword [edi + 0x1138], xmm0
movups xmm0, xmmword [esi + 0x11fa]
movups xmmword [edi + 0x1148], xmm0
movups xmm0, xmmword [esi + 0x120a]
movups xmmword [edi + 0x1158], xmm0
movzx eax, word [esi + 0x121a]
mov word [edi + 0x1168], ax
cmp cl, 3
jne 0x4dcdca
mov byte [edi + 0x13c], 0
mov dword [edi + 0x140], 0
movups xmm0, xmmword [esi + 0xfe5]
xor ecx, ecx
mov edx, 0xffff
mov dword [ebp - 0x154], ecx
movups xmmword [edi + 0x5a8], xmm0
mov dword [ebp - 0x164], edx
movups xmm0, xmmword [esi + 0xff5]
movups xmmword [edi + 0x5b8], xmm0
movups xmm0, xmmword [esi + 0x1005]
movups xmmword [edi + 0x5c8], xmm0
mov ax, word [esi + 0x1015]
add esi, 0xf22
mov word [edi + 0x5d8], ax
mov eax, dword [edi + 0x394]
mov dword [edi + 0x390], eax
mov eax, dword [edi + 0x3a0]
mov dword [edi + 0x39c], eax
mov eax, dword [edi + 0x11c0]
mov dword [edi + 0x11bc], eax
mov eax, dword [edi + 0x11cc]
mov dword [edi + 0x11c8], eax
mov dword [edi + 0x28c], 0
mov dword [edi + 0x290], 0
nop
mov eax, dword [edi + 0x324]
add eax, ecx
mov byte [eax + 4], 0
mov dword [eax + 6], 0xffffffff
mov dword [eax + 0xc], 0
mov dword [eax + 0x10], 0
mov dl, byte [esi - 2]
cmp dl, 0xff
jne 0x4dcebf
cmp byte [esi], 0
jne 0x4dcebf
or al, dl
jmp 0x4dcec1
mov ecx, dword [ebp - 0x174]
call fcn.0051f250
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00529f01
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 8
mov al, byte [esi]
movzx ecx, al
shl cx, 8
movzx eax, dl
mov edx, 0xffff
or cx, ax
movzx ecx, cx
cmp cx, dx
je 0x4dcee7
movzx eax, byte [esi - 1]
push eax
push ecx
push edi
call fcn.00508830
mov ecx, dword [ebp - 0x154]
add esi, 3
add ecx, 0x14
mov dword [ebp - 0x154], ecx
cmp ecx, 0x4b0
jl 0x4dce60
movzx eax, word [edi + 0xcc]
test ax, ax
jne 0x4dcf21
push 0
push 0x11
push edi
call fcn.00508830
push 0
push 0x2d
jmp 0x4dcf8e
cmp eax, 1
jne 0x4dcf2c
push 0
push 0x2c
jmp 0x4dcf8e
cmp eax, 2
jne 0x4dcf4d
push 0
push 0x2e
push edi
call fcn.00508830
mov al, byte [edi + 0x5a8]
and al, 0x30
cmp al, 0x20
jne 0x4dcf94
push 0
push 0x4d
jmp 0x4dcf8e
cmp eax, 3
jne 0x4dcf62
push 0
push 0x39
push edi
call fcn.00508830
push 0
push 0x49
jmp 0x4dcf8e
cmp eax, 4
jne 0x4dcf77
push 0
push 0x3c
push edi
call fcn.00508830
push 0
push 0x4a
jmp 0x4dcf8e
cmp eax, 5
jne 0x4dcf82
push 0
push 0x2d
jmp 0x4dcf8e
cmp eax, 6
jne 0x4dcf94
push 0
push 0x10d
push edi
call fcn.00508830
push 0
push 0x43
push edi
call fcn.00508830
push 0
push 0x44
push edi
call fcn.00508830
push 0
push 0x45
push edi
call fcn.00508830
push 0
push 0x46
push edi
call fcn.00508830
push 0
push 0x47
push edi
call fcn.00508830
push 0
push 0x48
push edi
call fcn.00508830
cmp dword [edi + 0xdb0], 0
je 0x4dd022
xor edx, edx
mov dword [ebp - 0x154], edx
lea ecx, [ebp - 0x150]
call fcn.00493c10
push edx
sub esp, 0x10c
lea esi, [ebp - 0x150]
mov edi, esp
mov ecx, 0x43
rep movsd dword es:[edi], dword [esi]
push dword [ebp - 0x174]
call fcn.0049dce0
mov edx, dword [ebp - 0x154]
inc edx
mov dword [ebp - 0x154], edx
cmp edx, 0xc
jl 0x4dcfe1
mov edi, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x170]
xor edx, edx
mov dword [ebp - 0x154], 0
mov dword [ebp - 0x15c], 0
mov dword [ebp - 0x160], edx
lea ecx, [ebp - 0x150]
call fcn.00493c10
mov ecx, dword [edi + 0x390]
add ecx, edx
call fcn.00493c10
mov eax, dword [ebp - 0x15c]
add eax, 0x60
add eax, esi
push eax
lea eax, [ebp - 0x150]
push eax
call fcn.0049f090
test al, al
je 0x4dd0a7
push dword [ebp - 0x154]
mov ecx, 0x43
lea esi, [ebp - 0x150]
sub esp, 0x10c
mov edi, esp
rep movsd dword es:[edi], dword [esi]
push dword [ebp - 0x174]
call fcn.0049dce0
mov edi, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x170]
mov edx, dword [ebp - 0x160]
inc dword [ebp - 0x154]
add edx, 0x10c
add dword [ebp - 0x15c], 0x10
mov dword [ebp - 0x160], edx
cmp edx, 0xf710
jl 0x4dd044
push dword [ebp - 0x174]
mov ecx, 0x6509a4
call fcn.004d6bf0
xor ecx, ecx
add esi, 0x101e
mov dword [ebp - 0x1c], ecx
nop dword [eax]
mov dword [ebp - 0x3c], vtable.CEffect.0
mov dword [ebp - 0x37], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 4], 0
xor edx, edx
mov eax, dword [edi + 0x624]
add eax, ecx
mov dword [eax + 4], 0xff
mov byte [eax + 8], 0
mov dword [eax + 0xc], 0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], edx
mov dword [eax + 0x18], edx
mov al, byte [esi - 2]
mov byte [ebp - 0x155], al
cmp al, 0xff
jne 0x4dd14e
mov dword [ebp - 4], 0xffffffff
jmp 0x4dd1e5
movzx edx, byte [esi - 1]
movzx ecx, byte [esi + 3]
mov byte [ebp - 0x38], al
movzx eax, byte [esi]
shl edx, 8
or edx, eax
shl cx, 8
movzx eax, byte [esi + 1]
shl edx, 8
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 8
or edx, eax
movzx eax, byte [esi + 4]
or cx, ax
mov dword [ebp - 0x2c], edx
movzx eax, byte [esi + 6]
mov word [ebp - 0x28], cx
movzx ecx, byte [esi + 5]
shl cx, 8
or cx, ax
movzx eax, byte [esi + 8]
mov word [ebp - 0x26], cx
movzx ecx, byte [esi + 7]
shl cx, 8
or cx, ax
movzx eax, byte [esi + 0xa]
mov word [ebp - 0x24], cx
movzx ecx, byte [esi + 9]
shl cx, 8
or cx, ax
movzx eax, byte [ebp - 0x155]
mov word [ebp - 0x22], cx
push dword [ebp - 0x22]
push dword [ebp - 0x24]
push dword [ebp - 0x26]
push dword [ebp - 0x28]
push edx
push eax
push 1
push edi
call fcn.00477200
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x1c]
add ecx, 0x1c
add esi, 0xd
mov dword [ebp - 0x1c], ecx
cmp ecx, 0x380
jl 0x4dd0f0
xor esi, esi
nop dword [eax]
mov edx, dword [edi + 0x324]
movzx eax, word [edx + esi + 8]
mov ecx, eax
mov dword [ebp - 0x1c], ecx
mov ecx, 0xffff
cmp ax, cx
je 0x4dd288
movzx eax, word [edx + esi + 6]
push eax
push edi
call fcn.00508760
test al, al
jne 0x4dd288
mov ecx, dword [edi + 0x324]
xor eax, eax
add ecx, 8
nop word [eax + eax]
movzx edx, word [ecx]
cmp dx, word [ebp - 0x164]
je 0x4dd252
cmp dx, word [ebp - 0x1c]
je 0x4dd25d
inc eax
add ecx, 0x14
cmp eax, 0x3c
jl 0x4dd240
jmp 0x4dd288
lea ecx, [eax + eax*4]
mov edx, 0xffff
mov eax, dword [edi + 0x324]
mov byte [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 6], 0xffffffff
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
add esi, 0x14
cmp esi, 0x4b0
jl 0x4dd200
movss xmm0, dword [edi + 0xfc]
mov eax, 1
mov word [edi + 0x78], ax
mov dword [edi + 0x200], eax
or eax, 0xffffffff
ucomiss xmm0, dword [0x56a714]
mov word [edi + 0x2b0], ax
mov byte [edi + 0x7a], 1
mov dword [edi + 4], 3
lahf
test ah, 0x44
jp 0x4dd2ed
mov dword [edi + 0x200], 4
mov byte [edi + 0x216], 1
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [edi + 0x21c], eax
mov eax, dword [ebp - 0x170]
mov dword [edi + 0x1e8], 1
test byte [eax + 0xfe4], 8
je 0x4dd310
mov dword [edi + 0x1e8], 2
test byte [eax + 0xfe4], 0x20
je 0x4dd445
mov dword [edi + 0x1e8], 0x20
cmp dword [0x851318], 0
mov dword [ebp - 0x1c], 0
jle 0x4dd3b9
lea ecx, [edi + 0x7b]
mov esi, 0x850a27
lea eax, [esi - 0xb]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4dd366
test dl, dl
je 0x4dd362
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4dd366
add eax, 2
add ecx, 2
test dl, dl
jne 0x4dd346
xor eax, eax
jmp 0x4dd36b
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4dd3a4
lea ecx, [edi + 0x86]
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4dd397
test dl, dl
je 0x4dd393
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4dd397
add eax, 2
add ecx, 2
test dl, dl
jne 0x4dd377
xor eax, eax
jmp 0x4dd39c
sbb eax, eax
or eax, 1
test eax, eax
je 0x4dd42b
mov edx, dword [ebp - 0x1c]
lea ecx, [edi + 0x7b]
inc edx
add esi, 0x17
mov dword [ebp - 0x1c], edx
cmp edx, dword [0x851318]
jl 0x4dd343
movzx eax, word [edi + 0x83]
xor dl, dl
movq xmm0, qword [edi + 0x7b]
mov word [ebp - 0x30], ax
mov al, byte [edi + 0x85]
mov byte [ebp - 0x2e], al
movzx eax, word [edi + 0x8e]
mov word [ebp - 0x25], ax
mov al, byte [edi + 0x90]
movq qword [ebp - 0x38], xmm0
movq xmm0, qword [edi + 0x86]
mov byte [ebp - 0x23], al
mov eax, dword [0x851318]
movq qword [ebp - 0x2d], xmm0
cmp eax, 0x63
ja 0x4dd42b
movups xmm0, xmmword [ebp - 0x38]
imul ecx, eax, 0x17
mov eax, dword [ebp - 0x28]
add ecx, 0x850a1c
movups xmmword [ecx], xmm0
mov dword [ecx + 0x10], eax
mov ax, word [ebp - 0x24]
mov word [ecx + 0x14], ax
mov byte [ecx + 0x16], dl
inc dword [0x851318]
push 0
push 0
push 0
push 0
push 0
push 0x1c
push 0
push edi
call fcn.00477200
mov eax, dword [ebp - 0x170]
mov dword [edi + 0x1f0], 0
test byte [eax + 0xfe4], 2
je 0x4dd462
mov dword [edi + 0x1f0], 4
cmp byte [eax + 0x121c], 0
jne 0x4dd471
push edi
call fcn.004617b0
mov eax, dword [edi + 0x1e8]
test al, 1
jne 0x4dd4a2
test al, 2
je 0x4dd48b
mov dword [edi + 0x1ec], 0xffffffff
jmp 0x4dd4a2
test al, 4
jne 0x4dd4a2
test al, 8
jne 0x4dd49b
test al, 0x10
jne 0x4dd4a2
test al, 0x20
je 0x4dd4a2
or dword [edi + 0x1ec], 0x3f
mov ecx, 0xc90
mov dword [ebp - 0x1c], 0x2000
mov dword [ebp - 0x170], ecx
nop dword [eax]
nop dword [eax + eax]
mov esi, dword [edi + 0x390]
movzx edx, word [ecx + esi + 4]
mov eax, edx
test dx, dx
js 0x4dd542
cmp ax, word [ebp - 0x1c]
jge 0x4dd542
lea eax, [edx - 0x1a80]
cmp ax, 6
ja 0x4dd542
movss xmm0, dword [ecx + esi + 0x20]
ucomiss xmm0, dword [0x56a818]
lahf
test ah, 0x44
jp 0x4dd542
movsx eax, dx
push eax
call fcn.004771c0
mov esi, eax
test esi, esi
je 0x4dd53c
mov ecx, dword [edi + 0x624]
xor edx, edx
add ecx, 5
cmp byte [ecx - 1], 0xff
je 0x4dd51f
movzx eax, byte [ecx]
cmp eax, dword [esi + 4]
je 0x4dd53c
inc edx
add ecx, 0x1c
cmp edx, 0x20
jl 0x4dd511
push 0
push 0
push 0
push 0
push 0
push dword [esi]
push 1
push edi
call fcn.00477200
mov ecx, dword [ebp - 0x170]
add ecx, 0x10c
mov dword [ebp - 0x170], ecx
cmp ecx, 0xd590
jl 0x4dd4c0
movzx eax, byte [edi + 0x149]
lea edx, [ebp - 0x170]
imul ecx, eax, 0x15d38
push 4
mov word [ebp - 0x170], 0x4c1
mov byte [ebp - 0x16e], 0xf
mov al, byte [ecx + 0xd2f374]
shl al, 4
or al, byte [ecx + 0xd2f375]
mov ecx, dword [edi]
shr al, 4
mov byte [ebp - 0x16d], al
call fcn.00526480
mov eax, dword [ebp - 0x174]
add esp, 4
mov esi, dword [eax*4 + 0x20a514c]
call fcn.00526930
and eax, 0x800003ff
jns 0x4dd5c1
dec eax
or eax, 0xfffffc00
inc eax
mov word [esi + 0x70], ax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [esi + 0x74], eax
mov word [ebp - 0x1c], 0x6c1
mov byte [ebp - 0x1a], 3
call fcn.00526930
and eax, 0x8000003f
jns 0x4dd5e9
dec eax
or eax, 0xffffffc0
inc eax
shl eax, 4
movzx edx, ax
movzx eax, word [esi + 0x70]
mov esi, dword [ebp - 0x174]
mov ecx, eax
and ecx, 0x3f0
and eax, 0xf
shl ecx, 6
xor eax, 0xb479
or ecx, eax
or ecx, edx
lea edx, [ebp - 0x1c]
mov word [ebp - 0x18], cx
mov ecx, esi
push 6
call fcn.00526480
mov eax, dword [edi]
add esp, 4
mov word [ebp - 0x2c], ax
mov word [ebp - 0x30], 0x12c1
mov byte [ebp - 0x2e], 0xf1
mov ecx, dword [eax*4 + 0x20a514c]
push 0x12
movq xmm0, qword [ecx + 0x86]
movq qword [ebp - 0x2a], xmm0
mov ax, word [ecx + 0x8e]
mov word [ebp - 0x22], ax
mov al, byte [ecx + 0x90]
mov ecx, 0x7509e0
mov byte [ebp - 0x20], al
lea eax, [ebp - 0x30]
push eax
call fcn.00440610
mov ecx, dword [edi]
mov edx, dword [ecx*4 + 0x20a514c]
mov eax, dword [edx + 0x644]
cmp dword [eax*4 + 0x6374a0], 0
je 0x4dd6c3
mov word [ebp - 0x2c], cx
mov ecx, 0x7509e0
mov word [ebp - 0x30], 0x12c1
mov byte [ebp - 0x2e], 0xf5
movq xmm0, qword [edx + 0x86]
movq qword [ebp - 0x2a], xmm0
mov ax, word [edx + 0x8e]
mov word [ebp - 0x22], ax
mov al, byte [edx + 0x90]
mov byte [ebp - 0x20], al
lea eax, [ebp - 0x30]
push 0x12
push eax
call fcn.00440610
lea ecx, [esi + esi*4]
mov esi, dword [ecx*8 + 0xcd73c4]
test esi, esi
js 0x4dd71f
cmp esi, 0x1194
jge 0x4dd71f
mov eax, dword [esi*4 + 0x20a514c]
cmp word [eax + 0xcc], 4
jne 0x4dd71f
cmp dword [ecx*8 + 0xcd73d0], 0
je 0x4dd71f
mov dword [ecx*8 + 0xcd73d0], 0
lea edx, [ebp - 0x1c]
push 7
mov ecx, esi
mov dword [ebp - 0x1c], 0xa707c1
mov word [ebp - 0x18], 0xff00
mov byte [ebp - 0x16], 0xff
call fcn.00526480
add esp, 4
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call esi
mov dword [edi + 0x72c], eax
call esi
mov dword [edi + 0x730], eax
call esi
mov dword [edi + 0x734], eax
call esi
mov dword [edi + 0x738], eax
call esi
mov dword [edi + 0x5f4], eax
mov al, 1
jmp 0x4dce9f