Function at 0x46e814
Capabilities:
Suspend thread

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0x42
push 0
push 0
dec ecx
jne 0x46e81d
push ecx
xchg dword [ebp - 4], ecx
push ebx
push esi
push edi
mov esi, dword [ebp + 0x14]
lea edi, [ebp - 0x21]
push ecx
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
pop ecx
movsb byte es:[edi], byte [esi]
mov ebx, ecx
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x2c], eax
mov edi, dword [ebp + 0xc]
lea eax, [ebp - 0x21]
mov edx, dword [0x44d124]
call fcn.004053cc
xor eax, eax
push ebp
push 0x46fb4f
push dword fs:[eax]
mov dword fs:[eax], esp
call fcn.00453b70
test al, al
je 0x46e895
cmp byte [0x4bc738], 0
je 0x46e895
cmp dword [0x4bc730], 0
jne 0x46e895
mov eax, dword [0x4b8d48]
mov eax, dword [eax]
cmp eax, dword [ebp - 0xc]
jne 0x46e895
mov byte [ebp - 0xb9], 1
jmp 0x46fac6
mov byte [ebp - 0xb9], 0
call fcn.0040d10c
fstp qword [0x4bc7ec]
wait
mov eax, dword [ebp - 0x2c]
mov dword [0x4b7e60], eax
mov dword [0x4bc7f4], 1
xor edx, edx
push ebp
push 0x46faa1
push dword fs:[edx]
mov dword fs:[edx], esp
call fcn.004069c4
mov byte [eax + 0x181], 1
mov ecx, dword [0x4bc6a8]
mov dl, 1
mov eax, dword [0x44d05c]
call fcn.00471dd0
mov dword [ebp - 0x6c], eax
xor edx, edx
push ebp
push 0x46fa90
push dword fs:[edx]
mov dword fs:[edx], esp
cmp dword [ebp - 0x28], 0
je 0x46e905
mov eax, dword [ebp - 0x28]
mov dword [0x4bc768], eax
test bl, bl
je 0x46e918
cmp dword [ebp - 0x28], 0
je 0x46e918
mov eax, dword [ebp - 0x28]
sub eax, 5
mov dword [ebp - 0x28], eax
call fcn.0046e4a8
cmp edi, dword [0x4b9668]
je 0x46e92d
mov esi, dword [0x4b9668]
jmp 0x46e935
mov esi, dword [0x4b8a24]
mov esi, dword [esi]
mov eax, dword [ebp - 0x28]
mov dword [0x4bc98c], eax
mov eax, dword [ebp - 0x2c]
mov dword [0x4bc988], eax
mov eax, dword [ebp - 0xc]
mov dword [0x4bc990], eax
cmp byte [0x4b7914], 0
je 0x46e9b6
call fcn.00467ba0
call fcn.00451f94
mov ebx, eax
test ebx, ebx
je 0x46ea6e
mov edx, dword [ebx + 0x23]
mov eax, dword [0x4bc6b8]
mov ecx, dword [eax]
call dword [ecx + 8]
lea eax, [ebp - 0x1a0]
call fcn.00467b54
mov edx, dword [ebp - 0x1a0]
mov eax, dword [0x4bc6b8]
call fcn.004268c8
mov eax, dword [0x4bc6b8]
mov eax, dword [eax + 0x5c]
call fcn.00404c98
push eax
call sub.kernel32.dll_GetModuleHandleA_2
mov edx, eax
mov eax, dword [0x4bc6b8]
call fcn.004268e4
jmp 0x46ea6e
xor ebx, ebx
cmp dword [ebp - 0x28], 0
je 0x46e9d2
mov dword [0x4bc7f4], 0x65
mov eax, dword [ebp - 0x28]
call fcn.00452050
mov ebx, eax
test ebx, ebx
je 0x46e9dc
cmp dword [ebx + 0x27], 0
jne 0x46ea10
mov dword [0x4bc7f4], 0x66
mov eax, edi
call fcn.00451f94
mov ebx, eax
mov dword [0x4bc7f4], 0x67
test ebx, ebx
je 0x46ea07
cmp dword [ebx + 0x27], 0
jne 0x46ea10
test esi, esi
je 0x46ea10
mov eax, esi
call fcn.00451f94
mov ebx, eax
mov edx, dword [ebx + 0x23]
mov eax, dword [0x4bc6b8]
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [0x4bc6b8]
test byte [eax + 0x331], 8
je 0x46ea55
test esi, esi
je 0x46ea55
mov edi, ebx
mov eax, esi
call fcn.00451f94
mov ebx, eax
test ebx, ebx
je 0x46ea44
cmp dword [ebx + 0x27], 0
jne 0x46ea48
mov ebx, edi
jmp 0x46ea55
mov edx, dword [ebx + 0x23]
mov eax, dword [0x4bc6b8]
mov ecx, dword [eax]
call dword [ecx + 8]
mov edx, dword [ebx + 4]
mov eax, dword [0x4bc6b8]
call fcn.004268c8
mov edx, dword [ebx]
mov eax, dword [0x4bc6b8]
call fcn.004268e4
xor edx, edx
mov eax, dword [0x4bc6b8]
call fcn.00426a8c
lea ecx, [ebp - 0x1a4]
mov dl, 0x9a
mov eax, dword [0x4bc6b8]
call fcn.00424d98
mov edx, dword [ebp - 0x1a4]
mov eax, 0x4b7e74
call fcn.00404810
lea ecx, [ebp - 0x1a8]
mov dl, 0x9b
mov eax, dword [0x4bc6b8]
call fcn.00424d98
mov edx, dword [ebp - 0x1a8]
mov eax, 0x4b7e78
call fcn.00404810
mov dword [0x4bc7f4], 0x68
call fcn.004241f8
test al, al
je 0x46eb12
mov eax, dword [0x4bc6b8]
mov dx, word [0x46fb68]
not edx
and dx, word [eax + 0x314]
mov eax, dword [0x4bc6b8]
call fcn.00426c54
mov ecx, 0x46fb74
mov dl, 0x1a
mov eax, dword [0x4bc6b8]
call fcn.00426838
mov ecx, 0x46fba0
mov dl, 0x1b
mov eax, dword [0x4bc6b8]
call fcn.00426838
mov dword [0x4bc7f4], 2
xor eax, eax
call fcn.00459910
mov byte [ebp - 0xc1], 2
mov byte [ebp - 0xc2], 0
mov eax, dword [0x4bc6b8]
mov al, byte [eax + 0x6a]
mov byte [0x4bc944], al
mov byte [0x4bc945], 0
cmp byte [ebp + 8], 2
je 0x46ec85
mov eax, dword [0x4bc6b8]
cmp byte [eax + 0x2ed], 0
je 0x46ec85
push ebp
mov eax, dword [ebp - 0x2c]
call fcn.0046adb8
pop ecx
mov dword [ebp - 0xc0], eax
mov dword [0x4bc7f4], 0xc9
cmp dword [ebp - 0xc0], 0xffffffff
je 0x46ec85
mov eax, dword [0x4bc6b8]
mov eax, dword [eax + 0x6c]
mov edx, dword [ebp - 0xc0]
call fcn.004248dc
mov al, byte [eax + 0xc]
mov byte [ebp - 0xc2], al
mov eax, dword [0x4bc6b8]
mov eax, dword [eax + 0x6c]
mov edx, dword [ebp - 0xc0]
call fcn.004248dc
mov al, byte [eax + 0xb]
mov byte [ebp - 0xc1], al
mov eax, dword [0x4bc6b8]
mov eax, dword [eax + 0x6c]
mov edx, dword [ebp - 0xc0]
call fcn.004248dc
movzx eax, byte [eax + 0xa]
cmp eax, 4
ja case.default.0x46ebdc
jmp dword [eax*4 + 0x46ebe3]
mov byte [0x4bc944], 0
jmp case.default.0x46ebdc
mov eax, dword [0x4bc6b8]
mov al, byte [eax + 0x6a]
mov byte [0x4bc944], al
jmp case.default.0x46ebdc
mov byte [0x4bc944], 1
jmp case.default.0x46ebdc
mov byte [0x4bc944], 2
jmp case.default.0x46ebdc
mov byte [0x4bc944], 3
mov byte [0x4bc945], 1
mov eax, dword [0x4bc6b8]
mov eax, dword [eax + 0x6c]
mov edx, dword [ebp - 0xc0]
call fcn.004248dc
mov eax, dword [eax + 5]
lea edx, [ebp - 0x1ac]
call fcn.00423578
cmp dword [ebp - 0x1ac], 0
je 0x46ec85
mov eax, dword [0x4bc6b8]
mov eax, dword [eax + 0x6c]
mov edx, dword [ebp - 0xc0]
call fcn.004248dc
mov eax, dword [eax + 5]
lea edx, [ebp - 0x1b0]
call fcn.00423578
mov eax, dword [ebp - 0x1b0]
call fcn.00459910
call fcn.0046e410
mov byte [ebp - 0xba], al
mov dword [0x4bc7f4], 3
cmp byte [ebp - 0xc1], 2
jne 0x46fa32
cmp dword [ebp - 0x14], 0
jne 0x46ecb5
call fcn.0044fcec
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x10], 0
jne 0x46ecc9
call fcn.004069c4
mov eax, dword [eax + 0x58]
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x20], 0
jne 0x46eceb
call fcn.004069c4
cmp dword [eax + 0x64], 0
je 0x46eceb
call fcn.004069c4
lea eax, [eax + 0x64]
mov dword [ebp - 0x20], eax
mov edx, 0xcc
mov eax, dword [ebp - 0x20]
call fcn.00423ab8
test al, al
jne 0x46ed01
xor eax, eax
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x1c], 0
jne 0x46ed15
call fcn.004069c4
lea eax, [eax + 0x130]
mov dword [ebp - 0x1c], eax
mov edx, 0x50
mov eax, dword [ebp - 0x1c]
call fcn.00423ab8
test al, al
jne 0x46ed2b
xor eax, eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0xc]
mov dword [0x4bc76c], eax
mov dword [0x4bc7f4], 4
cmp dword [0x4bc7a0], 0
je 0x46ed5e
mov edx, dword [ebp - 0x28]
add edx, 5
mov eax, dword [0x4bc7a0]
call fcn.00457c40
test al, al
jne 0x46f1a3
cmp dword [0x4b7e4c], 0
je 0x46ed71
mov eax, dword [0x4b7e4c]
call fcn.00403904
mov eax, dword [ebp - 0x18]
test eax, eax
jne 0x46ed9f
mov eax, dword [ebp - 0xc]
push eax
push 1
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
mov al, byte [0x46fbb0]
push eax
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x28]
call fcn.004596ec
mov dword [0x4b7e4c], eax
jmp 0x46eda4
mov dword [0x4b7e4c], eax
lea eax, [ebp - 0x1b4]
call fcn.00468c48
push dword [ebp - 0x1b4]
push ebp
lea eax, [ebp - 0x1b8]
call fcn.00468620
pop ecx
push dword [ebp - 0x1b8]
push ebp
lea eax, [ebp - 0x1bc]
call fcn.00468788
pop ecx
push dword [ebp - 0x1bc]
lea eax, [ebp - 0xc8]
mov edx, 3
call fcn.00404b58
mov eax, dword [0x4b7e4c]
mov eax, dword [eax + 8]
dec eax
test eax, eax
jl 0x46ef13
inc eax
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xc0], 0
mov edx, dword [ebp - 0xc0]
mov eax, dword [0x4b7e4c]
call fcn.00471c64
cmp byte [eax], 4
jne 0x46ef01
mov edx, dword [ebp - 0xc0]
mov eax, dword [0x4b7e4c]
call fcn.00471c64
mov ebx, dword [eax + 5]
xor edx, edx
mov eax, dword [0x4b7e4c]
call fcn.00471c64
cmp ebx, dword [eax + 5]
jne 0x46ef01
push dword [ebp - 0xc8]
mov edx, dword [ebp - 0xc0]
mov eax, dword [0x4b7e4c]
call fcn.00471c64
lea edx, [eax + 0x59]
lea eax, [ebp - 0x1c0]
call fcn.00404a20
push dword [ebp - 0x1c0]
mov edx, dword [ebp - 0xc0]
mov eax, dword [0x4b7e4c]
call fcn.00471c64
lea edx, [eax + 0x159]
lea eax, [ebp - 0x1c4]
call fcn.00404a20
push dword [ebp - 0x1c4]
mov edx, dword [ebp - 0xc0]
mov eax, dword [0x4b7e4c]
call fcn.00471c64
lea edx, [eax + 0x259]
lea eax, [ebp - 0x1c8]
call fcn.00404a20
push dword [ebp - 0x1c8]
mov edx, dword [ebp - 0xc0]
mov eax, dword [0x4b7e4c]
call fcn.00471c64
mov eax, dword [eax + 0x35d]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x1cc]
call fcn.0040ae50
push dword [ebp - 0x1cc]
lea eax, [ebp - 0xc8]
mov edx, 5
call fcn.00404b58
inc dword [ebp - 0xc0]
dec dword [ebp - 0xd0]
jne 0x46ee0d
mov eax, dword [ebp - 0xc8]
call fcn.00436630
movzx eax, ax
lea ecx, [ebp - 0x1d0]
mov edx, 4
call fcn.0040ae78
mov edx, dword [ebp - 0x1d0]
lea eax, [ebp - 0xc8]
call fcn.00404854
mov eax, 0x4bc940
mov edx, dword [ebp - 0xc8]
call fcn.00404810
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x6c]
call fcn.00472018
mov dword [ebp - 0xc0], eax
cmp dword [ebp - 0xc0], 0xffffffff
je 0x46ef7f
mov edx, dword [ebp - 0xc0]
mov eax, dword [ebp - 0x6c]
call fcn.00472048
call fcn.0046e544
mov eax, dword [ebp - 0x6c]
mov eax, dword [eax + 8]
dec eax
test eax, eax
jl 0x46f02b
inc eax
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xc0], 0
mov edx, dword [ebp - 0xc0]
mov eax, dword [ebp - 0x6c]
call fcn.00472048
mov eax, dword [eax]
cmp eax, dword [ebp - 0xc]
je 0x46f019
mov edx, dword [ebp - 0xc0]
mov eax, dword [ebp - 0x6c]
call fcn.00472048
call fcn.0046e5b8
test al, al
je 0x46f019
mov eax, dword [0x4bc6a8]
call fcn.00472074
xor eax, eax
push ebp
push 0x46f012
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, dword [ebp - 0xc0]
mov eax, dword [ebp - 0x6c]
call fcn.00472048
mov eax, dword [eax + 4]
push eax
call sub.kernel32.dll_SuspendThread
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x46f019
mov eax, dword [0x4bc6a8]
call fcn.00472080
ret
inc dword [ebp - 0xc0]
dec dword [ebp - 0xd0]
jne 0x46ef9f
xor eax, eax
push ebp
push 0x46f19c
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x6c]
mov eax, dword [eax + 8]
dec eax
test eax, eax
jl 0x46f121
inc eax
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xc0], 0
mov edx, dword [ebp - 0xc0]
mov eax, dword [ebp - 0x6c]
call fcn.00472048
mov eax, dword [eax]
cmp eax, dword [ebp - 0xc]
je 0x46f10f
mov edx, dword [ebp - 0xc0]
mov eax, dword [ebp - 0x6c]
call fcn.00472048
call fcn.0046e5b8
test al, al
je 0x46f10f
mov edx, dword [ebp - 0xc0]
mov eax, dword [ebp - 0x6c]
call fcn.00472048
mov ebx, eax
lea eax, [ebp - 0x19c]
xor ecx, ecx
mov edx, 0xcc
call fcn.004031a8
mov dword [ebp - 0x19c], 0x10003
lea eax, [ebp - 0x19c]
push eax
mov eax, dword [ebx + 4]
push eax
call sub.kernel32.dll_GetThreadContext
test eax, eax
je 0x46f10f
cmp dword [ebp - 0xe4], 0
je 0x46f10f
cmp dword [ebp - 0xd8], 0
je 0x46f10f
mov eax, dword [ebx + 0x14]
push eax
mov eax, dword [ebx]
push eax
push 1
push 1
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
mov al, byte [0x46fbb0]
push eax
mov ecx, dword [ebp - 0xd8]
xor edx, edx
mov eax, dword [0x4b7e4c]
call fcn.0045941c
mov eax, ebx
call fcn.0046e544
inc dword [ebp - 0xc0]
dec dword [ebp - 0xd0]
jne 0x46f059
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x46f1a3
mov eax, dword [ebp - 0x6c]
mov eax, dword [eax + 8]
dec eax
test eax, eax
jl 0x46f19b
inc eax
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xc0], 0
mov edx, dword [ebp - 0xc0]
mov eax, dword [ebp - 0x6c]
call fcn.00472048
mov eax, dword [eax]
cmp eax, dword [ebp - 0xc]
je 0x46f18d
mov edx, dword [ebp - 0xc0]
mov eax, dword [ebp - 0x6c]
call fcn.00472048
call fcn.0046e5b8
test al, al
je 0x46f18d
mov edx, dword [ebp - 0xc0]
mov eax, dword [ebp - 0x6c]
call fcn.00472048
mov eax, dword [eax + 4]
push eax
call fcn.00406f78
inc dword [ebp - 0xc0]
dec dword [ebp - 0xd0]
jne 0x46f14a
ret
mov dword [0x4bc7f4], 5
cmp byte [ebp + 8], 2
je 0x46fa1b
mov eax, dword [ebp - 0x6c]
mov eax, dword [eax + 8]
dec eax
test eax, eax
jl 0x46f27c
inc eax
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xc0], 0
mov edx, dword [ebp - 0xc0]
mov eax, dword [ebp - 0x6c]
call fcn.00472048
mov ebx, dword [eax]
call sub.kernel32.dll_GetCurrentThreadId_1
cmp ebx, eax
je 0x46f26a
mov edx, dword [ebp - 0xc0]
mov eax, dword [ebp - 0x6c]
call fcn.00472048
mov eax, dword [eax]
cmp eax, dword [ebp - 0xc]
je 0x46f26a
mov edx, dword [ebp - 0xc0]
mov eax, dword [ebp - 0x6c]
call fcn.00472048
call fcn.0046e5f8
test al, al
je 0x46f26a
mov eax, dword [0x4bc6a8]
call fcn.00472074
xor eax, eax
push ebp
push 0x46f263
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, dword [ebp - 0xc0]
mov eax, dword [ebp - 0x6c]
call fcn.00472048
mov eax, dword [eax + 4]
push eax
call sub.kernel32.dll_SuspendThread
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x46f26a
mov eax, dword [0x4bc6a8]
call fcn.00472080
ret
inc dword [ebp - 0xc0]
dec dword [ebp - 0xd0]
jne 0x46f1d7
xor edx, edx
push ebp
push 0x46f9b0
push dword fs:[edx]
mov dword fs:[edx], esp
mov dword [0x4bc7f4], 6
mov byte [0x4bc961], 1
mov eax, dword [0x4bc6b8]
test byte [eax + 0x2f0], 0x10
je 0x46f2b3
call fcn.00452d00
call fcn.004535f4
mov dword [0x4bc7f4], 7
mov eax, dword [0x4b7e4c]
mov dword [0x4bc9a4], eax
mov eax, dword [0x4bc6b8]
mov dword [0x4bc9a8], eax
mov eax, dword [ebp - 0x1c]
mov dword [0x4bc994], eax
mov eax, dword [ebp - 0x20]
mov dword [0x4bc998], eax
mov dword [0x4bc7f4], 0x2be
push ebp
call fcn.0046c0c8
pop ecx
cmp byte [0x4b7918], 0
je 0x46f32c
mov eax, 0x4bc784
mov ecx, dword [0x4bc784]
mov edx, dword [ebp - 0x38]
call fcn.00404ae4
mov byte [0x4b7918], 0
call fcn.00404200
call fcn.00404200
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x46fac6
mov eax, 0x4bc99c
mov edx, dword [0x4bc784]
call fcn.00404810
mov dword [0x4bc7f4], 0x2bf
mov eax, dword [0x4b7e44]
mov dword [0x4bc9a0], eax
mov dword [0x4bc7f4], 0x2c0
mov dword [0x4bc780], 0x4bc988
mov al, 1
call fcn.00455fa4
mov dword [0x4bc7f4], 0x2c1
call fcn.004517bc
mov dword [0x4bc7f4], 0x2c2
push ebp
call fcn.0046e650
pop ecx
call fcn.00453938
test al, al
je 0x46f3c0
lea eax, [ebp - 0x1d8]
call fcn.00456434
mov eax, dword [ebp - 0x1d8]
lea edx, [ebp - 0x1d4]
call fcn.00456750
mov edx, dword [ebp - 0x1d4]
mov eax, 0x4bc720
call fcn.00404810
mov eax, 0x4bd060
mov edx, dword [0x4bc720]
call fcn.00404810
push ebp
call fcn.0046e450
pop ecx
test al, al
je 0x46f3e5
mov eax, 0x45979c
call fcn.00457b8c
cmp byte [ebp - 0x21], 0
jne 0x46f3f7
mov eax, 0x456a60
call fcn.00457b8c
jmp 0x46f401
mov eax, 0x456b30
call fcn.00457b8c
mov dword [0x4bc7f4], 8
cmp byte [0x4bc961], 0
je 0x46f915
call fcn.00462d30
mov eax, dword [0x4bc6b8]
cmp byte [eax + 0x324], 0
je 0x46f476
call fcn.0040d10c
add esp, 0xfffffff8
fstp qword [esp]
wait
lea eax, [ebp - 0x1dc]
call fcn.004233dc
mov edx, dword [ebp - 0x1dc]
mov eax, dword [0x4bc7e8]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov eax, dword [0x4bc7e8]
mov edx, dword [eax]
call dword [edx + 0x14]
mov edx, dword [0x4bc6b8]
cmp eax, dword [edx + 0x328]
jle 0x46f476
xor edx, edx
mov eax, dword [0x4bc7e8]
mov ecx, dword [eax]
call dword [ecx + 0x48]
mov eax, dword [0x4bc9c4]
mov edx, dword [eax]
call dword [edx + 0x44]
mov eax, 0x456f58
call fcn.00457b8c
mov eax, dword [0x4bc9c4]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
je 0x46f4cb
mov eax, dword [0x4bc6b8]
test byte [eax + 0x69], 0x80
je 0x46f4cb
lea ecx, [ebp - 0x1e0]
mov dl, 0x5b
mov eax, dword [0x4bc6b8]
call fcn.00424d98
mov edx, dword [ebp - 0x1e0]
mov ecx, dword [0x4bc9c4]
mov eax, 7
call fcn.0045a3cc
mov dword [0x4bc7f4], 9
inc dword [0x4bc6c4]
mov dword [0x4bc7f4], 0xa
lea edx, [ebp - 0x1e8]
mov eax, dword [ebp - 0x2c]
call fcn.00468044
mov eax, dword [ebp - 0x1e8]
lea edx, [ebp - 0x1e4]
call fcn.00467cb0
mov edx, dword [ebp - 0x1e4]
mov eax, 0x4bc778
call fcn.00404810
mov byte [ebp - 0xbb], 0
mov dword [0x4bc7f4], 0xb
cmp byte [0x4bc945], 0
jne 0x46f53b
mov eax, dword [0x4bc6b8]
mov al, byte [eax + 0x6a]
mov byte [0x4bc944], al
lea eax, [ebp - 0x1f8]
call fcn.0045b728
lea esi, [ebp - 0x1f8]
mov edi, 0x4bcc30
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
cmp byte [0x4bc944], 0
je 0x46f724
mov dword [0x4bc7f4], 0xc
mov byte [0x4bc960], 1
call fcn.004517bc
mov eax, 0x46ae14
call fcn.00457b8c
mov eax, dword [0x4bc6b8]
cmp byte [eax + 0x30c], 0
jne 0x46f5a2
mov eax, dword [0x4bc6b8]
cmp byte [eax + 0x30d], 0
jne 0x46f5a2
xor eax, eax
jmp 0x46f5a4
mov al, 1
mov byte [0x4bc790], al
mov eax, dword [0x4bc6b8]
test byte [eax + 0x2f1], 0x10
setne al
mov byte [0x4bc792], al
mov byte [0x4bc791], 0
cmp byte [0x4bc960], 0
je 0x46f780
mov dword [0x4bc7f4], 0xd
mov al, byte [ebp + 0x10]
call fcn.0046e500
sub al, 1
jb 0x46f693
je 0x46f624
dec al
jne 0x46f70e
call fcn.00453b70
test al, al
je 0x46f607
cmp dword [0x4bc730], 0
je 0x46f618
push ebp
mov eax, dword [0x4bc784]
call fcn.0046e270
pop ecx
jmp 0x46f70e
mov byte [ebp - 0xb9], 1
jmp 0x46f70e
xor eax, eax
push ebp
push 0x46f674
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x1fc]
mov ecx, dword [0x4bc784]
mov edx, dword [ebp - 0x38]
call fcn.00404ae4
mov edx, dword [ebp - 0x1fc]
mov eax, dword [0x4b89fc]
call fcn.00404eb4
call fcn.004033cc
call fcn.004028d4
mov byte [0x4bc960], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x46f70e
xor edx, edx
push ebp
push 0x46f6f1
push dword fs:[edx]
mov dword fs:[edx], esp
cmp byte [0x4bc944], 3
sete byte [ebp - 0xbb]
mov byte [0x4bcc1d], 0
cmp byte [0x4bc944], 0
setne al
call fcn.00461d5c
xor eax, eax
cmp byte [0x4bc944], 0
je 0x46f6d7
mov byte [0x4bcc1d], 1
cmp byte [0x4bc944], 0
jne 0x46f6c0
mov byte [0x4bc960], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x46f70e
mov dword [0x4bc7f4], 0xe
mov eax, 0x46ae38
call fcn.00457b8c
jmp 0x46f780
mov eax, dword [0x4bc6b8]
cmp byte [eax + 0x30c], 0
jne 0x46f744
mov eax, dword [0x4bc6b8]
cmp byte [eax + 0x30d], 0
jne 0x46f744
xor eax, eax
jmp 0x46f746
mov al, 1
mov byte [0x4bc790], al
mov eax, dword [0x4bc6b8]
test byte [eax + 0x2f1], 0x10
setne al
mov byte [0x4bc792], al
call fcn.00453b7c
test al, al
je 0x46f780
push ebp
lea eax, [ebp - 0x200]
call fcn.00459924
mov eax, dword [ebp - 0x200]
call fcn.0046e270
pop ecx
cmp byte [ebp - 0xbb], 0
je 0x46f78e
call fcn.0045abe4
mov eax, dword [0x4bc6b8]
test byte [eax + 0x2f0], 2
je 0x46f7c9
lea ecx, [ebp - 0x204]
mov dl, 0x7b
mov eax, dword [0x4bc6b8]
call fcn.00424d98
mov edx, dword [ebp - 0x204]
mov eax, dword [0x4bc6b8]
mov ecx, dword [eax + 0x344]
mov eax, 7
call fcn.0045a270
call fcn.0046e410
test al, al
je 0x46f7e8
lea eax, [ebp - 0x208]
call fcn.0045620c
mov eax, dword [ebp - 0x208]
call fcn.0046343c
call fcn.004634cc
mov dword [0x4bc7f4], 0xf
mov eax, dword [0x4bc6b8]
test byte [eax + 0x2f0], 4
je 0x46f8ae
call fcn.00455ebc
xor eax, eax
push ebp
push 0x46f852
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0xcc]
push eax
mov eax, dword [0x4bc9d4]
call fcn.00440a2c
mov ecx, eax
dec ecx
mov edx, 0x46fbd8
mov eax, dword [0x4bc9d4]
call fcn.004407c4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x46f859
call fcn.00455f88
ret
call fcn.0046e410
mov byte [ebp - 0xba], al
mov eax, dword [0x4bc6b8]
cmp byte [eax + 0x2ef], 0
je 0x46f8cc
call fcn.0046ab04
cmp byte [0x4bc793], 0
je 0x46f8df
mov eax, dword [0x4bc784]
call fcn.00451d20
mov dword [0x4bc7f4], 0x10
cmp byte [ebp - 0xba], 0
je 0x46f8f7
call fcn.00466ea4
cmp byte [ebp - 0xba], 0
je 0x46f90e
mov eax, dword [0x4bc6b8]
test byte [eax + 0x2f1], 0x80
jne 0x46f91c
call fcn.00466ef8
jmp 0x46f91c
mov byte [ebp - 0xb9], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x46f9ba
mov eax, dword [ebp - 0x6c]
mov eax, dword [eax + 8]
dec eax
test eax, eax
jl 0x46f9af
inc eax
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xc0], 0
mov edx, dword [ebp - 0xc0]
mov eax, dword [ebp - 0x6c]
call fcn.00472048
mov ebx, dword [eax]
call sub.kernel32.dll_GetCurrentThreadId_1
cmp ebx, eax
je 0x46f9a1
mov edx, dword [ebp - 0xc0]
mov eax, dword [ebp - 0x6c]
call fcn.00472048
mov eax, dword [eax]
cmp eax, dword [ebp - 0xc]
je 0x46f9a1
mov edx, dword [ebp - 0xc0]
mov eax, dword [ebp - 0x6c]
call fcn.00472048
call fcn.0046e5f8
test al, al
je 0x46f9a1
mov edx, dword [ebp - 0xc0]
mov eax, dword [ebp - 0x6c]
call fcn.00472048
mov eax, dword [eax + 4]
push eax
call fcn.00406f78
inc dword [ebp - 0xc0]
dec dword [ebp - 0xd0]
jne 0x46f945
ret
mov eax, dword [0x4bc6b8]
test byte [eax + 0x331], 0x80
je 0x46fa42
mov byte [ebp - 0xb9], 1
jmp 0x46fa42
cmp byte [ebp - 0xc1], 1
jne 0x46fa42
mov byte [ebp - 0xb9], 1
mov dword [0x4bc7f4], 0x12
cmp byte [ebp + 8], 2
je 0x46fa6e
cmp byte [ebp - 0xba], 0
je 0x46fa69
mov eax, dword [0x4bc6b8]
test byte [eax + 0x2f1], 0x80
jne 0x46fa6e
call fcn.00467008
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x46fa97
mov eax, dword [ebp - 0x6c]
call fcn.00403904
call fcn.004069c4
mov byte [eax + 0x181], 0
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x46fb59
lea eax, [ebp - 0x218]
mov edx, 8
call fcn.004047e0
lea eax, [ebp - 0x1e8]
mov edx, 0x13
call fcn.004047e0
lea eax, [ebp - 0xcc]
mov edx, 2
call fcn.004047e0
lea eax, [ebp - 0xb8]
call fcn.004047bc
lea eax, [ebp - 0x78]
call fcn.004047bc
lea eax, [ebp - 0x68]
call fcn.004047bc
lea eax, [ebp - 0x60]
mov edx, 3
call fcn.004047e0
lea eax, [ebp - 0x3c]
mov edx, 2
call fcn.004047e0
lea eax, [ebp - 0x30]
call fcn.004047bc
lea eax, [ebp - 0x21]
mov edx, dword [0x44d124]
call fcn.00405288
ret