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

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x2a
push 0
push 0
dec ecx
jne 0x50c478
push ecx
push ebx
push esi
push edi
mov dword [ebp - 4], edx
mov esi, eax
xor eax, eax
push ebp
push 0x50d597
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
mov dword [ebp - 8], eax
xor eax, eax
mov dword [ebp - 0xc], eax
mov eax, dword [esi + 0x28]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
jle 0x50c55c
mov eax, dword [0x531d88]
cmp byte [eax], 0
jne 0x50c55c
mov eax, dword [0x531838]
mov eax, dword [eax]
mov edx, 0x18a
call fcn.00498b1c
mov ebx, eax
test ebx, ebx
je 0x50c55c
mov eax, ebx
call fcn.00485910
cmp eax, dword [esi + 0x34]
jge 0x50c4ef
mov eax, ebx
call fcn.00485910
mov dword [esi + 0x34], eax
mov eax, ebx
call fcn.0048573c
cmp eax, dword [esi + 0x38]
jge 0x50c505
mov eax, ebx
call fcn.0048573c
mov dword [esi + 0x38], eax
mov edx, dword [esi + 0x2c]
mov ecx, edx
mov eax, dword [esi + 0x34]
add ecx, eax
cmp ecx, 0x320
jle 0x50c523
mov edx, 0x320
sub edx, eax
mov dword [ebp - 8], edx
jmp 0x50c526
mov dword [ebp - 8], edx
mov edx, dword [esi + 0x30]
test edx, edx
jge 0x50c534
xor edx, edx
mov dword [ebp - 0xc], edx
jmp 0x50c537
mov dword [ebp - 0xc], edx
cmp dword [ebp - 8], 0
jge 0x50c542
xor edx, edx
mov dword [ebp - 8], edx
push ebx
push 0
push 0
push eax
mov eax, dword [esi + 0x38]
push eax
push 0x1c
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.004d1114
mov eax, dword [0x531d88]
cmp byte [eax + 0x631], 0
je 0x50c7e9
mov eax, dword [0x531d88]
cmp byte [eax], 0
je 0x50c7e9
mov eax, dword [0x531504]
mov eax, dword [eax]
mov edx, 6
call fcn.00498b1c
mov ebx, eax
test ebx, ebx
je 0x50c7e9
mov eax, ebx
call fcn.00485910
cmp eax, dword [esi + 0x44]
jge 0x50c5ad
mov eax, ebx
call fcn.00485910
mov dword [esi + 0x44], eax
mov eax, ebx
call fcn.0048573c
cmp eax, dword [esi + 0x48]
jge 0x50c5c3
mov eax, ebx
call fcn.0048573c
mov dword [esi + 0x48], eax
mov edx, dword [esi + 0x3c]
mov ecx, edx
mov eax, dword [esi + 0x44]
add ecx, eax
cmp ecx, 0x320
jle 0x50c5e1
mov edx, 0x320
sub edx, eax
mov dword [ebp - 8], edx
jmp 0x50c5e4
mov dword [ebp - 8], edx
mov edx, dword [esi + 0x40]
test edx, edx
jge 0x50c5f2
xor edx, edx
mov dword [ebp - 0xc], edx
jmp 0x50c5f5
mov dword [ebp - 0xc], edx
cmp dword [ebp - 8], 0
jge 0x50c600
xor edx, edx
mov dword [ebp - 8], edx
push ebx
push 0
push 0
push eax
mov eax, dword [esi + 0x48]
push eax
push 0x14
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.004d1114
mov eax, dword [0x531504]
mov eax, dword [eax]
mov edx, 4
call fcn.00498b1c
mov ebx, eax
test ebx, ebx
je 0x50c678
push ebx
push 0
push 0
mov eax, dword [ebp - 8]
push eax
mov eax, dword [esi + 0x48]
sub eax, 2
push eax
push 0x1c
mov edi, dword [ebp - 0xc]
add edi, 2
mov ecx, edi
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.004d1114
push ebx
push 0
push 0
mov eax, dword [esi + 0x44]
add eax, dword [ebp - 8]
push eax
mov edx, dword [esi + 0x48]
sub edx, 2
push edx
push 0x1c
mov ecx, edi
mov edx, eax
dec edx
mov eax, dword [ebp - 4]
call fcn.004d1114
mov eax, dword [0x531504]
mov eax, dword [eax]
mov edx, 5
call fcn.00498b1c
mov ebx, eax
test ebx, ebx
je 0x50c6b2
push ebx
push 0
push 0
mov eax, dword [esi + 0x44]
sub eax, 2
push eax
mov eax, dword [ebp - 0xc]
push eax
push 0x1c
mov edx, dword [ebp - 8]
add edx, 2
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 4]
call fcn.004d1114
mov eax, dword [0x531504]
mov eax, dword [eax]
mov edx, 5
call fcn.00498b1c
mov ebx, eax
test ebx, ebx
je 0x50c6f2
push ebx
push 0
push 0
mov eax, dword [esi + 0x44]
sub eax, 2
push eax
mov eax, dword [esi + 0x48]
add eax, dword [ebp - 0xc]
push eax
push 0x1c
mov ecx, dword [esi + 0x48]
add ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
add edx, 2
mov eax, dword [ebp - 4]
call fcn.004d1114
mov eax, dword [0x531504]
mov eax, dword [eax]
xor edx, edx
call fcn.00498b1c
mov ebx, eax
test ebx, ebx
je 0x50c729
push ebx
push 0
push 0
mov eax, dword [ebp - 8]
add eax, 2
push eax
mov eax, dword [ebp - 0xc]
add eax, 2
push eax
push 0x1c
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.004d1114
mov eax, dword [0x531504]
mov eax, dword [eax]
mov edx, 1
call fcn.00498b1c
mov ebx, eax
test ebx, ebx
je 0x50c769
push ebx
push 0
push 0
mov eax, dword [esi + 0x44]
add eax, dword [ebp - 8]
push eax
mov eax, dword [ebp - 0xc]
add eax, 2
push eax
push 0x1c
mov edx, dword [esi + 0x44]
add edx, dword [ebp - 8]
sub edx, 6
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 4]
call fcn.004d1114
mov eax, dword [0x531504]
mov eax, dword [eax]
mov edx, 2
call fcn.00498b1c
mov ebx, eax
test ebx, ebx
je 0x50c7a6
push ebx
push 0
push 0
mov eax, dword [ebp - 8]
push eax
mov eax, dword [esi + 0x48]
add eax, dword [ebp - 0xc]
push eax
push 0x1c
mov ecx, dword [esi + 0x48]
add ecx, dword [ebp - 0xc]
sub ecx, 5
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.004d1114
mov eax, dword [0x531504]
mov eax, dword [eax]
mov edx, 3
call fcn.00498b1c
mov ebx, eax
test ebx, ebx
je 0x50c7e9
push ebx
push 0
push 0
mov eax, dword [ebp - 8]
push eax
mov eax, dword [esi + 0x48]
add eax, dword [ebp - 0xc]
push eax
push 0x1c
mov ecx, dword [esi + 0x48]
add ecx, dword [ebp - 0xc]
sub ecx, 5
mov edx, dword [esi + 0x44]
add edx, dword [ebp - 8]
sub edx, 6
mov eax, dword [ebp - 4]
call fcn.004d1114
push 1
mov eax, dword [ebp - 4]
call fcn.004856f8
call fcn.00429ec4
push eax
call fcn.004077c4
mov eax, dword [esi + 0x28]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
jle 0x50c889
mov eax, dword [0x531d88]
cmp byte [eax], 0
jne 0x50c889
mov eax, dword [ebp - 4]
call fcn.004856f8
mov eax, dword [eax + 0xc]
mov edx, dword [esi + 0x50]
call fcn.00428de0
mov eax, dword [esi + 0x28]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
test eax, eax
jl 0x50c889
inc eax
mov dword [ebp - 0x2c], eax
xor ebx, ebx
lea ecx, [ebp - 0xac]
mov eax, dword [esi + 0x28]
mov edx, ebx
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, dword [ebp - 0xac]
push eax
mov eax, dword [ebp - 4]
call fcn.004856f8
mov edx, 0x50d5b0
call fcn.00429d1c
inc eax
imul ebx
mov edx, dword [ebp - 0xc]
add edx, 3
add eax, edx
push eax
mov eax, dword [ebp - 4]
call fcn.004856f8
mov edx, dword [ebp - 8]
add edx, 4
pop ecx
call fcn.00429b90
inc ebx
dec dword [ebp - 0x2c]
jne 0x50c83a
mov eax, dword [0x531d88]
cmp byte [eax + 0x631], 0
je 0x50cd57
xor edi, edi
mov byte [ebp - 0x19], 0
push 1
mov eax, dword [ebp - 4]
call fcn.004856f8
call fcn.00429ec4
push eax
call fcn.004077c4
xor ebx, ebx
mov esi, dword [0x531d88]
cmp byte [esi], 0
je 0x50cb59
cmp ebx, 0x22
je 0x50cb59
cmp ebx, 0x25
je 0x50cb59
cmp ebx, 1
jne 0x50c952
mov eax, dword [0x531d88]
cmp byte [eax + 0x534], 0
je 0x50c952
mov eax, dword [ebp - 4]
call fcn.004856f8
mov eax, dword [eax + 0xc]
mov edx, 0xff00ff
call fcn.00428de0
lea eax, [ebp - 0xb0]
mov edx, dword [0x531d88]
add edx, 0x534
call fcn.0040507c
mov eax, dword [ebp - 0xb0]
push eax
mov eax, dword [ebp - 4]
call fcn.004856f8
mov edx, 0x50d5b0
call fcn.00429d1c
inc eax
imul edi
mov edx, dword [ebp - 0xc]
add edx, 3
add eax, edx
push eax
mov eax, dword [ebp - 4]
call fcn.004856f8
mov edx, dword [ebp - 8]
add edx, 4
pop ecx
call fcn.00429b90
inc edi
cmp ebx, 1
jne 0x50cad7
cmp byte [ebp - 0x19], 0
jne 0x50cad7
mov byte [ebp - 0x19], 1
mov eax, dword [0x531d88]
cmp byte [eax + 0x4c8], 0
je 0x50cad7
lea eax, [ebp - 0xb4]
mov edx, dword [0x531d88]
add edx, 0x4c8
call fcn.0040507c
mov eax, dword [ebp - 0xb4]
xor edx, edx
call fcn.00496cac
mov ecx, 0xa
cdq
idiv ecx
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0
jle 0x50ca2b
xor eax, eax
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 4]
call fcn.004856f8
mov eax, dword [eax + 0xc]
mov edx, 0xff00ff
call fcn.00428de0
mov eax, dword [ebp - 0x20]
dec eax
test eax, eax
jl 0x50ca2b
inc eax
mov dword [ebp - 0x2c], eax
push 0x50d5bc
mov eax, dword [ebp - 4]
call fcn.004856f8
mov edx, 0x50d5b0
call fcn.00429d1c
inc eax
imul edi
mov edx, dword [ebp - 0xc]
add edx, 3
add eax, edx
push eax
mov eax, dword [ebp - 4]
call fcn.004856f8
mov edx, dword [ebp - 8]
add edx, 4
add edx, dword [ebp - 0x24]
pop ecx
call fcn.00429b90
mov eax, dword [ebp - 4]
call fcn.004856f8
mov edx, 0x50d5bc
call fcn.00429d1c
inc eax
add dword [ebp - 0x24], eax
dec dword [ebp - 0x2c]
jne 0x50c9d6
lea eax, [ebp - 0xb8]
mov edx, dword [0x531d88]
add edx, 0x4c8
call fcn.0040507c
mov eax, dword [ebp - 0xb8]
xor edx, edx
call fcn.00496cac
mov ecx, 0xa
cdq
idiv ecx
mov dword [ebp - 0x20], edx
cmp dword [ebp - 0x20], 0
jle 0x50cad6
mov eax, dword [ebp - 4]
call fcn.004856f8
mov eax, dword [eax + 0xc]
mov edx, 0xff00
call fcn.00428de0
mov eax, dword [ebp - 0x20]
dec eax
test eax, eax
jl 0x50cad6
inc eax
mov dword [ebp - 0x2c], eax
push 0x50d5bc
mov eax, dword [ebp - 4]
call fcn.004856f8
mov edx, 0x50d5b0
call fcn.00429d1c
inc eax
imul edi
mov edx, dword [ebp - 0xc]
add edx, 3
add eax, edx
push eax
mov eax, dword [ebp - 4]
call fcn.004856f8
mov edx, dword [ebp - 8]
add edx, 4
add edx, dword [ebp - 0x24]
pop ecx
call fcn.00429b90
mov eax, dword [ebp - 4]
call fcn.004856f8
mov edx, 0x50d5bc
call fcn.00429d1c
inc eax
add dword [ebp - 0x24], eax
dec dword [ebp - 0x2c]
jne 0x50ca81
inc edi
mov eax, dword [ebp - 4]
call fcn.004856f8
mov eax, dword [eax + 0xc]
mov edx, dword [esi + 0x20]
call fcn.00428de0
cmp ebx, 0x23
jne 0x50cb12
mov eax, dword [0x531d88]
cmp byte [eax + 0x630], 0
je 0x50cb12
mov eax, dword [ebp - 4]
call fcn.004856f8
mov eax, dword [eax + 0xc]
mov edx, 0xff00
call fcn.00428de0
lea eax, [ebp - 0xbc]
mov edx, esi
call fcn.0040507c
mov eax, dword [ebp - 0xbc]
push eax
mov eax, dword [ebp - 4]
call fcn.004856f8
mov edx, 0x50d5b0
call fcn.00429d1c
inc eax
imul edi
mov edx, dword [ebp - 0xc]
add edx, 3
add eax, edx
push eax
mov eax, dword [ebp - 4]
call fcn.004856f8
mov edx, dword [ebp - 8]
add edx, 4
pop ecx
call fcn.00429b90
inc edi
inc ebx
add esi, 0x24
cmp ebx, 0x26
jne 0x50c8be
mov eax, dword [0x531d88]
cmp byte [eax + 0x558], 0
je 0x50cbe0
mov eax, dword [ebp - 4]
call fcn.004856f8
mov eax, dword [eax + 0xc]
mov edx, dword [0x531d88]
mov edx, dword [edx + 0x578]
call fcn.00428de0
lea eax, [ebp - 0xc0]
mov edx, dword [0x531d88]
add edx, 0x558
call fcn.0040507c
mov eax, dword [ebp - 0xc0]
push eax
mov eax, dword [ebp - 4]
call fcn.004856f8
mov edx, 0x50d5b0
call fcn.00429d1c
inc eax
imul edi
mov edx, dword [ebp - 0xc]
add edx, 3
add eax, edx
push eax
mov eax, dword [ebp - 4]
call fcn.004856f8
mov edx, dword [ebp - 8]
add edx, 4
pop ecx
call fcn.00429b90
mov eax, dword [0x531d88]
cmp byte [eax + 0x57c], 0
je 0x50cc5d
mov eax, dword [ebp - 4]
call fcn.004856f8
mov eax, dword [eax + 0xc]
mov edx, dword [0x531d88]
mov edx, dword [edx + 0x59c]
call fcn.00428de0
lea eax, [ebp - 0xc4]
mov edx, dword [0x531d88]
add edx, 0x57c
call fcn.0040507c
mov eax, dword [ebp - 0xc4]
push eax
mov eax, dword [ebp - 4]
call fcn.004856f8
mov edx, 0x50d5b0
call fcn.00429d1c
inc eax
lea edx, [edi + 1]
imul edx
mov edx, dword [ebp - 0xc]
add edx, 3
add eax, edx
push eax
mov eax, dword [ebp - 4]
call fcn.004856f8
mov edx, dword [ebp - 8]
add edx, 4
pop ecx
call fcn.00429b90
mov eax, dword [0x531d88]
cmp byte [eax + 0x5a0], 0
je 0x50ccda
mov eax, dword [ebp - 4]
call fcn.004856f8
mov eax, dword [eax + 0xc]
mov edx, dword [0x531d88]
mov edx, dword [edx + 0x5c0]
call fcn.00428de0
lea eax, [ebp - 0xc8]
mov edx, dword [0x531d88]
add edx, 0x5a0
call fcn.0040507c
mov eax, dword [ebp - 0xc8]
push eax
mov eax, dword [ebp - 4]
call fcn.004856f8
mov edx, 0x50d5b0
call fcn.00429d1c
inc eax
lea edx, [edi + 2]
imul edx
mov edx, dword [ebp - 0xc]
add edx, 3
add eax, edx
push eax
mov eax, dword [ebp - 4]
call fcn.004856f8
mov edx, dword [ebp - 8]
add edx, 4
pop ecx
call fcn.00429b90
mov eax, dword [0x531d88]
cmp byte [eax + 0x5c4], 0
je 0x50cd57
mov eax, dword [ebp - 4]
call fcn.004856f8
mov eax, dword [eax + 0xc]
mov edx, dword [0x531d88]
mov edx, dword [edx + 0x5e4]
call fcn.00428de0
lea eax, [ebp - 0xcc]
mov edx, dword [0x531d88]
add edx, 0x5c4
call fcn.0040507c
mov eax, dword [ebp - 0xcc]
push eax
mov eax, dword [ebp - 4]
call fcn.004856f8
mov edx, 0x50d5b0
call fcn.00429d1c
inc eax
add edi, 3
imul edi
mov edx, dword [ebp - 0xc]
add edx, 3
add eax, edx
push eax
mov eax, dword [ebp - 4]
call fcn.004856f8
mov edx, dword [ebp - 8]
add edx, 4
pop ecx
call fcn.00429b90
mov eax, dword [ebp - 4]
call fcn.004856f8
call fcn.00484534
mov eax, dword [0x531548]
cmp dword [eax], 0
je 0x50d145
push 1
mov eax, dword [ebp - 4]
call fcn.004856f8
call fcn.00429ec4
push eax
call fcn.004077c4
mov eax, dword [0x531548]
mov eax, dword [eax]
cmp byte [eax + 0x2c], 0
jne 0x50cf51
mov eax, dword [0x531870]
mov eax, dword [eax]
cmp dword [eax + 8], 0
jle 0x50cf51
mov eax, dword [0x531870]
mov eax, dword [eax]
xor edx, edx
call fcn.0041f6dc
mov dword [ebp - 0x28], eax
call fcn.00407464
mov edx, dword [ebp - 0x28]
sub eax, dword [edx + 0xdc]
cmp eax, 0x3e8
jb 0x50cde6
mov eax, dword [ebp - 0x28]
dec dword [eax + 0xe0]
call fcn.00407464
mov edx, dword [ebp - 0x28]
mov dword [edx + 0xdc], eax
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax + 0xe0]
test ecx, ecx
jg 0x50ce1f
mov edx, 0xe4
mov eax, dword [ebp - 0x28]
call fcn.00402e08
mov eax, dword [0x531870]
mov eax, dword [eax]
xor edx, edx
call fcn.0041f5cc
mov eax, dword [0x531df0]
mov eax, dword [eax]
call fcn.0052ad44
jmp 0x50cf51
mov eax, ecx
mov ebx, 0x3c
cdq
idiv ebx
mov ebx, eax
mov esi, ecx
imul eax, ebx, 0x3c
sub esi, eax
test ebx, ebx
jle 0x50cea1
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0xd0]
mov edx, dword [ebp - 0x28]
call fcn.0040507c
mov eax, dword [ebp - 0xd0]
mov ecx, 0x50d5c8
mov edx, 0x50d5e0
call fcn.00412c30
lea eax, [ebp - 0xd4]
push eax
mov dword [ebp - 0xe4], ebx
mov byte [ebp - 0xe0], 0
mov dword [ebp - 0xdc], esi
mov byte [ebp - 0xd8], 0
lea edx, [ebp - 0xe4]
mov ecx, 1
mov eax, dword [ebp - 0x14]
call fcn.0040bc68
mov edx, dword [ebp - 0xd4]
lea eax, [ebp - 0x14]
call fcn.00404eb0
jmp 0x50cefa
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0xe8]
mov edx, dword [ebp - 0x28]
call fcn.0040507c
mov eax, dword [ebp - 0xe8]
mov ecx, 0x50d5ec
mov edx, 0x50d5e0
call fcn.00412c30
lea eax, [ebp - 0xec]
push eax
mov dword [ebp - 0xf4], esi
mov byte [ebp - 0xf0], 0
lea edx, [ebp - 0xf4]
xor ecx, ecx
mov eax, dword [ebp - 0x14]
call fcn.0040bc68
mov edx, dword [ebp - 0xec]
lea eax, [ebp - 0x14]
call fcn.00404eb0
mov eax, dword [ebp - 0x14]
call fcn.004050d8
mov edx, dword [0x531574]
imul dword [edx]
mov ebx, 0x320
sub ebx, eax
sar ebx, 1
jns 0x50cf18
adc ebx, 0
mov eax, dword [ebp - 0x28]
mov dword [eax + 0xd4], ebx
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0xcc]
push eax
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0xd0]
push eax
mov eax, dword [ebp - 0x14]
push eax
push 0x3a98
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax + 0xd8]
mov edx, ebx
mov eax, dword [ebp - 4]
call fcn.004cea18
mov eax, dword [0x531454]
mov eax, dword [eax]
cmp dword [eax + 8], 0
jle 0x50d023
mov eax, dword [0x531454]
mov eax, dword [eax]
xor edx, edx
call fcn.0041f6dc
mov dword [ebp - 0x28], eax
call fcn.00407464
mov edx, dword [ebp - 0x28]
sub eax, dword [edx + 0xdc]
cmp eax, 0x1e
jb 0x50cfd9
mov eax, dword [ebp - 0x28]
dec dword [eax + 0xd4]
call fcn.00407464
mov edx, dword [ebp - 0x28]
mov dword [edx + 0xdc], eax
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0xd8]
mov edx, dword [0x531574]
imul dword [edx]
mov edx, dword [ebp - 0x28]
cmp eax, dword [edx + 0xd4]
jle 0x50cfd9
mov edx, 0xe4
mov eax, dword [ebp - 0x28]
call fcn.00402e08
mov eax, dword [0x531454]
mov eax, dword [eax]
xor edx, edx
call fcn.0041f5cc
xor eax, eax
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0
je 0x50d023
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0xcc]
push eax
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0xd0]
push eax
lea eax, [ebp - 0xf8]
mov edx, dword [ebp - 0x28]
call fcn.0040507c
mov eax, dword [ebp - 0xf8]
push eax
push 0x3a98
mov eax, dword [ebp - 0x28]
mov edx, dword [eax + 0xd4]
mov ecx, 0xf
mov eax, dword [ebp - 4]
call fcn.004cea18
mov eax, dword [0x531560]
mov eax, dword [eax]
mov eax, dword [eax + 8]
test eax, eax
jle 0x50d138
mov edx, dword [0x531560]
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x50d0a4
mov eax, dword [0x531560]
mov eax, dword [eax]
mov edx, ebx
call fcn.0041f6dc
mov dword [ebp - 0x28], eax
call fcn.00407464
mov edx, dword [ebp - 0x28]
sub eax, dword [edx + 0xdc]
xor edx, edx
push edx
push eax
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0xe0]
cdq
cmp edx, dword [esp + 4]
jne 0x50d07f
cmp eax, dword [esp]
pop edx
pop eax
ja 0x50d09e
jmp 0x50d083
pop edx
pop eax
jg 0x50d09e
mov edx, 0xe4
mov eax, dword [ebp - 0x28]
call fcn.00402e08
mov eax, dword [0x531560]
mov eax, dword [eax]
mov edx, ebx
call fcn.0041f5cc
dec ebx
cmp ebx, 0xffffffff
jne 0x50d043
mov eax, dword [0x531870]
mov eax, dword [eax]
cmp dword [eax + 8], 0
jle 0x50d0b8
mov esi, 0xf
jmp 0x50d0ba
xor esi, esi
mov eax, dword [0x531560]
mov eax, dword [eax]
mov eax, dword [eax + 8]
dec eax
test eax, eax
jl 0x50d138
inc eax
mov dword [ebp - 0x2c], eax
xor ebx, ebx
mov eax, dword [0x531560]
mov eax, dword [eax]
mov edx, ebx
call fcn.0041f6dc
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0xcc]
push eax
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0xd0]
push eax
lea eax, [ebp - 0xfc]
mov edx, dword [ebp - 0x28]
call fcn.0040507c
mov eax, dword [ebp - 0xfc]
push eax
push 0x3a98
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax + 0xd8]
sub ecx, esi
mov eax, dword [ebp - 0x28]
mov edx, dword [eax + 0xd4]
mov eax, dword [ebp - 4]
call fcn.004cea18
add esi, 0xf
cmp ebx, 4
jge 0x50d138
inc ebx
dec dword [ebp - 0x2c]
jne 0x50d0cf
mov eax, dword [ebp - 4]
call fcn.004856f8
call fcn.00484534
mov eax, dword [0x531518]
cmp byte [eax + 0xf], 0
je 0x50d247
mov edi, 0xfa
xor ebx, ebx
mov esi, dword [0x5312a0]
push esi
push edi
lea edi, [ebp - 0xa8]
mov ecx, 0x1f
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
cmp byte [ebp - 0xa8], 0
je 0x50d23a
cmp ebx, 9
jne 0x50d19b
cmp byte [ebp - 0x99], 0x19
jne 0x50d19b
cmp word [ebp - 0x98], 5
je 0x50d23a
cmp ebx, 0xc
jne 0x50d1ad
cmp byte [ebp - 0x99], 7
je 0x50d23a
mov eax, ebx
sub eax, 2
jae 0x50d1bc
cmp word [ebp - 0x30], 0x7d0
jbe 0x50d1c4
cmp word [ebp - 0x30], 0x4e2
ja 0x50d23a
push 0xffff
push 0
lea eax, [ebp - 0x100]
push eax
lea eax, [ebp - 0xa8]
mov dword [ebp - 0x118], eax
mov byte [ebp - 0x114], 4
movzx eax, word [ebp - 0x30]
mov dword [ebp - 0x110], eax
mov byte [ebp - 0x10c], 0
movzx eax, word [ebp - 0x2e]
mov dword [ebp - 0x108], eax
mov byte [ebp - 0x104], 0
lea edx, [ebp - 0x118]
mov ecx, 2
mov eax, 0x50d5fc
call fcn.0040bc68
mov eax, dword [ebp - 0x100]
push eax
push 0x3a98
mov ecx, edi
mov edx, 0x274
mov eax, dword [ebp - 4]
call fcn.004ceb30
add edi, 0x10
inc ebx
add esi, 0x7c
cmp ebx, 0xf
jne 0x50d161
mov eax, dword [0x531548]
cmp dword [eax], 0
je 0x50d541
mov eax, dword [0x531448]
cmp byte [eax], 0
je 0x50d495
mov eax, dword [0x531518]
cmp byte [eax + 0x164], 0
je 0x50d495
mov eax, dword [0x5312cc]
cmp byte [eax], 0
jne 0x50d495
push 0x50d614
call fcn.0040c918
add esp, 0xfffffff8
fstp qword [esp]
wait
lea eax, [ebp - 0x11c]
call fcn.0040d5c8
push dword [ebp - 0x11c]
push 0x50d624
mov eax, dword [0x531548]
mov eax, dword [eax]
mov eax, dword [eax + 0x62]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x120]
call fcn.0040ae98
push dword [ebp - 0x120]
push 0x50d634
mov eax, dword [0x531548]
mov eax, dword [eax]
mov eax, dword [eax + 0x66]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x124]
call fcn.0040ae98
push dword [ebp - 0x124]
push 0x50d640
lea edx, [ebp - 0x128]
mov eax, dword [0x531548]
mov eax, dword [eax]
movzx eax, word [eax + 0x6a]
call fcn.0040adac
push dword [ebp - 0x128]
push 0x50d634
lea edx, [ebp - 0x12c]
mov eax, dword [0x531548]
mov eax, dword [eax]
movzx eax, word [eax + 0x6c]
call fcn.0040adac
push dword [ebp - 0x12c]
push 0x50d650
mov eax, dword [0x531f6c]
push dword [eax]
push 0x50d65c
lea edx, [ebp - 0x130]
mov eax, dword [0x531548]
mov eax, dword [eax]
mov eax, dword [eax + 0x78]
call fcn.0040adac
push dword [ebp - 0x130]
push 0x50d668
lea edx, [ebp - 0x134]
mov eax, dword [0x531374]
mov eax, dword [eax]
call fcn.0040adac
push dword [ebp - 0x134]
push 0x50d678
lea edx, [ebp - 0x138]
mov eax, dword [0x531254]
mov eax, dword [eax]
call fcn.0040adac
push dword [ebp - 0x138]
push 0x50d684
lea edx, [ebp - 0x13c]
mov eax, dword [0x531ab0]
mov eax, dword [eax]
call fcn.0040adac
push dword [ebp - 0x13c]
push 0x50d678
lea edx, [ebp - 0x140]
mov eax, dword [0x531970]
mov eax, dword [eax]
call fcn.0040adac
push dword [ebp - 0x140]
push 0x50d690
lea eax, [ebp - 0x14]
mov edx, 0x17
call fcn.00405198
mov eax, dword [0x531690]
cmp dword [eax], 0
je 0x50d459
push dword [ebp - 0x14]
push 0x50d69c
mov eax, dword [0x531690]
mov eax, dword [eax]
push dword [eax + 0x34]
push 0x50d684
mov eax, dword [0x531690]
mov eax, dword [eax]
mov eax, dword [eax + 0x52]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x144]
call fcn.0040ae98
push dword [ebp - 0x144]
push 0x50d634
mov eax, dword [0x531690]
mov eax, dword [eax]
mov eax, dword [eax + 0x5a]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x148]
call fcn.0040ae98
push dword [ebp - 0x148]
push 0x50d690
lea eax, [ebp - 0x14]
mov edx, 8
call fcn.00405198
jmp 0x50d466
lea eax, [ebp - 0x14]
mov edx, 0x50d6ac
call fcn.004050e0
push 0xff00
push 0
mov eax, dword [ebp - 0x14]
push eax
push 0x7d0
mov ebx, dword [0x53124c]
mov ebx, dword [ebx]
mov ecx, 2
mov edx, 5
mov eax, dword [ebp - 4]
call ebx
lea eax, [ebp - 0x14]
call fcn.00404e18
push 0xffffff
push 0
mov eax, dword [0x5315c4]
push dword [eax]
push 0x50d650
lea edx, [ebp - 0x150]
mov eax, dword [0x531548]
mov eax, dword [eax]
mov eax, dword [eax + 8]
call fcn.0040adac
push dword [ebp - 0x150]
push 0x50d678
lea edx, [ebp - 0x154]
mov eax, dword [0x531548]
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
call fcn.0040adac
push dword [ebp - 0x154]
lea eax, [ebp - 0x14c]
mov edx, 5
call fcn.00405198
mov eax, dword [ebp - 0x14c]
push eax
push 0x9c4
mov ebx, dword [0x53124c]
mov ebx, dword [ebx]
mov ecx, 0x244
mov edx, 8
mov eax, dword [ebp - 4]
call ebx
push 0xffffff
push 0
mov eax, dword [0x531b90]
mov eax, dword [eax]
push eax
push 0x3a98
mov ebx, dword [0x53124c]
mov ebx, dword [ebx]
mov ecx, 0x1c7
mov edx, 0x27c
mov eax, dword [ebp - 4]
call ebx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x50d59e
lea eax, [ebp - 0x154]
mov edx, 0xf
call fcn.00404e3c
lea eax, [ebp - 0x100]
mov edx, 3
call fcn.00404e3c
lea eax, [ebp - 0xec]
mov edx, 2
call fcn.00404e3c
lea eax, [ebp - 0xd4]
mov edx, 0xb
call fcn.00404e3c
lea eax, [ebp - 0x14]
call fcn.00404e18
ret