Function at 0x4a6380
Capabilities:
Suspend thread

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0x44
push 0
push 0
dec ecx
jne 0x4a6389
push ecx
xchg dword [ebp - 4], ecx
push ebx
push esi
push edi
mov esi, dword [ebp + 0x14]
lea edi, [ebp - 0x35]
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 - 0x3c], edx
mov dword [ebp - 0x40], eax
mov edi, dword [ebp + 0xc]
lea eax, [ebp - 0x35]
mov edx, dword [0x47df9c]
call fcn.004085cc
xor eax, eax
push ebp
push 0x4a77a4
push dword fs:[eax]
mov dword fs:[eax], esp
call fcn.00486830
test al, al
je 0x4a6401
cmp byte [0x531e08], 0
je 0x4a6401
cmp dword [0x531e00], 0
jne 0x4a6401
mov eax, dword [0x529e40]
mov eax, dword [eax]
cmp eax, dword [ebp - 0x20]
jne 0x4a6401
mov byte [ebp - 0xc1], 1
jmp 0x4a76aa
mov byte [ebp - 0xc1], 0
call fcn.004150c8
fstp qword [0x531ebc]
wait
mov eax, dword [ebp - 0x40]
mov dword [0x528a14], eax
mov dword [0x531ec4], 1
xor edx, edx
push ebp
push 0x4a766f
push dword fs:[edx]
mov dword fs:[edx], esp
call fcn.0040af9c
mov byte [eax + 0x185], 1
mov ecx, dword [0x531d78]
mov dl, 1
mov eax, dword [0x47dadc]
call fcn.004a9cd8
mov dword [ebp - 0x6c], eax
xor edx, edx
push ebp
push 0x4a765e
push dword fs:[edx]
mov dword fs:[edx], esp
cmp dword [ebp - 0x3c], 0
je 0x4a6471
mov eax, dword [ebp - 0x3c]
mov dword [0x531e38], eax
test bl, bl
je 0x4a6484
cmp dword [ebp - 0x3c], 0
je 0x4a6484
mov eax, dword [ebp - 0x3c]
sub eax, 5
mov dword [ebp - 0x3c], eax
call fcn.004a5fd0
cmp edi, dword [0x52cc44]
je 0x4a6499
mov esi, dword [0x52cc44]
jmp 0x4a64a1
mov esi, dword [0x529ac4]
mov esi, dword [esi]
mov eax, dword [ebp - 0x3c]
mov dword [0x53205c], eax
mov eax, dword [ebp - 0x40]
mov dword [0x532058], eax
mov eax, dword [ebp - 0x20]
mov dword [0x532060], eax
cmp byte [0x5284e8], 0
je 0x4a6522
call fcn.0049d480
call fcn.004847c4
mov ebx, eax
test ebx, ebx
je 0x4a65da
mov edx, dword [ebx + 0x23]
mov eax, dword [0x531d88]
mov ecx, dword [eax]
call dword [ecx + 8]
lea eax, [ebp - 0x1a0]
call fcn.0049d434
mov edx, dword [ebp - 0x1a0]
mov eax, dword [0x531d88]
call fcn.0044a1c4
mov eax, dword [0x531d88]
mov eax, dword [eax + 0x5c]
call fcn.00406f24
push eax
call sub.kernel32.dll_GetModuleHandleA
mov edx, eax
mov eax, dword [0x531d88]
call fcn.0044a1e0
jmp 0x4a65da
xor ebx, ebx
cmp dword [ebp - 0x3c], 0
je 0x4a653e
mov dword [0x531ec4], 0x65
mov eax, dword [ebp - 0x3c]
call fcn.00484880
mov ebx, eax
test ebx, ebx
je 0x4a6548
cmp dword [ebx + 0x27], 0
jne 0x4a657c
mov dword [0x531ec4], 0x66
mov eax, edi
call fcn.004847c4
mov ebx, eax
mov dword [0x531ec4], 0x67
test ebx, ebx
je 0x4a6573
cmp dword [ebx + 0x27], 0
jne 0x4a657c
test esi, esi
je 0x4a657c
mov eax, esi
call fcn.004847c4
mov ebx, eax
mov edx, dword [ebx + 0x23]
mov eax, dword [0x531d88]
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [0x531d88]
test byte [eax + 0x331], 8
je 0x4a65c1
test esi, esi
je 0x4a65c1
mov edi, ebx
mov eax, esi
call fcn.004847c4
mov ebx, eax
test ebx, ebx
je 0x4a65b0
cmp dword [ebx + 0x27], 0
jne 0x4a65b4
mov ebx, edi
jmp 0x4a65c1
mov edx, dword [ebx + 0x23]
mov eax, dword [0x531d88]
mov ecx, dword [eax]
call dword [ecx + 8]
mov edx, dword [ebx + 4]
mov eax, dword [0x531d88]
call fcn.0044a1c4
mov edx, dword [ebx]
mov eax, dword [0x531d88]
call fcn.0044a1e0
xor edx, edx
mov eax, dword [0x531d88]
call fcn.0044a398
lea ecx, [ebp - 0x1a4]
mov dl, 0x9a
mov eax, dword [0x531d88]
call fcn.00447d84
mov edx, dword [ebp - 0x1a4]
mov eax, 0x528a28
call fcn.00406734
lea ecx, [ebp - 0x1a8]
mov dl, 0x9b
mov eax, dword [0x531d88]
call fcn.00447d84
mov edx, dword [ebp - 0x1a8]
mov eax, 0x528a2c
call fcn.00406734
mov dword [0x531ec4], 0x68
call fcn.00446f90
test al, al
je 0x4a667e
mov eax, dword [0x531d88]
movzx edx, word [0x4a77c0]
not edx
and dx, word [eax + 0x314]
mov eax, dword [0x531d88]
call fcn.0044a560
mov ecx, 0x4a77d0
mov dl, 0x1a
mov eax, dword [0x531d88]
call fcn.0044a134
mov ecx, 0x4a7800
mov dl, 0x1b
mov eax, dword [0x531d88]
call fcn.0044a134
mov dword [0x531ec4], 2
xor eax, eax
call fcn.0048d090
mov byte [ebp - 0xc9], 2
mov byte [ebp - 0xca], 0
mov eax, dword [0x531d88]
movzx eax, byte [eax + 0x6a]
mov byte [0x532014], al
mov byte [0x532015], 0
cmp byte [ebp + 8], 2
je 0x4a67f5
mov eax, dword [0x531d88]
cmp byte [eax + 0x2ed], 0
je 0x4a67f5
push ebp
mov eax, dword [ebp - 0x40]
call fcn.004a1108
pop ecx
mov dword [ebp - 0xc8], eax
mov dword [0x531ec4], 0xc9
cmp dword [ebp - 0xc8], 0xffffffff
je 0x4a67f5
mov eax, dword [0x531d88]
mov eax, dword [eax + 0x6c]
mov edx, dword [ebp - 0xc8]
call fcn.00447858
movzx eax, byte [eax + 0xc]
mov byte [ebp - 0xca], al
mov eax, dword [0x531d88]
mov eax, dword [eax + 0x6c]
mov edx, dword [ebp - 0xc8]
call fcn.00447858
movzx eax, byte [eax + 0xb]
mov byte [ebp - 0xc9], al
mov eax, dword [0x531d88]
mov eax, dword [eax + 0x6c]
mov edx, dword [ebp - 0xc8]
call fcn.00447858
movzx eax, byte [eax + 0xa]
cmp eax, 4
ja case.default.0x4a674b
jmp dword [eax*4 + 0x4a6752]
mov byte [0x532014], 0
jmp case.default.0x4a674b
mov eax, dword [0x531d88]
movzx eax, byte [eax + 0x6a]
mov byte [0x532014], al
jmp case.default.0x4a674b
mov byte [0x532014], 1
jmp case.default.0x4a674b
mov byte [0x532014], 2
jmp case.default.0x4a674b
mov byte [0x532014], 3
mov byte [0x532015], 1
mov eax, dword [0x531d88]
mov eax, dword [eax + 0x6c]
mov edx, dword [ebp - 0xc8]
call fcn.00447858
mov eax, dword [eax + 5]
lea edx, [ebp - 0x1ac]
call fcn.00445f30
cmp dword [ebp - 0x1ac], 0
je 0x4a67f5
mov eax, dword [0x531d88]
mov eax, dword [eax + 0x6c]
mov edx, dword [ebp - 0xc8]
call fcn.00447858
mov eax, dword [eax + 5]
lea edx, [ebp - 0x1b0]
call fcn.00445f30
mov eax, dword [ebp - 0x1b0]
call fcn.0048d090
call fcn.004a5f38
mov byte [ebp - 0xc2], al
mov dword [0x531ec4], 3
cmp byte [ebp - 0xc9], 2
jne 0x4a7600
cmp dword [ebp - 0x28], 0
jne 0x4a6825
call fcn.00481f18
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x24], 0
jne 0x4a6839
call fcn.0040af9c
mov eax, dword [eax + 0x5c]
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x34], 0
jne 0x4a685a
call fcn.0040af9c
cmp dword [eax + 0x68], 0
je 0x4a685a
call fcn.0040af9c
add eax, 0x68
mov dword [ebp - 0x34], eax
mov edx, 0xcc
mov eax, dword [ebp - 0x34]
call fcn.0044657c
test al, al
jne 0x4a6870
xor eax, eax
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x30], 0
jne 0x4a6883
call fcn.0040af9c
add eax, 0x134
mov dword [ebp - 0x30], eax
mov edx, 0x50
mov eax, dword [ebp - 0x30]
call fcn.0044657c
test al, al
jne 0x4a6899
xor eax, eax
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x20]
mov dword [0x531e3c], eax
mov dword [0x531ec4], 4
cmp dword [0x531e70], 0
je 0x4a68cc
mov edx, dword [ebp - 0x3c]
add edx, 5
mov eax, dword [0x531e70]
call fcn.0048b2d0
test al, al
jne 0x4a6d5d
cmp dword [0x528a00], 0
je 0x4a68df
mov eax, dword [0x528a00]
call fcn.00405374
mov eax, dword [ebp - 0x2c]
test eax, eax
jne 0x4a690f
mov eax, dword [ebp - 0x20]
push eax
push 1
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
movzx eax, byte [0x4a7810]
push eax
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x3c]
call fcn.0048ce68
mov dword [0x528a00], eax
jmp 0x4a6914
mov dword [0x528a00], eax
lea eax, [ebp - 0x1b4]
call fcn.0049e8f8
push dword [ebp - 0x1b4]
push ebp
lea eax, [ebp - 0x1b8]
call fcn.0049e194
pop ecx
push dword [ebp - 0x1b8]
push ebp
lea eax, [ebp - 0x1bc]
call fcn.0049e340
pop ecx
push dword [ebp - 0x1bc]
lea eax, [ebp - 0xbc]
mov edx, 3
call fcn.00406cc0
mov eax, dword [0x528a00]
mov eax, dword [eax + 8]
dec eax
test eax, eax
jl 0x4a6ac6
inc eax
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xc8], 0
mov edx, dword [ebp - 0xc8]
mov eax, dword [0x528a00]
call fcn.004a9b80
cmp byte [eax], 4
jne 0x4a6ab4
mov edx, dword [ebp - 0xc8]
mov eax, dword [0x528a00]
call fcn.004a9b80
mov ebx, dword [eax + 5]
xor edx, edx
mov eax, dword [0x528a00]
call fcn.004a9b80
cmp ebx, dword [eax + 5]
jne 0x4a6ab4
push dword [ebp - 0xbc]
mov edx, dword [ebp - 0xc8]
mov eax, dword [0x528a00]
call fcn.004a9b80
lea edx, [eax + 0x59]
lea eax, [ebp - 0x1c8]
mov ecx, 0
call fcn.00406a48
push dword [ebp - 0x1c8]
mov edx, dword [ebp - 0xc8]
mov eax, dword [0x528a00]
call fcn.004a9b80
lea edx, [eax + 0x159]
lea eax, [ebp - 0x1cc]
mov ecx, 0
call fcn.00406a48
push dword [ebp - 0x1cc]
mov edx, dword [ebp - 0xc8]
mov eax, dword [0x528a00]
call fcn.004a9b80
lea edx, [eax + 0x259]
lea eax, [ebp - 0x1d0]
mov ecx, 0
call fcn.00406a48
push dword [ebp - 0x1d0]
lea eax, [ebp - 0x1c4]
mov edx, 4
call fcn.00406cc0
mov edx, dword [ebp - 0x1c4]
lea eax, [ebp - 0x1c0]
call fcn.004078a0
lea eax, [ebp - 0x1c0]
push eax
mov edx, dword [ebp - 0xc8]
mov eax, dword [0x528a00]
call fcn.004a9b80
mov eax, dword [eax + 0x35d]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x1d4]
call fcn.00412298
mov edx, dword [ebp - 0x1d4]
pop eax
call fcn.00407a98
mov edx, dword [ebp - 0x1c0]
lea eax, [ebp - 0xbc]
mov ecx, 0
call fcn.004078c8
inc dword [ebp - 0xc8]
dec dword [ebp - 0xd0]
jne 0x4a697d
mov eax, dword [ebp - 0xbc]
call fcn.0045cd60
movzx eax, ax
lea ecx, [ebp - 0x1d8]
mov edx, 4
call fcn.004122c0
mov edx, dword [ebp - 0x1d8]
lea eax, [ebp - 0xbc]
mov ecx, 0
call fcn.004078c8
mov eax, 0x532010
mov edx, dword [ebp - 0xbc]
call fcn.00406734
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x6c]
call fcn.004a9f20
mov dword [ebp - 0xc8], eax
cmp dword [ebp - 0xc8], 0xffffffff
je 0x4a6b37
mov edx, dword [ebp - 0xc8]
mov eax, dword [ebp - 0x6c]
call fcn.004a9f50
call fcn.004a606c
mov eax, dword [ebp - 0x6c]
mov eax, dword [eax + 8]
dec eax
test eax, eax
jl 0x4a6be3
inc eax
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xc8], 0
mov edx, dword [ebp - 0xc8]
mov eax, dword [ebp - 0x6c]
call fcn.004a9f50
mov eax, dword [eax]
cmp eax, dword [ebp - 0x20]
je 0x4a6bd1
mov edx, dword [ebp - 0xc8]
mov eax, dword [ebp - 0x6c]
call fcn.004a9f50
call fcn.004a60e4
test al, al
je 0x4a6bd1
mov eax, dword [0x531d78]
call fcn.004a9f7c
xor eax, eax
push ebp
push 0x4a6bca
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, dword [ebp - 0xc8]
mov eax, dword [ebp - 0x6c]
call fcn.004a9f50
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 0x4a6bd1
mov eax, dword [0x531d78]
call fcn.004a9f88
ret
inc dword [ebp - 0xc8]
dec dword [ebp - 0xd0]
jne 0x4a6b57
xor eax, eax
push ebp
push 0x4a6d56
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 0x4a6cdb
inc eax
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xc8], 0
mov edx, dword [ebp - 0xc8]
mov eax, dword [ebp - 0x6c]
call fcn.004a9f50
mov eax, dword [eax]
cmp eax, dword [ebp - 0x20]
je 0x4a6cc9
mov edx, dword [ebp - 0xc8]
mov eax, dword [ebp - 0x6c]
call fcn.004a9f50
call fcn.004a60e4
test al, al
je 0x4a6cc9
mov edx, dword [ebp - 0xc8]
mov eax, dword [ebp - 0x6c]
call fcn.004a9f50
mov ebx, eax
lea eax, [ebp - 0x19c]
xor ecx, ecx
mov edx, 0xcc
call fcn.00404bdc
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 0x4a6cc9
cmp dword [ebp - 0xe4], 0
je 0x4a6cc9
cmp dword [ebp - 0xd8], 0
je 0x4a6cc9
mov eax, dword [ebx + 0x14]
push eax
mov eax, dword [ebx]
push eax
push 1
push 1
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
movzx eax, byte [0x4a7810]
push eax
mov ecx, dword [ebp - 0xd8]
xor edx, edx
mov eax, dword [0x528a00]
call fcn.0048cb8c
mov eax, ebx
call fcn.004a606c
inc dword [ebp - 0xc8]
dec dword [ebp - 0xd0]
jne 0x4a6c11
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4a6d5d
mov eax, dword [ebp - 0x6c]
mov eax, dword [eax + 8]
dec eax
test eax, eax
jl 0x4a6d55
inc eax
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xc8], 0
mov edx, dword [ebp - 0xc8]
mov eax, dword [ebp - 0x6c]
call fcn.004a9f50
mov eax, dword [eax]
cmp eax, dword [ebp - 0x20]
je 0x4a6d47
mov edx, dword [ebp - 0xc8]
mov eax, dword [ebp - 0x6c]
call fcn.004a9f50
call fcn.004a60e4
test al, al
je 0x4a6d47
mov edx, dword [ebp - 0xc8]
mov eax, dword [ebp - 0x6c]
call fcn.004a9f50
mov eax, dword [eax + 4]
push eax
call fcn.0040cb90
inc dword [ebp - 0xc8]
dec dword [ebp - 0xd0]
jne 0x4a6d04
ret
mov dword [0x531ec4], 5
cmp byte [ebp + 8], 2
je 0x4a75e9
mov eax, dword [ebp - 0x6c]
mov eax, dword [eax + 8]
dec eax
test eax, eax
jl 0x4a6e36
inc eax
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xc8], 0
mov edx, dword [ebp - 0xc8]
mov eax, dword [ebp - 0x6c]
call fcn.004a9f50
mov ebx, dword [eax]
call sub.kernel32.dll_GetCurrentThreadId_1
cmp ebx, eax
je 0x4a6e24
mov edx, dword [ebp - 0xc8]
mov eax, dword [ebp - 0x6c]
call fcn.004a9f50
mov eax, dword [eax]
cmp eax, dword [ebp - 0x20]
je 0x4a6e24
mov edx, dword [ebp - 0xc8]
mov eax, dword [ebp - 0x6c]
call fcn.004a9f50
call fcn.004a6124
test al, al
je 0x4a6e24
mov eax, dword [0x531d78]
call fcn.004a9f7c
xor eax, eax
push ebp
push 0x4a6e1d
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, dword [ebp - 0xc8]
mov eax, dword [ebp - 0x6c]
call fcn.004a9f50
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 0x4a6e24
mov eax, dword [0x531d78]
call fcn.004a9f88
ret
inc dword [ebp - 0xc8]
dec dword [ebp - 0xd0]
jne 0x4a6d91
xor edx, edx
push ebp
push 0x4a757d
push dword fs:[edx]
mov dword fs:[edx], esp
mov dword [0x531ec4], 6
mov byte [0x532031], 1
mov eax, dword [0x531d88]
test byte [eax + 0x2f0], 0x10
je 0x4a6e6d
call fcn.004856a8
call fcn.004860b4
mov dword [0x531ec4], 7
mov eax, dword [0x528a00]
mov dword [0x532074], eax
mov eax, dword [0x531d88]
mov dword [0x532078], eax
mov eax, dword [ebp - 0x30]
mov dword [0x532064], eax
mov eax, dword [ebp - 0x34]
mov dword [0x532068], eax
mov dword [0x531ec4], 0x2be
push ebp
call fcn.004a2710
pop ecx
cmp byte [0x5284ec], 0
je 0x4a6ee6
mov eax, 0x531e54
mov ecx, dword [0x531e54]
mov edx, dword [ebp - 0x44]
call fcn.00406bd0
mov byte [0x5284ec], 0
call fcn.00405fec
call fcn.00405fec
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4a76aa
mov eax, 0x53206c
mov edx, dword [0x531e54]
call fcn.00406734
mov dword [0x531ec4], 0x2bf
mov eax, dword [0x5289f8]
mov dword [0x532070], eax
mov dword [0x531ec4], 0x2c0
mov dword [0x531e50], 0x532058
mov al, 1
call fcn.004892c0
mov dword [0x531ec4], 0x2c1
call fcn.00483f0c
mov dword [0x531ec4], 0x2c2
push ebp
call fcn.004a617c
pop ecx
call fcn.004864b8
test al, al
je 0x4a6f7a
lea eax, [ebp - 0x1e0]
call fcn.004898b8
mov eax, dword [ebp - 0x1e0]
lea edx, [ebp - 0x1dc]
call fcn.00489c58
mov edx, dword [ebp - 0x1dc]
mov eax, 0x531df0
call fcn.00406734
mov eax, 0x532734
mov edx, dword [0x531df0]
call fcn.00406734
push ebp
call fcn.004a5f78
pop ecx
test al, al
je 0x4a6f9f
mov eax, 0x48cf1c
call fcn.0048b21c
cmp byte [ebp - 0x35], 0
jne 0x4a6fb1
mov eax, 0x48a080
call fcn.0048b21c
jmp 0x4a6fbb
mov eax, 0x48a154
call fcn.0048b21c
mov dword [0x531ec4], 8
cmp byte [0x532031], 0
je 0x4a74e2
call fcn.0049774c
mov eax, dword [0x531d88]
cmp byte [eax + 0x324], 0
je 0x4a7030
call fcn.004150c8
add esp, 0xfffffff8
fstp qword [esp]
wait
lea eax, [ebp - 0x1e4]
call fcn.00445cb0
mov edx, dword [ebp - 0x1e4]
mov eax, dword [0x531eb8]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov eax, dword [0x531eb8]
mov edx, dword [eax]
call dword [edx + 0x14]
mov edx, dword [0x531d88]
cmp eax, dword [edx + 0x328]
jle 0x4a7030
xor edx, edx
mov eax, dword [0x531eb8]
mov ecx, dword [eax]
call dword [ecx + 0x48]
mov eax, dword [0x532094]
mov edx, dword [eax]
call dword [edx + 0x44]
mov eax, 0x48a588
call fcn.0048b21c
mov eax, dword [0x532094]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
je 0x4a7085
mov eax, dword [0x531d88]
test byte [eax + 0x69], 0x80
je 0x4a7085
lea ecx, [ebp - 0x1e8]
mov dl, 0x5b
mov eax, dword [0x531d88]
call fcn.00447d84
mov edx, dword [ebp - 0x1e8]
mov ecx, dword [0x532094]
mov eax, 7
call fcn.0048dcbc
mov dword [0x531ec4], 9
inc dword [0x531d94]
mov dword [0x531ec4], 0xa
lea edx, [ebp - 0x1f0]
mov eax, dword [ebp - 0x40]
call fcn.0049da40
mov eax, dword [ebp - 0x1f0]
lea edx, [ebp - 0x1ec]
call fcn.0049d5c8
mov edx, dword [ebp - 0x1ec]
mov eax, 0x531e48
call fcn.00406734
mov byte [ebp - 0xc3], 0
mov dword [0x531ec4], 0xb
cmp byte [0x532015], 0
jne 0x4a70f6
mov eax, dword [0x531d88]
movzx eax, byte [eax + 0x6a]
mov byte [0x532014], al
lea eax, [ebp - 0x200]
call fcn.0048f310
lea esi, [ebp - 0x200]
mov edi, 0x532304
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 [0x532014], 0
je 0x4a72e0
mov dword [0x531ec4], 0xc
mov byte [0x532030], 1
call fcn.00483f0c
mov eax, 0x4a1164
call fcn.0048b21c
mov eax, dword [0x531d88]
cmp byte [eax + 0x30c], 0
jne 0x4a715d
mov eax, dword [0x531d88]
cmp byte [eax + 0x30d], 0
jne 0x4a715d
xor eax, eax
jmp 0x4a715f
mov al, 1
mov byte [0x531e60], al
mov eax, dword [0x531d88]
test byte [eax + 0x2f1], 0x10
setne al
mov byte [0x531e62], al
mov byte [0x531e61], 0
cmp byte [0x532030], 0
je 0x4a733c
mov dword [0x531ec4], 0xd
movzx eax, byte [ebp + 0x10]
call fcn.004a6028
sub al, 1
jb 0x4a724f
je 0x4a71e0
dec al
jne 0x4a72ca
call fcn.00486830
test al, al
je 0x4a71c3
cmp dword [0x531e00], 0
je 0x4a71d4
push ebp
mov eax, dword [0x531e54]
call fcn.004a5c38
pop ecx
jmp 0x4a72ca
mov byte [ebp - 0xc1], 1
jmp 0x4a72ca
xor eax, eax
push ebp
push 0x4a7230
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x204]
mov ecx, dword [0x531e54]
mov edx, dword [ebp - 0x44]
call fcn.00406bd0
mov edx, dword [ebp - 0x204]
mov eax, dword [0x529a94]
call fcn.004072a0
call fcn.00404e90
call fcn.00404404
mov byte [0x532030], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4a72ca
xor edx, edx
push ebp
push 0x4a72ad
push dword fs:[edx]
mov dword fs:[edx], esp
cmp byte [0x532014], 3
sete byte [ebp - 0xc3]
mov byte [0x5322f1], 0
cmp byte [0x532014], 0
setne al
call fcn.00496768
xor eax, eax
cmp byte [0x532014], 0
je 0x4a7293
mov byte [0x5322f1], 1
cmp byte [0x532014], 0
jne 0x4a727c
mov byte [0x532030], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4a72ca
mov dword [0x531ec4], 0xe
mov eax, 0x4a1188
call fcn.0048b21c
jmp 0x4a733c
mov eax, dword [0x531d88]
cmp byte [eax + 0x30c], 0
jne 0x4a7300
mov eax, dword [0x531d88]
cmp byte [eax + 0x30d], 0
jne 0x4a7300
xor eax, eax
jmp 0x4a7302
mov al, 1
mov byte [0x531e60], al
mov eax, dword [0x531d88]
test byte [eax + 0x2f1], 0x10
setne al
mov byte [0x531e62], al
call fcn.0048683c
test al, al
je 0x4a733c
push ebp
lea eax, [ebp - 0x208]
call fcn.0048d0a4
mov eax, dword [ebp - 0x208]
call fcn.004a5c38
pop ecx
cmp byte [ebp - 0xc3], 0
je 0x4a734a
call fcn.0048e674
mov eax, dword [0x531d88]
test byte [eax + 0x2f0], 2
je 0x4a7385
lea ecx, [ebp - 0x20c]
mov dl, 0x7b
mov eax, dword [0x531d88]
call fcn.00447d84
mov edx, dword [ebp - 0x20c]
mov eax, dword [0x531d88]
mov ecx, dword [eax + 0x344]
mov eax, 7
call fcn.0048daf8
call fcn.004a5f38
test al, al
je 0x4a73a4
lea eax, [ebp - 0x210]
call fcn.00489610
mov eax, dword [ebp - 0x210]
call fcn.00497e6c
call fcn.00497f3c
mov dword [0x531ec4], 0xf
mov eax, dword [0x531d88]
test byte [eax + 0x2f0], 4
je 0x4a747b
call fcn.004891d8
xor eax, eax
push ebp
push 0x4a740e
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0xc0]
push eax
mov eax, dword [0x5320a4]
call fcn.00461eac
mov ecx, eax
dec ecx
mov edx, 0x4a7844
mov eax, dword [0x5320a4]
call fcn.00461be0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4a7415
call fcn.004892a4
ret
call fcn.004a5f38
mov byte [ebp - 0xc2], al
mov eax, dword [0x531d88]
cmp byte [eax + 0x2ef], 0
je 0x4a7499
call fcn.004a0e38
cmp byte [0x531e63], 0
je 0x4a74ac
mov eax, dword [0x531e54]
call fcn.004844d4
mov dword [0x531ec4], 0x10
cmp byte [ebp - 0xc2], 0
je 0x4a74c4
call fcn.0049c398
cmp byte [ebp - 0xc2], 0
je 0x4a74db
mov eax, dword [0x531d88]
test byte [eax + 0x2f1], 0x80
jne 0x4a74e9
call fcn.0049c3ec
jmp 0x4a74e9
mov byte [ebp - 0xc1], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4a7587
mov eax, dword [ebp - 0x6c]
mov eax, dword [eax + 8]
dec eax
test eax, eax
jl 0x4a757c
inc eax
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xc8], 0
mov edx, dword [ebp - 0xc8]
mov eax, dword [ebp - 0x6c]
call fcn.004a9f50
mov ebx, dword [eax]
call sub.kernel32.dll_GetCurrentThreadId_1
cmp ebx, eax
je 0x4a756e
mov edx, dword [ebp - 0xc8]
mov eax, dword [ebp - 0x6c]
call fcn.004a9f50
mov eax, dword [eax]
cmp eax, dword [ebp - 0x20]
je 0x4a756e
mov edx, dword [ebp - 0xc8]
mov eax, dword [ebp - 0x6c]
call fcn.004a9f50
call fcn.004a6124
test al, al
je 0x4a756e
mov edx, dword [ebp - 0xc8]
mov eax, dword [ebp - 0x6c]
call fcn.004a9f50
mov eax, dword [eax + 4]
push eax
call fcn.0040cb90
inc dword [ebp - 0xc8]
dec dword [ebp - 0xd0]
jne 0x4a7512
ret
mov eax, dword [0x531d88]
test byte [eax + 0x331], 0x80
je 0x4a7610
mov byte [ebp - 0xc1], 1
jmp 0x4a7610
cmp byte [ebp - 0xc9], 1
jne 0x4a7610
mov byte [ebp - 0xc1], 1
mov dword [0x531ec4], 0x12
cmp byte [ebp + 8], 2
je 0x4a763c
cmp byte [ebp - 0xc2], 0
je 0x4a7637
mov eax, dword [0x531d88]
test byte [eax + 0x2f1], 0x80
jne 0x4a763c
call fcn.0049c514
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4a7665
mov eax, dword [ebp - 0x6c]
call fcn.00405374
call fcn.0040af9c
mov byte [eax + 0x185], 0
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4a77ae
lea eax, [ebp - 0x228]
call fcn.00407664
lea eax, [ebp - 0x224]
mov edx, 3
call fcn.00406704
lea eax, [ebp - 0x218]
call fcn.00407664
lea eax, [ebp - 0x214]
mov edx, 5
call fcn.00406704
lea eax, [ebp - 0x1f0]
mov edx, 3
call fcn.00406704
lea eax, [ebp - 0x1e4]
call fcn.00407664
lea eax, [ebp - 0x1e0]
mov edx, 2
call fcn.00406704
lea eax, [ebp - 0x1d8]
mov edx, 2
call fcn.0040766c
lea eax, [ebp - 0x1d0]
mov edx, 4
call fcn.00406704
lea eax, [ebp - 0x1c0]
call fcn.00407664
lea eax, [ebp - 0x1bc]
mov edx, 8
call fcn.00406704
lea eax, [ebp - 0xc0]
mov edx, 3
call fcn.00406704
lea eax, [ebp - 0x78]
call fcn.004066e0
lea eax, [ebp - 0x64]
call fcn.004066e0
lea eax, [ebp - 0x48]
mov edx, 2
call fcn.00406704
lea eax, [ebp - 0x35]
mov edx, dword [0x47df9c]
call fcn.00408460
lea eax, [ebp - 0x14]
call fcn.004066e0
lea eax, [ebp - 0xc]
mov edx, 3
call fcn.00406704
ret