Function at 0x50f438
Capabilities:
Check for time delay via gettickcount

Disassembly:
or esp, 3
add byte [eax], al
add bh, al
or dword [ebx + eax + 0x60000], 0
add byte [ebx - 0x3d], bl
mov eax, eax
push ebp
mov ebp, esp
mov ecx, 0x15
push 0
push 0
dec ecx
jne 0x50f440
push ebx
push esi
push edi
mov dword [ebp - 0x14], eax
xor eax, eax
push ebp
push 0x510142
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x14]
mov byte [eax + 0x3ce], 0
mov eax, dword [0x55ab90]
mov eax, dword [eax]
xor edx, edx
call fcn.0041d1e4
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
lea ebx, [eax + 0x108]
cmp byte [ebx + 8], 1
jne 0x50fb90
mov ecx, dword [ebp - 0x14]
mov dl, 1
mov eax, dword [0x53f834]
call fcn.0054307c
mov esi, eax
mov eax, dword [ebx + 0xc]
mov dword [esi + 0x39c], eax
mov eax, esi
mov edx, dword [eax]
call dword [edx + 0xfc]
push 0
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x4c]
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x48]
push eax
mov eax, dword [0x55aca0]
mov eax, dword [eax]
push eax
mov eax, dword [0x55ad54]
mov eax, dword [eax]
push eax
push 0
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x1b4]
push eax
call sub.user32.dll_SetWindowPos
lea ecx, [ebp - 0x28]
mov edx, dword [esi + 0x3a0]
mov eax, dword [ebx + 0xc]
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, dword [ebp - 0x28]
lea edx, [ebp - 0x24]
call fcn.0040a494
mov eax, dword [ebp - 0x24]
mov edx, 0x510158
call fcn.00405b64
jne 0x50fb03
mov eax, dword [ebp - 0x14]
mov byte [eax + 0x3d0], 0
mov eax, dword [ebp - 0x14]
mov byte [eax + 0x3d1], 0
mov eax, dword [ebp - 0x14]
xor edx, edx
mov dword [eax + 0x3d4], edx
mov eax, dword [ebp - 0x14]
mov byte [eax + 0x3ce], 1
push 0
mov cl, 1
mov dl, 1
mov eax, dword [0x54a740]
call fcn.0054a7a4
mov esi, eax
lea ecx, [ebp - 0x2c]
mov eax, dword [0x55a778]
mov eax, dword [eax]
mov eax, dword [eax + 0x360]
mov edx, 0x510164
call fcn.00486174
mov edx, dword [ebp - 0x2c]
mov eax, esi
call fcn.0054aa00
lea ecx, [ebp - 0x30]
mov eax, dword [0x55a778]
mov eax, dword [eax]
mov eax, dword [eax + 0x360]
mov edx, 0x510180
call fcn.00486174
mov edx, dword [ebp - 0x30]
mov eax, esi
call fcn.0054aa60
lea ecx, [ebp - 0x34]
mov eax, dword [0x55a778]
mov eax, dword [eax]
mov eax, dword [eax + 0x360]
mov edx, 0x510164
call fcn.00486174
mov edx, dword [ebp - 0x34]
mov eax, esi
call fcn.0054a9a8
lea eax, [ebp - 0x38]
push eax
movzx eax, byte [0x5101bc]
push eax
lea eax, [ebp - 0x44]
push eax
lea ecx, [ebp - 0x48]
mov eax, dword [0x55a778]
mov eax, dword [eax]
mov eax, dword [eax + 0x360]
mov edx, 0x5101c8
call fcn.00486174
mov eax, dword [ebp - 0x48]
xor ecx, ecx
mov edx, 0x5101d8
call fcn.00410e44
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x40], eax
mov byte [ebp - 0x3c], 0xb
lea eax, [ebp - 0x40]
push eax
lea ecx, [ebp - 0x4c]
mov eax, dword [0x55a778]
mov eax, dword [eax]
mov eax, dword [eax + 0x360]
mov edx, 0x5101e4
call fcn.00486174
mov eax, dword [ebp - 0x4c]
xor ecx, ecx
pop edx
call fcn.0040c558
mov edx, dword [ebp - 0x38]
mov eax, esi
call fcn.0054aae8
xor edx, edx
mov eax, esi
call fcn.0054ac2c
xor edx, edx
mov eax, esi
call fcn.0054ae10
mov dl, 1
mov eax, esi
call fcn.0054aec4
xor edx, edx
mov eax, esi
call fcn.0054accc
mov edx, 0x1f4
mov eax, esi
call fcn.0054acec
mov edx, 0x64
mov eax, esi
call fcn.0054acfc
mov eax, esi
call fcn.0054a880
mov edx, 0x5101c8
lea ecx, [ebp - 0x50]
mov eax, dword [0x55a778]
mov eax, dword [eax]
mov eax, dword [eax + 0x360]
call fcn.00486174
mov edx, dword [ebp - 0x50]
mov eax, esi
call fcn.0054af64
mov eax, dword [0x55ab88]
mov eax, dword [eax]
call fcn.0047bd68
mov eax, esi
call fcn.004268a8
mov eax, dword [ebp - 0x14]
call fcn.0047811c
jmp 0x50f6c1
mov eax, dword [0x55ab88]
mov eax, dword [eax]
call fcn.0047bd68
push 0x32
call sub.kernel32.dll_Sleep_2
mov eax, esi
call fcn.0054a930
test al, al
jne 0x50f6d8
mov eax, dword [ebp - 0x14]
cmp byte [eax + 0x3d0], 0
je 0x50f6ae
lea ecx, [ebp - 0x54]
mov eax, dword [0x55a778]
mov eax, dword [eax]
mov eax, dword [eax + 0x360]
mov edx, 0x51023c
call fcn.00486174
mov edx, dword [ebp - 0x54]
mov eax, esi
call fcn.0054ac2c
lea ecx, [ebp - 0x5c]
mov edx, dword [ebx + 4]
mov eax, dword [0x55a6d0]
mov eax, dword [eax]
call fcn.004fe830
mov eax, dword [ebp - 0x5c]
lea ecx, [ebp - 0x58]
mov edx, dword [ebx]
call fcn.004fe830
mov eax, dword [ebp - 0x58]
call fcn.0053739c
mov ebx, eax
mov eax, dword [ebp - 0x14]
cmp byte [eax + 0x3d0], 0
jne 0x50f754
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 0x14]
mov dword [edx + 0x3d8], eax
jmp 0x50f754
mov eax, dword [0x55ab88]
mov eax, dword [eax]
call fcn.0047bd68
push 0x32
call sub.kernel32.dll_Sleep_2
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 0x14]
sub eax, dword [edx + 0x3d8]
cmp eax, 0x7d0
jb 0x50f741
xor edx, edx
mov eax, esi
call fcn.0054ac2c
mov eax, dword [ebp - 0x14]
mov byte [eax + 0x3ce], 0
lea ecx, [ebp - 0x60]
mov eax, dword [0x55a778]
mov eax, dword [eax]
mov eax, dword [eax + 0x360]
mov edx, 0x510274
call fcn.00486174
mov edx, dword [ebp - 0x60]
mov eax, esi
call fcn.0054af64
test ebx, ebx
jne 0x50fa7d
mov eax, dword [ebp - 0x14]
mov byte [eax + 0x3d1], 0
mov eax, dword [ebp - 0x14]
mov byte [eax + 0x3cf], 0
mov eax, dword [ebp - 0x14]
mov byte [eax + 0x3d0], 0
mov eax, dword [ebp - 0x14]
mov byte [eax + 0x3d2], 0
mov eax, dword [ebp - 0x14]
mov byte [eax + 0x3ce], 1
lea ecx, [ebp - 0x64]
mov eax, dword [0x55a778]
mov eax, dword [eax]
mov eax, dword [eax + 0x360]
mov edx, 0x510284
call fcn.00486174
mov edx, dword [ebp - 0x64]
mov eax, esi
call fcn.0054aae8
mov edx, 0xc8
mov eax, esi
call fcn.0054acfc
jmp 0x50f881
mov eax, dword [0x55ab88]
mov eax, dword [eax]
call fcn.0047bd68
push 0x32
call sub.kernel32.dll_Sleep_2
mov eax, dword [ebp - 0x14]
cmp byte [eax + 0x3d1], 0
je 0x50f881
jmp 0x50f840
mov eax, dword [0x55ab88]
mov eax, dword [eax]
call fcn.0047bd68
push 0x32
call sub.kernel32.dll_Sleep_2
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 0x14]
sub eax, dword [edx + 0x3d8]
cmp eax, 0x7d0
jb 0x50f82d
mov eax, dword [ebp - 0x14]
cmp byte [eax + 0x3d0], 0
je 0x50f877
mov eax, dword [ebp - 0x14]
mov byte [eax + 0x3d1], 0
mov eax, dword [ebp - 0x14]
mov byte [eax + 0x3d0], 0
jmp 0x50f881
mov eax, dword [ebp - 0x14]
mov byte [eax + 0x3d2], 1
mov eax, esi
call fcn.0054a930
test al, al
jne 0x50f89c
mov eax, dword [ebp - 0x14]
cmp byte [eax + 0x3d2], 0
je 0x50f80c
mov eax, esi
call fcn.0054a930
test al, al
je 0x50f8f3
mov eax, esi
call fcn.0054a8c0
mov eax, esi
call fcn.004047e0
push 0
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x4c]
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x48]
push eax
mov eax, dword [0x55aca0]
mov eax, dword [eax]
push eax
mov eax, dword [0x55ad54]
mov eax, dword [eax]
push eax
push 0
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x1b4]
push eax
call sub.user32.dll_SetWindowPos
mov eax, dword [ebp - 0x14]
call fcn.00478124
jmp 0x51010a
lea ecx, [ebp - 0x68]
mov eax, dword [0x55a778]
mov eax, dword [eax]
mov eax, dword [eax + 0x360]
mov edx, 0x5102ac
call fcn.00486174
mov edx, dword [ebp - 0x68]
mov eax, esi
call fcn.0054aae8
mov edx, 0x12c
mov eax, esi
call fcn.0054acfc
call fcn.005374cc
lea ecx, [ebp - 0x6c]
mov eax, dword [0x55a778]
mov eax, dword [eax]
mov eax, dword [eax + 0x360]
mov edx, 0x5102d4
call fcn.00486174
mov edx, dword [ebp - 0x6c]
mov eax, esi
call fcn.0054aae8
lea ecx, [ebp - 0x70]
mov eax, dword [0x55a778]
mov eax, dword [eax]
mov eax, dword [eax + 0x360]
mov edx, 0x510318
call fcn.00486174
mov edx, dword [ebp - 0x70]
mov eax, esi
call fcn.0054ac2c
mov edx, 0x190
mov eax, esi
call fcn.0054acfc
jmp 0x50f991
mov eax, dword [0x55ab88]
mov eax, dword [eax]
call fcn.0047bd68
push 0x32
call sub.kernel32.dll_Sleep_2
mov eax, esi
call fcn.0054a930
test al, al
jne 0x50f9a8
mov eax, dword [ebp - 0x14]
cmp byte [eax + 0x3cf], 0
je 0x50f97e
mov eax, dword [ebp - 0x14]
mov byte [eax + 0x3ce], 0
mov eax, esi
call fcn.0054a930
test al, al
je 0x50fa09
mov eax, esi
call fcn.0054a8c0
mov eax, esi
call fcn.004047e0
push 0
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x4c]
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x48]
push eax
mov eax, dword [0x55aca0]
mov eax, dword [eax]
push eax
mov eax, dword [0x55ad54]
mov eax, dword [eax]
push eax
push 0
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x1b4]
push eax
call sub.user32.dll_SetWindowPos
mov eax, dword [ebp - 0x14]
call fcn.00478124
jmp 0x51010a
lea ecx, [ebp - 0x74]
mov eax, dword [0x55a778]
mov eax, dword [eax]
mov eax, dword [eax + 0x360]
mov edx, 0x510368
call fcn.00486174
mov edx, dword [ebp - 0x74]
mov eax, esi
call fcn.0054aae8
mov edx, 0x1f4
mov eax, esi
call fcn.0054acfc
mov eax, esi
call fcn.0054a8c0
mov eax, esi
call fcn.004047e0
push 0
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x4c]
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x48]
push eax
mov eax, dword [0x55aca0]
mov eax, dword [eax]
push eax
mov eax, dword [0x55ad54]
mov eax, dword [eax]
push eax
push 0
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x1b4]
push eax
call sub.user32.dll_SetWindowPos
jmp 0x50fb90
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp - 0x7c]
mov eax, dword [0x55a778]
mov eax, dword [eax]
mov eax, dword [eax + 0x360]
mov edx, 0x51038c
call fcn.00486174
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 0x40], ebx
mov byte [ebp - 0x3c], 0
lea edx, [ebp - 0x40]
xor ecx, ecx
call fcn.0040c558
mov eax, dword [ebp - 0x78]
call fcn.0044d130
mov eax, esi
call fcn.0054a8c0
mov eax, esi
call fcn.004047e0
push 0
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x4c]
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x48]
push eax
mov eax, dword [0x55aca0]
mov eax, dword [eax]
push eax
mov eax, dword [0x55ad54]
mov eax, dword [eax]
push eax
push 0
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x1b4]
push eax
call sub.user32.dll_SetWindowPos
mov eax, dword [ebp - 0x14]
call fcn.00478124
jmp 0x51010a
lea ecx, [ebp - 0x84]
mov edx, dword [esi + 0x3a0]
mov eax, dword [ebx + 0xc]
mov esi, dword [eax]
call dword [esi + 0xc]
mov eax, dword [ebp - 0x84]
lea edx, [ebp - 0x80]
call fcn.0040a494
mov eax, dword [ebp - 0x80]
mov edx, 0x5103c4
call fcn.00405b64
jne 0x50fb90
mov dx, 0xfff5
mov eax, dword [ebp - 0x14]
call fcn.0045c774
lea ecx, [ebp - 0x8c]
mov edx, dword [ebx + 4]
mov eax, dword [0x55a6d0]
mov eax, dword [eax]
call fcn.004fe830
mov eax, dword [ebp - 0x8c]
lea ecx, [ebp - 0x88]
mov edx, dword [ebx]
call fcn.004fe830
mov eax, dword [ebp - 0x88]
call fcn.0053739c
mov ebx, eax
test ebx, ebx
je 0x50fb90
xor edx, edx
mov eax, dword [ebp - 0x14]
call fcn.0045c774
mov eax, dword [ebp - 0x14]
call fcn.00478124
jmp 0x51010a
mov eax, dword [ebp - 0x14]
mov byte [eax + 0x3cd], 1
mov eax, dword [ebp - 0x14]
call fcn.00478124
mov dx, 0xfff5
mov eax, dword [ebp - 0x14]
call fcn.0045c774
mov byte [ebp - 0x1d], 0
mov byte [ebp - 0x20], 1
xor edi, edi
mov eax, dword [0x55ab90]
mov eax, dword [eax]
mov esi, dword [eax + 8]
dec esi
test esi, esi
jl 0x50fbea
inc esi
xor ebx, ebx
mov eax, dword [0x55ab90]
mov eax, dword [eax]
mov edx, ebx
call fcn.0041d1e4
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
cmp byte [eax + 0x4c], 0
je 0x50fbe6
mov edi, ebx
inc ebx
dec esi
jne 0x50fbca
mov eax, dword [0x55ab90]
mov eax, dword [eax]
mov edx, edi
call fcn.0041d1e4
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0xc]
call fcn.0040573c
mov eax, dword [ebp - 0x18]
cmp dword [eax + 0x64], 0
je 0x50fc42
lea edx, [ebp - 0x90]
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0x64]
call fcn.0040a798
mov eax, dword [ebp - 0x90]
push eax
lea edx, [ebp - 0x94]
mov eax, 0x5103d8
call fcn.0040a798
mov edx, dword [ebp - 0x94]
pop eax
call fcn.00405b64
jne 0x50fcbf
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0x60]
call fcn.00406d0c
test eax, eax
jle 0x50fccd
xor ebx, ebx
jmp 0x50fcae
mov esi, ebx
add esi, esi
add esi, esi
add esi, esi
sub esi, ebx
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + esi*4 + 4]
lea edx, [ebp - 0x98]
call fcn.0040a798
mov eax, dword [ebp - 0x98]
push eax
mov eax, 0x5103d8
lea edx, [ebp - 0x9c]
call fcn.0040a798
mov edx, dword [ebp - 0x9c]
pop eax
call fcn.00405b64
je 0x50fcad
lea eax, [ebp - 0xc]
mov edx, dword [ebp - 0x18]
mov edx, dword [edx + 0x60]
mov edx, dword [edx + esi*4 + 4]
call fcn.004057d4
jmp 0x50fccd
inc ebx
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0x60]
call fcn.00406d0c
cmp ebx, eax
jl 0x50fc55
jmp 0x50fccd
lea eax, [ebp - 0xc]
mov edx, dword [ebp - 0x18]
mov edx, dword [edx + 0x64]
call fcn.004057d4
mov eax, dword [ebp - 0x18]
test byte [eax + 0x68], 1
jne 0x50fcda
mov byte [ebp - 0x1d], 1
xor edx, edx
mov eax, dword [ebp - 0x14]
call fcn.0045c774
cmp byte [ebp - 0x1d], 0
jne 0x50ff0d
jmp 0x50ff03
mov byte [ebp - 0x1d], 1
mov eax, dword [ebp - 0x18]
test byte [eax + 0x68], 1
je 0x50fdca
mov ecx, dword [0x55a730]
mov eax, dword [0x55ab88]
mov eax, dword [eax]
mov edx, dword [0x508754]
call fcn.0047be94
xor eax, eax
push ebp
push 0x50fdc3
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x14]
mov byte [eax + 0x3cd], 1
mov eax, dword [ebp - 0x14]
call fcn.0047811c
lea eax, [ebp - 0x10]
push eax
lea ecx, [ebp - 0xc]
lea edx, [ebp - 0x18]
mov eax, dword [0x55a730]
mov eax, dword [eax]
call fcn.0050947c
dec eax
je 0x50fd85
dec eax
je 0x50fd77
dec eax
jne 0x50fd91
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x384]
mov si, 0xffeb
call fcn.004049dc
call fcn.00405140
jmp 0x51010a
mov byte [ebp - 0x1d], 1
mov eax, dword [ebp - 0x14]
call fcn.00478124
jmp 0x50fd91
mov byte [ebp - 0x1d], 1
mov eax, dword [ebp - 0x14]
call fcn.00478124
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x50fdca
mov eax, dword [ebp - 0x14]
call fcn.004646fc
push eax
call sub.user32.dll_SetForegroundWindow
mov eax, dword [ebp - 0x14]
mov byte [eax + 0x3cd], 0
mov eax, dword [0x55a730]
mov eax, dword [eax]
call fcn.004047e0
ret
mov eax, dword [ebp - 0x18]
test byte [eax + 0x68], 1
je 0x50ff03
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0x10]
mov edx, 0x5103fc
call fcn.00405b64
je 0x50fe23
lea edx, [ebp - 0xa0]
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0x10]
call fcn.0040a798
mov eax, dword [ebp - 0xa0]
push eax
lea edx, [ebp - 0xa4]
mov eax, 0x51040c
call fcn.0040a798
mov edx, dword [ebp - 0xa4]
pop eax
call fcn.00405b64
jne 0x50ff03
mov edx, dword [ebp - 0x10]
mov eax, 0x510158
call fcn.00405d18
test eax, eax
jle 0x50ff03
mov ecx, dword [0x55a934]
mov eax, dword [0x55ab88]
mov eax, dword [eax]
mov edx, dword [0x509974]
call fcn.0047be94
xor eax, eax
push ebp
push 0x50fefc
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x14]
mov byte [eax + 0x3cd], 1
mov eax, dword [ebp - 0x14]
call fcn.0047811c
lea edx, [ebp - 0x18]
mov eax, dword [0x55a934]
mov eax, dword [eax]
call fcn.0050a764
dec eax
je 0x50feb2
dec eax
je 0x50fea4
dec eax
jne 0x50febe
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x384]
mov si, 0xffeb
call fcn.004049dc
call fcn.00405140
jmp 0x51010a
mov byte [ebp - 0x1d], 0
mov eax, dword [ebp - 0x14]
call fcn.00478124
jmp 0x50febe
mov byte [ebp - 0x1d], 1
mov eax, dword [ebp - 0x14]
call fcn.00478124
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x50ff03
mov eax, dword [ebp - 0x14]
call fcn.004646fc
push eax
call sub.user32.dll_SetForegroundWindow
mov eax, dword [0x55ac90]
mov eax, dword [eax]
call fcn.0047811c
mov eax, dword [ebp - 0x14]
mov byte [eax + 0x3cd], 0
mov eax, dword [0x55a934]
mov eax, dword [eax]
call fcn.004047e0
ret
cmp byte [ebp - 0x1d], 0
je 0x50fcf3
mov eax, dword [0x55aea4]
mov eax, dword [eax]
movzx esi, word [eax + 0x44]
cmp byte [ebp - 0x20], 0
je 0x51000a
mov eax, dword [0x55aea4]
mov eax, dword [eax]
mov dx, 0xfff5
call fcn.004798bc
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x37c]
mov edx, dword [eax]
call dword [edx + 0x50]
mov byte [ebp - 0x1e], al
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x380]
mov edx, dword [eax]
call dword [edx + 0x50]
mov byte [ebp - 0x1f], al
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x3a4]
mov edx, dword [eax]
call dword [edx + 0x50]
mov ebx, eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x37c]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0x68]
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x380]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0x68]
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x3a4]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0x68]
cmp dword [ebp - 0xc], 0
je 0x50ffd6
lea eax, [ebp - 0x18]
mov dword [ebp - 0x1c], eax
lea ecx, [ebp - 8]
lea edx, [ebp - 4]
mov eax, dword [ebp - 0x18]
call fcn.00544244
mov eax, dword [ebp - 8]
push eax
push 0
lea eax, [ebp - 0x1c]
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0xc]
call fcn.0054c55c
mov edx, dword [0x55acdc]
mov byte [edx], al
mov eax, dword [0x55ac90]
mov eax, dword [eax]
call fcn.0047811c
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x37c]
movzx edx, byte [ebp - 0x1e]
mov ecx, dword [eax]
call dword [ecx + 0x68]
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x380]
movzx edx, byte [ebp - 0x1f]
mov ecx, dword [eax]
call dword [ecx + 0x68]
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x3a4]
mov edx, ebx
mov ecx, dword [eax]
call dword [ecx + 0x68]
mov eax, dword [0x55aea4]
mov eax, dword [eax]
mov edx, esi
call fcn.004798bc
mov eax, dword [ebp - 0x14]
movzx edx, byte [eax + 0x3c4]
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x3c8]
call fcn.0050e094
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x3ac]
mov edx, dword [eax]
call dword [edx + 0xd8]
mov ecx, eax
xor cl, 1
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 0x3a0]
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x3c8]
call fcn.0050d240
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x3c8]
mov esi, dword [eax + 8]
dec esi
test esi, esi
jl 0x51010a
inc esi
xor ebx, ebx
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x3c8]
mov edx, ebx
call fcn.0041d1e4
mov edx, eax
lea eax, [ebp - 0xa8]
call fcn.004059a0
mov eax, dword [ebp - 0xa8]
mov edx, dword [ebp - 0x18]
mov edx, dword [edx + 0x44]
call fcn.00405b64
jne 0x510102
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x3a0]
mov edx, ebx
mov ecx, dword [eax]
call dword [ecx + 0xe0]
mov eax, dword [ebp - 0x14]
mov edi, dword [eax + 0x3a0]
mov eax, edi
mov edx, dword [eax]
call dword [edx + 0xdc]
mov edx, eax
mov eax, dword [edi + 0x278]
call fcn.004a4a54
mov dl, 1
call fcn.004a42f8
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x3a0]
mov edx, dword [eax]
call dword [edx + 0x50]
test al, al
je 0x510102
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x3a0]
mov edx, dword [eax]
call dword [edx + 0xd4]
inc ebx
dec esi
jne 0x510075
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x510149
lea eax, [ebp - 0xa8]
mov edx, 0x1a
call fcn.00405760
lea eax, [ebp - 0x38]
mov edx, 6
call fcn.00405760
lea eax, [ebp - 0x10]
mov edx, 4
call fcn.00405760
ret