Function at 0x508cd4
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x4c
push 0
push 0
dec ecx
jne 0x508cdc
push ebx
push esi
push edi
mov eax, 0x504d68
call fcn.0040ee70
xor eax, eax
push ebp
push 0x50c761
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, 0x51b714
xor eax, eax
call fcn.00406df4
lea edx, [ebp - 0x3c]
mov eax, dword [0x51b714]
call fcn.0042188c
mov edx, dword [ebp - 0x3c]
mov eax, 0x51b718
call fcn.0040a4c8
mov eax, 0x51b73c
mov edx, dword [0x51b718]
call fcn.0040a4c8
call fcn.004d1748
mov byte [0x51571d], al
cmp byte [0x51571d], 0
je 0x508d51
call fcn.004ff618
mov byte [0x51571d], al
cmp byte [0x51571d], 0
jne 0x508d91
mov eax, dword [0x515a04]
cmp byte [eax], 0
jne 0x50c6fd
mov eax, dword [0x515770]
mov dword [eax], 0x570
push 0x10
mov eax, dword [0x51b73c]
call fcn.0040ac78
push eax
push 0x50c770
push 0
call sub.user32.dll_MessageBoxW
jmp 0x50c6fd
lea ecx, [ebp - 0x40]
xor edx, edx
mov eax, dword [0x51b718]
call fcn.00421678
mov edx, dword [ebp - 0x40]
mov eax, 0x51b71c
call fcn.0040a4c8
lea eax, [ebp - 0x44]
mov edx, dword [0x51590c]
movzx edx, word [edx]
call fcn.0040aca0
push dword [ebp - 0x44]
push dword [0x51b71c]
mov eax, dword [0x515c34]
push dword [eax]
mov eax, 0x51b720
mov edx, 3
call fcn.0040af54
call sub.kernel32.dll_GetSystemDefaultLangID
movzx eax, ax
lea ecx, [ebp - 0x48]
mov edx, 4
call fcn.004207d0
mov edx, dword [ebp - 0x48]
mov eax, 0x51b72c
call fcn.0040a4c8
lea eax, [ebp - 0x4c]
call fcn.0050094c
mov edx, dword [ebp - 0x4c]
mov eax, 0x51b730
call fcn.0040a4c8
mov eax, dword [0x51b730]
mov edx, dword [0x515d48]
mov edx, dword [edx]
call fcn.0040b004
sete byte [0x515718]
mov eax, 0x51b734
mov edx, dword [0x515a30]
mov edx, dword [edx]
call fcn.0040a4c8
mov eax, 0x51b738
mov edx, dword [0x515a44]
mov edx, dword [edx]
call fcn.0040a4c8
mov dl, 1
mov eax, dword [0x4892a0]
call fcn.00408364
mov dword [0x51b708], eax
xor edx, edx
push ebp
push 0x50c6f3
push dword fs:[edx]
mov dword fs:[edx], esp
push 0x515754
push 0
mov eax, dword [0x515884]
mov eax, dword [eax]
call fcn.0040ac78
mov ecx, eax
mov edx, 0xa
mov eax, dword [0x518c50]
call fcn.00501fa0
mov dword [0x51573c], eax
cmp dword [0x51573c], 0
jbe 0x509384
cmp dword [0x515754], 0
je 0x509384
xor edi, edi
cmp dword [0x51573c], 8
jbe 0x508f73
mov eax, dword [0x51573c]
and eax, 0xf
test eax, eax
jne 0x508f73
mov eax, dword [0x515754]
mov eax, dword [eax]
mov dword [0x51b750], eax
cmp dword [0x51b750], 0
je 0x508f73
mov eax, dword [0x51b750]
call fcn.004d1578
mov ebx, dword [0x515754]
add ebx, 4
mov edi, ebx
mov esi, dword [0x51573c]
sub esi, 5
jl 0x508f19
inc esi
xor eax, eax
call fcn.004d1578
xor byte [ebx], al
inc ebx
dec esi
jne 0x508f0c
sub ebx, 4
mov eax, ebx
mov edx, dword [eax]
mov dword [0x51b750], edx
xor edx, edx
mov dword [eax], edx
dec ebx
mov byte [ebx], 0
mov eax, 0x51ba40
mov ecx, dword [0x51573c]
mov edx, dword [0x515754]
call fcn.004ff968
mov ebx, 0x51ba40
xor eax, eax
mov esi, 5
xor eax, dword [ebx]
add ebx, 4
dec esi
jne 0x508f50
cmp eax, dword [0x51b750]
je 0x508f62
xor edi, edi
mov eax, 0x51ba40
xor ecx, ecx
mov edx, 0x14
call fcn.00407820
test edi, edi
je 0x509348
mov ecx, edi
mov dl, 1
mov eax, dword [0x5001f4]
call fcn.00501680
mov dword [ebp - 0x14], eax
xor eax, eax
push ebp
push 0x509341
push dword fs:[eax]
mov dword fs:[eax], esp
movzx eax, byte [0x51571e]
push eax
mov ecx, dword [0x515cfc]
mov ecx, dword [ecx]
xor edx, edx
mov eax, dword [ebp - 0x14]
call fcn.00501cb8
mov byte [0x51571e], al
movzx eax, byte [0x51571f]
push eax
mov ecx, dword [0x515bac]
mov ecx, dword [ecx]
xor edx, edx
mov eax, dword [ebp - 0x14]
call fcn.00501cb8
mov byte [0x51571f], al
movzx eax, byte [0x515720]
push eax
mov ecx, dword [0x515870]
mov ecx, dword [ecx]
xor edx, edx
mov eax, dword [ebp - 0x14]
call fcn.00501cb8
mov byte [0x515720], al
movzx eax, byte [0x515721]
push eax
mov ecx, dword [0x515830]
mov ecx, dword [ecx]
xor edx, edx
mov eax, dword [ebp - 0x14]
call fcn.00501cb8
mov byte [0x515721], al
movzx eax, byte [0x515722]
push eax
mov ecx, dword [0x5159ac]
mov ecx, dword [ecx]
xor edx, edx
mov eax, dword [ebp - 0x14]
call fcn.00501cb8
mov byte [0x515722], al
movzx eax, byte [0x515723]
push eax
mov ecx, dword [0x515908]
mov ecx, dword [ecx]
xor edx, edx
mov eax, dword [ebp - 0x14]
call fcn.00501cb8
mov byte [0x515723], al
movzx eax, byte [0x515724]
push eax
mov ecx, dword [0x515c5c]
mov ecx, dword [ecx]
xor edx, edx
mov eax, dword [ebp - 0x14]
call fcn.00501cb8
mov byte [0x515724], al
movzx eax, byte [0x515725]
push eax
mov ecx, dword [0x5157c8]
mov ecx, dword [ecx]
xor edx, edx
mov eax, dword [ebp - 0x14]
call fcn.00501cb8
mov byte [0x515725], al
movzx eax, byte [0x515726]
push eax
mov ecx, dword [0x515ba0]
mov ecx, dword [ecx]
xor edx, edx
mov eax, dword [ebp - 0x14]
call fcn.00501cb8
mov byte [0x515726], al
movzx eax, byte [0x515727]
push eax
mov ecx, dword [0x515bd8]
mov ecx, dword [ecx]
xor edx, edx
mov eax, dword [ebp - 0x14]
call fcn.00501cb8
mov byte [0x515727], al
movzx eax, byte [0x515728]
push eax
mov ecx, dword [0x515cf8]
mov ecx, dword [ecx]
xor edx, edx
mov eax, dword [ebp - 0x14]
call fcn.00501cb8
mov byte [0x515728], al
movzx eax, byte [0x515729]
push eax
mov ecx, dword [0x515868]
mov ecx, dword [ecx]
xor edx, edx
mov eax, dword [ebp - 0x14]
call fcn.00501cb8
mov byte [0x515729], al
movzx eax, byte [0x51572a]
push eax
mov ecx, dword [0x515b30]
mov ecx, dword [ecx]
xor edx, edx
mov eax, dword [ebp - 0x14]
call fcn.00501cb8
mov byte [0x51572a], al
movzx eax, byte [0x51572b]
push eax
mov ecx, dword [0x5157f8]
mov ecx, dword [ecx]
xor edx, edx
mov eax, dword [ebp - 0x14]
call fcn.00501cb8
mov byte [0x51572b], al
movzx eax, byte [0x51572c]
push eax
mov ecx, dword [0x515be8]
mov ecx, dword [ecx]
xor edx, edx
mov eax, dword [ebp - 0x14]
call fcn.00501cb8
mov byte [0x51572c], al
movzx eax, byte [0x51572d]
push eax
mov ecx, dword [0x515970]
mov ecx, dword [ecx]
xor edx, edx
mov eax, dword [ebp - 0x14]
call fcn.00501cb8
mov byte [0x51572d], al
movzx eax, byte [0x51572e]
push eax
mov ecx, dword [0x515a84]
mov ecx, dword [ecx]
xor edx, edx
mov eax, dword [ebp - 0x14]
call fcn.00501cb8
mov byte [0x51572e], al
movzx eax, byte [0x51571c]
push eax
mov ecx, dword [0x51598c]
mov ecx, dword [ecx]
xor edx, edx
mov eax, dword [ebp - 0x14]
call fcn.00501cb8
mov byte [0x51571c], al
mov eax, dword [0x515a30]
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x50]
push eax
mov ecx, dword [0x515888]
mov ecx, dword [ecx]
xor edx, edx
mov eax, dword [ebp - 0x14]
call fcn.00501b90
mov edx, dword [ebp - 0x50]
mov eax, dword [0x515a30]
call fcn.0040a4c8
mov eax, dword [0x5157b8]
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x54]
push eax
mov ecx, dword [0x515998]
mov ecx, dword [ecx]
xor edx, edx
mov eax, dword [ebp - 0x14]
call fcn.00501b90
mov edx, dword [ebp - 0x54]
mov eax, dword [0x5157b8]
call fcn.0040a4c8
mov eax, dword [0x515a44]
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x58]
push eax
mov ecx, dword [0x515c38]
mov ecx, dword [ecx]
xor edx, edx
mov eax, dword [ebp - 0x14]
call fcn.00501b90
mov edx, dword [ebp - 0x58]
mov eax, dword [0x515a44]
call fcn.0040a4c8
mov eax, dword [0x515bcc]
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x5c]
push eax
mov ecx, dword [0x5157ac]
mov ecx, dword [ecx]
xor edx, edx
mov eax, dword [ebp - 0x14]
call fcn.00501b90
mov edx, dword [ebp - 0x5c]
mov eax, dword [0x515bcc]
call fcn.0040a4c8
mov eax, dword [0x515b44]
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x60]
push eax
mov ecx, dword [0x515d44]
mov ecx, dword [ecx]
xor edx, edx
mov eax, dword [ebp - 0x14]
call fcn.00501b90
mov edx, dword [ebp - 0x60]
mov eax, dword [0x515b44]
call fcn.0040a4c8
mov eax, dword [0x515710]
push eax
lea eax, [ebp - 0x64]
push eax
mov ecx, dword [0x515c70]
mov ecx, dword [ecx]
xor edx, edx
mov eax, dword [ebp - 0x14]
call fcn.00501b90
mov edx, dword [ebp - 0x64]
mov eax, 0x515710
call fcn.0040a4c8
mov eax, dword [0x51b720]
push eax
lea eax, [ebp - 0x68]
push eax
mov ecx, dword [0x515ad8]
mov ecx, dword [ecx]
xor edx, edx
mov eax, dword [ebp - 0x14]
call fcn.00501b90
mov edx, dword [ebp - 0x68]
mov eax, 0x51b720
call fcn.0040a4c8
lea eax, [ebp - 0x70]
mov edx, dword [0x515714]
call fcn.0040ad38
mov eax, dword [ebp - 0x70]
push eax
lea eax, [ebp - 0x6c]
push eax
mov ecx, dword [0x515a24]
mov ecx, dword [ecx]
xor edx, edx
mov eax, dword [ebp - 0x14]
call fcn.00501b90
mov edx, dword [ebp - 0x6c]
mov eax, 0x515714
mov ecx, 0
call fcn.0040aa0c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x509384
mov eax, dword [ebp - 0x14]
call fcn.00408394
ret
cmp dword [0x515754], 0
je 0x509384
cmp dword [0x51573c], 0
jbe 0x50936c
mov edx, dword [0x51573c]
mov eax, dword [0x515754]
xor ecx, ecx
call fcn.00407820
mov eax, dword [0x515754]
call fcn.00406a34
xor eax, eax
mov dword [0x515754], eax
xor eax, eax
mov dword [0x51573c], eax
cmp dword [0x515714], 0
jne 0x509396
cmp dword [0x51ba3c], 0
je 0x50939a
mov bl, 0x10
jmp 0x50939c
xor ebx, ebx
push 0x51575c
push ebx
mov eax, dword [0x515a88]
mov eax, dword [eax]
call fcn.0040ac78
mov ecx, eax
mov edx, 0xa
mov eax, dword [0x518c50]
call fcn.00501fa0
mov dword [0x515744], eax
push 0x515758
push 0x10
mov eax, dword [0x515880]
mov eax, dword [eax]
call fcn.0040ac78
mov ecx, eax
mov edx, 0xa
mov eax, dword [0x518c50]
call fcn.00501fa0
mov dword [0x515740], eax
push 0x515750
push 0x10
mov eax, dword [0x515a5c]
mov eax, dword [eax]
call fcn.0040ac78
mov ecx, eax
mov edx, 0xa
mov eax, dword [0x518c50]
call fcn.00501fa0
mov dword [0x515738], eax
mov eax, dword [0x515b0c]
mov eax, dword [eax]
mov dword [0x51ba34], eax
mov edx, 0x51b6ec
mov eax, 0x51ba34
call fcn.005010a8
lea ecx, [ebp - 0x74]
mov edx, dword [0x515a30]
mov edx, dword [edx]
mov eax, dword [0x51ba34]
call fcn.005045cc
lea ecx, [ebp - 0x78]
mov edx, dword [0x51598c]
mov edx, dword [edx]
mov eax, dword [0x51ba34]
call fcn.005045cc
lea ecx, [ebp - 0x7c]
mov edx, dword [0x515b44]
mov edx, dword [edx]
mov eax, dword [0x51ba34]
call fcn.005045cc
mov edx, dword [ebp - 0x7c]
mov eax, 0x51ba3c
mov ecx, 0
call fcn.0040aa0c
cmp dword [0x515758], 0
jne 0x50a07d
cmp dword [0x515750], 0
jne 0x50a07d
cmp byte [0x515718], 0
je 0x5094b6
mov eax, 0x515704
mov edx, 0x50c7a4
call fcn.0040a4c8
jmp 0x5094c5
mov eax, 0x515704
mov edx, 0x50c7c4
call fcn.0040a4c8
lea ecx, [ebp - 0x80]
mov edx, dword [0x515bcc]
mov edx, dword [edx]
mov eax, dword [0x51ba34]
call fcn.005045cc
mov edx, dword [ebp - 0x80]
mov eax, 0x51b748
call fcn.0040a4c8
cmp dword [0x51b748], 0
je 0x509583
mov dl, 1
mov eax, dword [0x51b748]
call fcn.00420f7c
test al, al
jne 0x509583
mov byte [0x51571d], 0
mov eax, dword [0x515770]
mov dword [eax], 2
cmp byte [0x515718], 0
je 0x509540
push 0x50c7f8
push dword [0x51b748]
push 0x50c81c
mov eax, 0x51b6ec
mov edx, 3
call fcn.0040af54
jmp 0x50955f
push 0x50c840
push dword [0x51b748]
push 0x50c864
mov eax, 0x51b6ec
mov edx, 3
call fcn.0040af54
push 0x10
mov eax, dword [0x515704]
call fcn.0040ac78
push eax
mov eax, dword [0x51b6ec]
call fcn.0040ac78
push eax
push 0
call sub.user32.dll_MessageBoxW
jmp 0x50a060
cmp dword [0x51b748], 0
jne 0x509599
cmp dword [0x51ba3c], 0
je 0x50a060
mov byte [0x51571d], 0
mov eax, dword [0x51b720]
call fcn.005047f0
test al, al
jne 0x5095b8
call fcn.004098d8
jmp 0x50c6fd
lea ecx, [ebp - 0x84]
xor edx, edx
mov eax, dword [0x51b714]
call fcn.00421678
push dword [ebp - 0x84]
mov eax, dword [0x515d64]
push dword [eax]
lea edx, [ebp - 0x88]
mov eax, dword [0x51b714]
call fcn.004218c8
push dword [ebp - 0x88]
mov eax, 0x51b724
mov edx, 3
call fcn.0040af54
mov eax, dword [0x51b724]
call fcn.00501038
mov dl, 1
mov eax, dword [0x51b724]
call fcn.00420f7c
xor al, 1
mov byte [0x51b6e8], al
cmp byte [0x51b6e8], 0
je 0x509637
mov edx, dword [0x51b724]
mov eax, dword [0x51b714]
call fcn.00502240
mov byte [0x51b6e8], al
cmp byte [0x51b6e8], 0
je 0x509f41
xor eax, eax
push ebp
push 0x509f3a
push dword fs:[eax]
mov dword fs:[eax], esp
cmp dword [0x51ba3c], 0
je 0x5097dc
mov dword [0x515738], 0x60
xor eax, eax
push ebp
push 0x509690
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x515738]
call fcn.00406a18
mov dword [0x515750], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x5096a1
cmp dword [0x515750], 0
je 0x5097d5
mov ebx, dword [0x515750]
mov esi, dword [0x51ba3c]
test esi, esi
je 0x5096c3
sub esi, 4
mov esi, dword [esi]
mov eax, dword [0x51ba3c]
call fcn.0040a97c
push eax
push esi
mov edx, dword [0x515bf4]
mov eax, 0x51ba40
mov ecx, 0x468
call fcn.004ffc48
mov edx, ebx
mov eax, 0x51ba40
mov ecx, 0x10
call fcn.00406c38
cmp dword [0x515754], 0
je 0x509754
cmp dword [0x51573c], 0
jbe 0x509754
lea eax, [ebx + 0x10]
mov ecx, dword [0x51573c]
mov edx, dword [0x515754]
call fcn.004ff968
cmp dword [0x515714], 0
je 0x509754
cmp dword [0x51575c], 0
je 0x509754
cmp dword [0x515744], 0
jbe 0x509754
mov eax, dword [0x515744]
push eax
lea edx, [ebx + 0x10]
mov ecx, dword [0x51575c]
mov eax, dword [0x515714]
call fcn.004fffb4
mov byte [0x51b6e8], al
cmp byte [0x51b6e8], 0
je 0x5097dc
cmp dword [0x51575c], 0
je 0x5097dc
cmp dword [0x515744], 0
jbe 0x5097dc
lea eax, [ebx + 0x38]
mov ecx, dword [0x515744]
mov edx, dword [0x51575c]
call fcn.004ff968
mov eax, dword [0x515744]
push eax
mov edx, ebx
mov ecx, dword [0x51575c]
mov eax, dword [0x51ba3c]
call fcn.004fff44
mov byte [0x51b6e8], al
cmp byte [0x51b6e8], 0
je 0x5097dc
push 0xa
mov eax, dword [0x515a88]
mov eax, dword [eax]
call fcn.0040ac78
push eax
mov ecx, dword [0x51b724]
mov edx, dword [0x515744]
mov eax, dword [0x51575c]
call fcn.00502104
mov byte [0x51b6e8], al
jmp 0x5097dc
mov byte [0x51b6e8], 0
cmp byte [0x51b6e8], 0
je 0x509e64
cmp dword [0x51b748], 0
je 0x509e64
xor eax, eax
push ebp
push 0x509e5d
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [0x51b6e8], 0
push 1
mov ecx, 0x51574c
xor edx, edx
mov eax, dword [0x51b748]
call fcn.00501d98
mov dword [0x515734], eax
cmp dword [0x515734], 1
jbe 0x509d15
xor eax, eax
push ebp
push 0x509d0e
push dword fs:[eax]
mov dword fs:[eax], esp
mov ebx, dword [0x51574c]
mov eax, dword [0x515734]
dec eax
mov dword [0x51b6e4], eax
cmp dword [0x51b6e4], 0x200
jbe 0x509865
mov dword [0x51b6e4], 0x200
cmp dword [0x51b6e4], 0
jbe 0x5098a5
cmp byte [ebx], 9
jb 0x50988c
cmp byte [ebx], 0xb
je 0x50988c
cmp byte [ebx], 0xc
je 0x50988c
cmp byte [ebx], 0xd
jbe 0x509887
cmp byte [ebx], 0x20
jb 0x50988c
cmp byte [ebx], 0x7e
jbe 0x509895
mov byte [0x51571b], 1
jmp 0x5098a5
inc ebx
dec dword [0x51b6e4]
cmp dword [0x51b6e4], 0
ja 0x50986e
cmp byte [0x51571b], 0
je 0x509995
dec dword [0x515734]
mov eax, dword [0x515734]
add eax, 8
mov dword [0x515740], eax
mov eax, dword [0x515740]
and eax, 0xf
mov dword [0x51b6e4], eax
cmp dword [0x51b6e4], 0
jbe 0x5098f6
mov eax, 0x10
sub eax, dword [0x51b6e4]
mov dword [0x51b6e4], eax
mov eax, dword [0x51b6e4]
add dword [0x515740], eax
xor eax, eax
push ebp
push 0x50991d
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x515740]
call fcn.00406a18
mov dword [0x515758], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x509935
cmp dword [0x515758], 0
je 0x509cf6
mov ebx, dword [0x515758]
xor eax, eax
mov dword [ebx], eax
add ebx, 4
mov eax, dword [0x515734]
mov dword [ebx], eax
add ebx, 4
mov ecx, dword [0x515734]
mov edx, ebx
mov eax, dword [0x51574c]
call fcn.00406c38
cmp dword [0x51b6e4], 0
jbe 0x509989
add ebx, dword [0x515734]
mov edx, dword [0x51b6e4]
mov eax, ebx
xor ecx, ecx
call fcn.00407820
mov byte [0x51b6e8], 1
jmp 0x509cf6
mov eax, 0x51ba38
call fcn.0040a10c
mov ecx, dword [0x51574c]
mov dl, 1
mov eax, dword [0x5001f4]
call fcn.00501680
mov dword [ebp - 0x18], eax
xor eax, eax
push ebp
push 0x509c0a
push dword fs:[eax]
mov dword fs:[eax], esp
xor esi, esi
jmp 0x509bdd
xor edi, edi
jmp 0x509bba
test edi, edi
jne 0x509a61
cmp dword [0x51ba38], 0
jne 0x5099ea
cmp dword [0x51b6f0], 0
je 0x509a61
lea eax, [ebp - 0x94]
mov edx, dword [0x5157d8]
movzx edx, word [edx]
call fcn.0040aca0
push dword [ebp - 0x94]
push dword [0x51b6f0]
lea eax, [ebp - 0x98]
mov edx, dword [0x515cd4]
movzx edx, word [edx]
call fcn.0040aca0
push dword [ebp - 0x98]
mov eax, dword [0x5158a8]
push dword [eax]
lea eax, [ebp - 0x90]
mov edx, 4
call fcn.0040af54
mov edx, dword [ebp - 0x90]
lea eax, [ebp - 0x8c]
mov ecx, 0
call fcn.0040aa0c
mov edx, dword [ebp - 0x8c]
mov eax, 0x51ba38
call fcn.0040a8a4
cmp dword [0x51b6f8], 0
je 0x509b56
mov eax, dword [0x51b6f8]
movzx eax, word [eax]
mov edx, dword [0x515d58]
cmp ax, word [edx]
je 0x509a94
mov eax, dword [0x51b6f8]
movzx eax, word [eax]
mov edx, dword [0x515904]
cmp ax, word [edx]
jne 0x509a98
mov bl, 1
jmp 0x509aca
mov eax, dword [0x51b6f8]
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0
je 0x509ab1
mov eax, dword [ebp - 0x24]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x24], eax
mov eax, dword [0x51b6f8]
mov edx, dword [ebp - 0x24]
movzx eax, word [eax + edx*2 - 2]
mov edx, dword [0x515d58]
cmp ax, word [edx]
sete bl
test bl, bl
je 0x509ad4
mov byte [ebp - 0x29], 1
jmp 0x509b07
mov eax, dword [0x51b6f8]
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0
je 0x509aed
mov eax, dword [ebp - 0x28]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x28], eax
mov eax, dword [0x51b6f8]
mov edx, dword [ebp - 0x28]
movzx eax, word [eax + edx*2 - 2]
mov edx, dword [0x515904]
cmp ax, word [edx]
sete byte [ebp - 0x29]
cmp byte [ebp - 0x29], 0
je 0x509b56
lea eax, [ebp - 0x9c]
mov edx, dword [0x515798]
movzx edx, word [edx]
call fcn.0040aca0
push dword [ebp - 0x9c]
push dword [0x51b6f8]
lea eax, [ebp - 0xa0]
mov edx, dword [0x515798]
movzx edx, word [edx]
call fcn.0040aca0
push dword [ebp - 0xa0]
mov eax, 0x51b6f8
mov edx, 3
call fcn.0040af54
push dword [0x51b6f4]
lea eax, [ebp - 0xac]
mov edx, dword [0x515a18]
movzx edx, word [edx]
call fcn.0040aca0
push dword [ebp - 0xac]
push dword [0x51b6f8]
mov eax, dword [0x5158a8]
push dword [eax]
lea eax, [ebp - 0xa8]
mov edx, 4
call fcn.0040af54
mov edx, dword [ebp - 0xa8]
lea eax, [ebp - 0xa4]
mov ecx, 0
call fcn.0040aa0c
mov edx, dword [ebp - 0xa4]
mov eax, 0x51ba38
call fcn.0040a8a4
inc edi
push 0x51b6f4
push 0x51b6f8
mov ecx, edi
mov edx, dword [0x51b6f0]
mov eax, dword [ebp - 0x18]
call fcn.00501910
test al, al
jne 0x5099d0
inc esi
mov ecx, 0x51b6f0
mov edx, esi
mov eax, dword [ebp - 0x18]
call fcn.005018dc
test al, al
jne 0x5099c9
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x509c11
mov eax, dword [ebp - 0x18]
call fcn.00408394
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x509d15
mov eax, dword [0x51574c]
call fcn.00406a34
ret
cmp byte [0x51b6e8], 0
je 0x509d97
cmp dword [0x515750], 0
je 0x509d64
mov eax, dword [0x515750]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
add eax, 0x24
mov ecx, dword [0x515740]
mov edx, dword [0x515758]
call fcn.004ff968
mov eax, dword [0x515740]
push eax
mov edx, dword [ebp - 0x1c]
mov ecx, dword [0x515758]
mov eax, dword [0x51ba3c]
call fcn.004fff44
mov byte [0x51b6e8], al
cmp byte [0x51b6e8], 0
je 0x509d97
push 0xa
mov eax, dword [0x515880]
mov eax, dword [eax]
call fcn.0040ac78
push eax
mov ecx, dword [0x51b724]
mov edx, dword [0x515740]
mov eax, dword [0x515758]
call fcn.00502104
mov byte [0x51b6e8], al
cmp byte [0x51b6e8], 0
jne 0x509e13
mov eax, dword [0x515770]
mov dword [eax], 0x52
cmp byte [0x515718], 0
je 0x509dd5
push 0x50c8b0
push dword [0x51b748]
push 0x50c8cc
mov eax, 0x51b6ec
mov edx, 3
call fcn.0040af54
jmp 0x509df4
push 0x50c8f0
push dword [0x51b748]
push 0x50c928
mov eax, 0x51b6ec
mov edx, 3
call fcn.0040af54
push 0x10
mov eax, dword [0x515704]
call fcn.0040ac78
push eax
mov eax, dword [0x51b6ec]
call fcn.0040ac78
push eax
push 0
call sub.user32.dll_MessageBoxW
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x509e64
cmp dword [0x515758], 0
je 0x509e5c
cmp dword [0x515740], 0
jbe 0x509e44
mov edx, dword [0x515740]
mov eax, dword [0x515758]
xor ecx, ecx
call fcn.00407820
mov eax, dword [0x515758]
call fcn.00406a34
xor eax, eax
mov dword [0x515758], eax
xor eax, eax
mov dword [0x515740], eax
ret
cmp byte [0x51b6e8], 0
je 0x509edf
cmp dword [0x515750], 0
je 0x509edf
mov ebx, dword [0x515750]
mov ecx, dword [0x515738]
sub ecx, 0x14
mov edx, ebx
lea eax, [ebx + 0x4c]
call fcn.004ff968
mov eax, dword [0x515738]
sub eax, 0x10
push eax
lea ecx, [ebx + 0x10]
mov edx, ebx
mov eax, dword [0x51ba3c]
call fcn.004fff44
mov byte [0x51b6e8], al
cmp byte [0x51b6e8], 0
je 0x509edf
push 0xa
mov eax, dword [0x515a5c]
mov eax, dword [eax]
call fcn.0040ac78
push eax
mov ecx, dword [0x51b724]
mov edx, dword [0x515738]
mov eax, dword [0x515750]
call fcn.00502104
mov byte [0x51b6e8], al
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x509f41
cmp dword [0x515750], 0
je 0x509f28
cmp dword [0x515738], 0
jbe 0x509f10
mov edx, dword [0x515738]
mov eax, dword [0x515750]
xor ecx, ecx
call fcn.00407820
mov eax, dword [0x515750]
call fcn.00406a34
xor eax, eax
mov dword [0x515750], eax
xor eax, eax
mov dword [0x515738], eax
mov eax, 0x51ba40
xor ecx, ecx
mov edx, 0x14
call fcn.00407820
ret
cmp byte [0x51b6e8], 0
jne 0x509f56
mov eax, dword [0x51b724]
call fcn.00501038
jmp 0x509f67
mov dl, 1
mov eax, dword [0x51b724]
call fcn.00420f7c
mov byte [0x51b6e8], al
mov eax, dword [0x515770]
cmp dword [eax], 0
jne 0x509fef
cmp byte [0x51b6e8], 0
jne 0x509fef
mov eax, dword [0x515770]
mov dword [eax], 0x52
cmp byte [0x515718], 0
je 0x509faf
push 0x50c944
push dword [0x51b724]
push 0x50c968
mov eax, 0x51b6ec
mov edx, 3
call fcn.0040af54
jmp 0x509fce
push 0x50c98c
push dword [0x51b724]
push 0x50c9e4
mov eax, 0x51b6ec
mov edx, 3
call fcn.0040af54
push 0x10
mov eax, dword [0x515704]
call fcn.0040ac78
push eax
mov eax, dword [0x51b6ec]
call fcn.0040ac78
push eax
push 0
call sub.user32.dll_MessageBoxW
jmp 0x50a060
cmp byte [0x51b6e8], 0
je 0x50a060
cmp byte [0x515718], 0
je 0x50a022
push 0x50c944
push dword [0x51b724]
push 0x50c9f8
mov eax, 0x51b6ec
mov edx, 3
call fcn.0040af54
jmp 0x50a041
push 0x50ca1c
push dword [0x51b724]
push 0x50ca50
mov eax, 0x51b6ec
mov edx, 3
call fcn.0040af54
push 0
mov eax, dword [0x515704]
call fcn.0040ac78
push eax
mov eax, dword [0x51b6ec]
call fcn.0040ac78
push eax
push 0
call sub.user32.dll_MessageBoxW
mov eax, 0x515704
call fcn.0040a0e8
cmp byte [0x51571d], 0
jne 0x50a07d
call fcn.004098d8
jmp 0x50c6fd
cmp dword [0x515750], 0
je 0x50a09c
cmp dword [0x51ba3c], 0
je 0x50a098
cmp dword [0x515738], 0x60
jae 0x50a09c
xor eax, eax
jmp 0x50a09e
mov al, 1
mov byte [0x51b6e8], al
cmp byte [0x51b6e8], 0
je 0x50a2b9
cmp dword [0x515750], 0
je 0x50a2b9
mov ebx, dword [0x515750]
push 0x50
lea ecx, [ebx + 0x10]
mov edx, ebx
mov eax, dword [0x51ba3c]
call fcn.004fffb4
test al, al
je 0x50a2b2
mov eax, 0x515714
call fcn.0040a10c
mov edx, ebx
mov eax, 0x51ba40
mov ecx, 0x4c
call fcn.004ff968
lea edx, [ebx + 0x4c]
mov eax, 0x51ba40
mov ecx, 0x14
call fcn.0041fdf4
mov byte [0x51b6e8], al
cmp byte [0x51b6e8], 0
je 0x50a156
cmp dword [0x515754], 0
je 0x50a156
cmp dword [0x51573c], 0
jbe 0x50a156
mov eax, 0x51ba40
mov ecx, dword [0x51573c]
mov edx, dword [0x515754]
call fcn.004ff968
lea edx, [ebx + 0x10]
mov eax, 0x51ba40
mov ecx, 0x14
call fcn.0041fdf4
mov byte [0x51b6e8], al
cmp byte [0x51b6e8], 0
je 0x50a203
cmp dword [0x515758], 0
je 0x50a203
cmp dword [0x515740], 0
jbe 0x50a203
mov eax, dword [0x515740]
push eax
mov edx, ebx
mov ecx, dword [0x515758]
mov eax, dword [0x51ba3c]
call fcn.004fffb4
mov byte [0x51b6e8], al
cmp byte [0x51b6e8], 0
je 0x50a1d0
mov eax, 0x51ba40
mov ecx, dword [0x515740]
mov edx, dword [0x515758]
call fcn.004ff968
lea edx, [ebx + 0x24]
mov eax, 0x51ba40
mov ecx, 0x14
call fcn.0041fdf4
mov byte [0x51b6e8], al
cmp byte [0x51b6e8], 0
jne 0x50a203
mov edx, dword [0x515740]
mov eax, dword [0x515758]
xor ecx, ecx
call fcn.00407820
mov eax, dword [0x515758]
call fcn.00406a34
xor eax, eax
mov dword [0x515758], eax
xor eax, eax
mov dword [0x515740], eax
cmp byte [0x51b6e8], 0
je 0x50a2b9
cmp dword [0x51575c], 0
je 0x50a2b9
cmp dword [0x515744], 0
jbe 0x50a2b9
mov eax, dword [0x515744]
push eax
mov edx, ebx
mov ecx, dword [0x51575c]
mov eax, dword [0x51ba3c]
call fcn.004fffb4
mov byte [0x51b6e8], al
cmp byte [0x51b6e8], 0
je 0x50a27d
mov eax, 0x51ba40
mov ecx, dword [0x515744]
mov edx, dword [0x51575c]
call fcn.004ff968
lea edx, [ebx + 0x38]
mov eax, 0x51ba40
mov ecx, 0x14
call fcn.0041fdf4
mov byte [0x51b6e8], al
cmp byte [0x51b6e8], 0
jne 0x50a2b9
mov edx, dword [0x515744]
mov eax, dword [0x51575c]
xor ecx, ecx
call fcn.00407820
mov eax, dword [0x51575c]
call fcn.00406a34
xor eax, eax
mov dword [0x51575c], eax
xor eax, eax
mov dword [0x515744], eax
jmp 0x50a2b9
mov byte [0x51b6e8], 0
mov eax, 0x51ba40
xor ecx, ecx
mov edx, 0x14
call fcn.00407820
cmp dword [0x515750], 0
je 0x50a306
cmp dword [0x515738], 0
jbe 0x50a2ee
mov edx, dword [0x515738]
mov eax, dword [0x515750]
xor ecx, ecx
call fcn.00407820
mov eax, dword [0x515750]
call fcn.00406a34
xor eax, eax
mov dword [0x515750], eax
xor eax, eax
mov dword [0x515738], eax
cmp byte [0x51b6e8], 0
je 0x50a383
cmp dword [0x515714], 0
je 0x50a383
cmp dword [0x515754], 0
je 0x50a383
cmp dword [0x51573c], 0
jbe 0x50a383
cmp dword [0x51575c], 0
je 0x50a383
cmp dword [0x515744], 0
jbe 0x50a383
mov eax, 0x51ba40
mov ecx, dword [0x51573c]
mov edx, dword [0x515754]
call fcn.004ff968
mov eax, dword [0x515744]
push eax
mov edx, 0x51ba40
mov ecx, dword [0x51575c]
mov eax, dword [0x515714]
call fcn.004fffb4
mov byte [0x51b6e8], al
mov eax, 0x51ba40
xor ecx, ecx
mov edx, 0x14
call fcn.00407820
cmp dword [0x515754], 0
je 0x50a3bf
cmp dword [0x51573c], 0
jbe 0x50a3a7
mov edx, dword [0x51573c]
mov eax, dword [0x515754]
xor ecx, ecx
call fcn.00407820
mov eax, dword [0x515754]
call fcn.00406a34
xor eax, eax
mov dword [0x515754], eax
xor eax, eax
mov dword [0x51573c], eax
cmp byte [0x51b6e8], 0
je 0x50a4b1
cmp dword [0x515740], 0
jbe 0x50a4b1
cmp dword [0x515758], 0
je 0x50a4b1
cmp dword [0x515740], 4
jbe 0x50a400
mov eax, dword [0x515758]
cmp dword [eax], 0
jne 0x50a400
mov byte [0x51571b], 1
cmp byte [0x51571b], 0
jne 0x50a4b1
mov ecx, dword [0x515758]
mov dl, 1
mov eax, dword [0x5001f4]
call fcn.00501680
mov dword [ebp - 0x20], eax
xor eax, eax
push ebp
push 0x50a4aa
push dword fs:[eax]
mov dword fs:[eax], esp
movzx eax, byte [0x51571a]
push eax
mov ecx, dword [0x515a44]
mov ecx, dword [ecx]
xor edx, edx
mov eax, dword [ebp - 0x20]
call fcn.00501cb8
mov byte [0x51571a], al
movzx eax, byte [0x51571c]
push eax
mov ecx, dword [0x51598c]
mov ecx, dword [ecx]
xor edx, edx
mov eax, dword [ebp - 0x20]
call fcn.00501cb8
mov byte [0x51571c], al
push 0
lea eax, [ebp - 0xb0]
push eax
mov ecx, dword [0x515a30]
mov ecx, dword [ecx]
xor edx, edx
mov eax, dword [ebp - 0x20]
call fcn.00501b90
mov eax, dword [ebp - 0xb0]
call fcn.00504358
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x50a4b1
mov eax, dword [ebp - 0x20]
call fcn.00408394
ret
mov eax, dword [0x515b0c]
mov eax, dword [eax]
mov dword [0x51ba34], eax
mov edx, 0x51b6ec
mov eax, 0x51ba34
call fcn.005010a8
lea ecx, [ebp - 0xb4]
mov edx, dword [0x515a44]
mov edx, dword [edx]
mov eax, dword [0x51ba34]
call fcn.005045cc
lea ecx, [ebp - 0xb8]
mov edx, dword [0x51598c]
mov edx, dword [edx]
mov eax, dword [0x51ba34]
call fcn.005045cc
lea ecx, [ebp - 0xbc]
mov edx, dword [0x5157b8]
mov edx, dword [edx]
mov eax, dword [0x51ba34]
call fcn.005045cc
lea ecx, [ebp - 0xc0]
mov edx, dword [0x515a30]
mov edx, dword [edx]
mov eax, dword [0x51ba34]
call fcn.005045cc
cmp byte [0x51b6e8], 0
jne 0x50a59b
mov eax, dword [0x515770]
mov dword [eax], 0x56
cmp byte [0x51571a], 0
jne 0x50a591
cmp byte [0x515718], 0
je 0x50a563
mov eax, 0x51b6ec
mov edx, 0x50ca80
call fcn.0040a4c8
jmp 0x50a572
mov eax, 0x51b6ec
mov edx, 0x50caa8
call fcn.0040a4c8
push 0x10
mov eax, dword [0x51b73c]
call fcn.0040ac78
push eax
mov eax, dword [0x51b6ec]
call fcn.0040ac78
push eax
push 0
call sub.user32.dll_MessageBoxW
call fcn.004098d8
jmp 0x50c6fd
mov eax, dword [0x51b720]
call fcn.005047f0
test al, al
jne 0x50a5b3
call fcn.004098d8
jmp 0x50c6fd
cmp byte [0x515719], 0
je 0x50a779
mov byte [0x515724], 0
mov byte [0x515725], 0
cmp byte [0x51571a], 0
je 0x50a5e1
mov edi, 1
jmp 0x50a669
cmp byte [0x515718], 0
je 0x50a61a
mov eax, 0x515704
mov edx, 0x50caf0
call fcn.0040a4c8
push 0x50cb0c
push dword [0x51b728]
push 0x50cb28
mov eax, 0x51b6ec
mov edx, 3
call fcn.0040af54
jmp 0x50a648
mov eax, 0x515704
mov edx, 0x50cb4c
call fcn.0040a4c8
push 0x50cb7c
push dword [0x51b728]
push 0x50cbbc
mov eax, 0x51b6ec
mov edx, 3
call fcn.0040af54
push 0x21
mov eax, dword [0x515704]
call fcn.0040ac78
push eax
mov eax, dword [0x51b6ec]
call fcn.0040ac78
push eax
push 0
call sub.user32.dll_MessageBoxW
mov edi, eax
dec edi
jne 0x50a71c
mov dl, 1
mov eax, dword [0x51b728]
call fcn.00421014
test al, al
jne 0x50a779
mov eax, dword [0x51b728]
call fcn.004210f4
test al, al
jne 0x50a779
mov eax, dword [0x515770]
mov dword [eax], 0x52
cmp byte [0x51571a], 0
jne 0x50a712
cmp byte [0x515718], 0
je 0x50a6d4
push 0x50cbd0
push dword [0x51b728]
push 0x50cbec
mov eax, 0x51b6ec
mov edx, 3
call fcn.0040af54
jmp 0x50a6f3
push 0x50cc10
push dword [0x51b728]
push 0x50cc44
mov eax, 0x51b6ec
mov edx, 3
call fcn.0040af54
push 0x10
mov eax, dword [0x515704]
call fcn.0040ac78
push eax
mov eax, dword [0x51b6ec]
call fcn.0040ac78
push eax
push 0
call sub.user32.dll_MessageBoxW
call fcn.004098d8
jmp 0x50c6fd
mov eax, dword [0x515770]
mov dword [eax], 0x4c7
cmp byte [0x515718], 0
je 0x50a741
mov eax, 0x51b6ec
mov edx, 0x50cc64
call fcn.0040a4c8
jmp 0x50a750
mov eax, 0x51b6ec
mov edx, 0x50cc90
call fcn.0040a4c8
push 0
mov eax, dword [0x515704]
call fcn.0040ac78
push eax
mov eax, dword [0x51b6ec]
call fcn.0040ac78
push eax
push 0
call sub.user32.dll_MessageBoxW
call fcn.004098d8
jmp 0x50c6fd
mov eax, dword [0x515a94]
mov eax, dword [eax]
mov edx, dword [0x515710]
call fcn.00437424
lea edx, [ebp - 0xc4]
call fcn.00500ce4
mov edx, dword [ebp - 0xc4]
mov eax, 0x51b740
call fcn.0040a4c8
cmp dword [0x51b740], 0
je 0x50c5b3
xor edx, edx
push ebp
push 0x50c5ac
push dword fs:[edx]
mov dword fs:[edx], esp
cmp byte [0x51571a], 0
jne 0x50a7d3
cmp byte [0x515724], 0
je 0x50a7df
mov eax, 0x515704
call fcn.0040a0e8
jmp 0x50a808
cmp byte [0x515718], 0
je 0x50a7f9
mov eax, 0x515704
mov edx, 0x50ccec
call fcn.0040a4c8
jmp 0x50a808
mov eax, 0x515704
mov edx, 0x50cd10
call fcn.0040a4c8
movzx eax, byte [0x51571a]
push eax
mov ecx, dword [0x515704]
mov dl, 1
mov eax, dword [0x5037d0]
call fcn.00503d8c
mov edx, dword [0x515c88]
mov dword [edx], eax
xor edx, edx
push ebp
push 0x50c57b
push dword fs:[edx]
mov dword fs:[edx], esp
cmp byte [0x51571a], 0
jne 0x50a8dc
cmp byte [0x515724], 0
je 0x50a8cc
cmp byte [0x515725], 0
jne 0x50a8ba
cmp byte [0x515718], 0
je 0x50a871
mov eax, 0x515704
mov edx, 0x50cd3c
call fcn.0040a4c8
jmp 0x50a880
mov eax, 0x515704
mov edx, 0x50cd60
call fcn.0040a4c8
mov eax, dword [0x515c88]
mov eax, dword [eax]
mov edx, dword [0x515704]
call fcn.00503ec8
mov eax, dword [0x515c88]
mov eax, dword [eax]
mov cl, 1
mov dl, 1
call fcn.00503fd8
mov eax, dword [0x515c88]
mov eax, dword [eax]
mov ecx, 1
mov edx, 0x32
call fcn.00504084
jmp 0x50a8dc
mov eax, dword [0x515c88]
mov eax, dword [eax]
xor ecx, ecx
mov dl, 1
call fcn.00503fd8
jmp 0x50a8dc
mov eax, dword [0x515c88]
mov eax, dword [eax]
mov cl, 1
mov dl, 1
call fcn.00503fd8
cmp byte [0x515719], 0
je 0x50a8fa
mov eax, 0x515708
mov edx, dword [0x51b728]
call fcn.0040a4c8
jmp 0x50ab97
mov eax, 0x515708
call fcn.0040a0e8
cmp dword [0x515710], 0
je 0x50ab39
mov eax, dword [0x515ad4]
mov eax, dword [eax]
mov edx, dword [0x515710]
call fcn.00437424
test al, al
je 0x50a9b1
mov eax, dword [0x515ad4]
mov eax, dword [eax]
test eax, eax
je 0x50a93b
sub eax, 4
mov eax, dword [eax]
mov edx, 0x515710
mov ecx, eax
mov eax, 1
xchg edx, eax
call fcn.0040b084
jmp 0x50a963
mov eax, 0x515710
mov ecx, 1
mov edx, 1
call fcn.0040b084
cmp dword [0x515710], 0
je 0x50a97f
mov eax, dword [0x515710]
movzx eax, word [eax]
mov edx, dword [0x515c84]
cmp ax, word [edx]
je 0x50a94f
cmp dword [0x515710], 0
je 0x50ab39
lea edx, [ebp - 0xc8]
mov eax, dword [0x515710]
call fcn.00500b28
mov edx, dword [ebp - 0xc8]
mov eax, 0x515708
call fcn.0040a4c8
jmp 0x50ab39
mov eax, dword [0x515bbc]
mov eax, dword [eax]
mov edx, dword [0x515710]
call fcn.00437424
test al, al
je 0x50aa51
mov eax, dword [0x515bbc]
mov eax, dword [eax]
test eax, eax
je 0x50a9db
sub eax, 4
mov eax, dword [eax]
mov edx, 0x515710
mov ecx, eax
mov eax, 1
xchg edx, eax
call fcn.0040b084
jmp 0x50aa03
mov eax, 0x515710
mov ecx, 1
mov edx, 1
call fcn.0040b084
cmp dword [0x515710], 0
je 0x50aa1f
mov eax, dword [0x515710]
movzx eax, word [eax]
mov edx, dword [0x515c84]
cmp ax, word [edx]
je 0x50a9ef
cmp dword [0x515710], 0
je 0x50ab39
lea edx, [ebp - 0xcc]
mov eax, dword [0x515710]
call fcn.00500b40
mov edx, dword [ebp - 0xcc]
mov eax, 0x515708
call fcn.0040a4c8
jmp 0x50ab39
mov eax, dword [0x515a94]
mov eax, dword [eax]
mov edx, dword [0x515710]
call fcn.00437424
test al, al
je 0x50aaf5
mov eax, dword [0x515a94]
mov eax, dword [eax]
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0
je 0x50aa86
mov eax, dword [ebp - 0x34]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x34], eax
mov eax, 0x515710
mov ecx, dword [ebp - 0x34]
mov edx, 1
call fcn.0040b084
jmp 0x50aaae
mov eax, 0x515710
mov ecx, 1
mov edx, 1
call fcn.0040b084
cmp dword [0x515710], 0
je 0x50aaca
mov eax, dword [0x515710]
movzx eax, word [eax]
mov edx, dword [0x515c84]
cmp ax, word [edx]
je 0x50aa9a
cmp dword [0x515710], 0
je 0x50ab39
lea edx, [ebp - 0xd0]
mov eax, dword [0x515710]
call fcn.00500b58
mov edx, dword [ebp - 0xd0]
mov eax, 0x515708
call fcn.0040a4c8
jmp 0x50ab39
mov dl, 1
mov eax, dword [0x515710]
call fcn.00421014
test al, al
jne 0x50ab29
mov eax, dword [0x515710]
call fcn.004210f4
mov dl, 1
mov eax, dword [0x515710]
call fcn.00421014
test al, al
jne 0x50ab29
mov eax, 0x515710
call fcn.0040a0e8
mov eax, 0x515708
mov edx, dword [0x515710]
call fcn.0040a4c8
cmp dword [0x515708], 0
jne 0x50ab97
lea edx, [ebp - 0xd4]
mov eax, dword [0x51b740]
call fcn.00421718
push dword [ebp - 0xd4]
lea eax, [ebp - 0xd8]
mov edx, dword [0x51590c]
movzx edx, word [edx]
call fcn.0040aca0
push dword [ebp - 0xd8]
lea edx, [ebp - 0xdc]
mov eax, dword [0x51b740]
call fcn.0042188c
push dword [ebp - 0xdc]
mov eax, 0x515708
mov edx, 3
call fcn.0040af54
cmp dword [0x515708], 0
je 0x50c52b
cmp dword [0x515744], 0
jbe 0x50ac19
cmp dword [0x51575c], 0
je 0x50ac19
mov ebx, dword [0x51575c]
mov eax, dword [0x515744]
dec eax
add ebx, eax
movzx ebx, byte [ebx]
test bl, bl
jbe 0x50ac19
cmp bl, 0x10
ja 0x50ac19
movzx eax, bl
cmp eax, dword [0x515744]
jae 0x50ac19
movzx eax, bl
mov edx, dword [0x515744]
sub edx, eax
mov dword [0x515748], edx
mov eax, dword [0x515748]
xor edx, edx
push edx
push eax
mov eax, dword [0x51b708]
mov edx, dword [eax]
call dword [edx + 8]
mov eax, dword [0x51b708]
mov eax, dword [eax + 4]
mov ecx, dword [0x515748]
mov edx, eax
mov eax, dword [0x51575c]
call fcn.00406c38
cmp dword [0x51575c], 0
je 0x50ac55
cmp dword [0x515744], 0
jbe 0x50ac3d
mov edx, dword [0x515744]
mov eax, dword [0x51575c]
xor ecx, ecx
call fcn.00407820
mov eax, dword [0x51575c]
call fcn.00406a34
xor eax, eax
mov dword [0x51575c], eax
xor eax, eax
mov dword [0x515744], eax
cmp dword [0x515748], 0
jbe 0x50c4f3
call fcn.00504b94
test eax, eax
seta byte [0x51b6e8]
mov eax, dword [0x51b708]
mov eax, dword [eax + 4]
mov edx, dword [0x515748]
xor ecx, ecx
call fcn.00407820
xor eax, eax
mov dword [0x515748], eax
cmp byte [0x51b6e8], 0
jne 0x50ace9
mov eax, dword [0x515708]
call fcn.00500fc8
mov eax, dword [0x515770]
mov dword [eax], 0x52
cmp byte [0x51571a], 0
jne 0x50acd5
push 0x10
mov eax, dword [0x51b73c]
call fcn.0040ac78
push eax
push 0x50cd7c
mov eax, dword [0x515c88]
mov eax, dword [eax]
mov eax, dword [eax + 4]
push eax
call sub.user32.dll_MessageBoxW
call fcn.004098d8
call fcn.004098d8
call fcn.004098d8
jmp 0x50c6fd
cmp byte [0x51571a], 0
jne 0x50ad28
mov eax, dword [0x515c88]
mov eax, dword [eax]
cmp byte [eax + 0x13], 0
je 0x50ad28
mov eax, dword [0x515708]
call fcn.00500fc8
mov eax, dword [0x515770]
mov dword [eax], 0x4c7
call fcn.004098d8
call fcn.004098d8
call fcn.004098d8
jmp 0x50c6fd
mov esi, 0xa
push 0x32
call sub.kernel32.dll_Sleep_2
cmp byte [0x51571a], 0
jne 0x50ad4d
mov eax, dword [0x515c88]
mov eax, dword [eax]
call fcn.00503ef8
test al, al
je 0x50ad50
dec esi
jne 0x50ad2d
mov dl, 1
mov eax, dword [0x515708]
call fcn.00421014
test al, al
je 0x50c46a
cmp byte [0x515719], 0
je 0x50ae21
cmp byte [0x51571a], 0
jne 0x50ae0d
cmp byte [0x515718], 0
je 0x50adb7
mov eax, 0x515704
mov edx, 0x50caf0
call fcn.0040a4c8
push 0x50cb0c
push dword [0x51b728]
push 0x50cdc4
mov eax, 0x51b6ec
mov edx, 3
call fcn.0040af54
jmp 0x50ade5
mov eax, 0x515704
mov edx, 0x50cb4c
call fcn.0040a4c8
push 0x50cde8
push dword [0x51b728]
push 0x50ce28
mov eax, 0x51b6ec
mov edx, 3
call fcn.0040af54
push 0
mov eax, dword [0x515704]
call fcn.0040ac78
push eax
mov eax, dword [0x51b6ec]
call fcn.0040ac78
push eax
mov eax, dword [0x515c88]
mov eax, dword [eax]
mov eax, dword [eax + 4]
push eax
call sub.user32.dll_MessageBoxW
call fcn.004098d8
call fcn.004098d8
call fcn.004098d8
jmp 0x50c6fd
cmp dword [0x51570c], 0
je 0x50c42b
cmp dword [0x515740], 0
jbe 0x50af56
cmp dword [0x515758], 0
je 0x50af56
lea ecx, [ebp - 0xe0]
mov edx, dword [0x515aec]
mov edx, dword [edx]
mov eax, dword [0x51570c]
call fcn.00421678
mov edx, dword [ebp - 0xe0]
mov eax, 0x51b748
call fcn.0040a4c8
cmp dword [0x515740], 4
jbe 0x50ae8a
mov eax, dword [0x515758]
cmp dword [eax], 0
jne 0x50ae8a
mov byte [0x51571b], 1
cmp byte [0x51571b], 0
je 0x50aeba
mov ebx, dword [0x515758]
add ebx, 4
mov eax, dword [ebx]
mov dword [0x51b6e4], eax
add ebx, 4
mov ecx, dword [0x51b6e4]
mov edx, ebx
mov eax, dword [0x51b748]
call fcn.00501f08
jmp 0x50af2c
xor ecx, ecx
mov edx, dword [0x51b748]
mov eax, 0x51b758
call fcn.004076c0
call fcn.00406b6c
xor eax, eax
push ebp
push 0x50af25
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, 0x51b758
call fcn.00407380
call fcn.00406b6c
mov edx, dword [0x515758]
mov eax, 0x51b758
call fcn.00407cd0
call fcn.004077bc
call fcn.00406b6c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x50af2c
mov eax, 0x51b758
call fcn.004077c8
call fcn.00406b6c
ret
mov edx, dword [0x515740]
mov eax, dword [0x515758]
xor ecx, ecx
call fcn.00407820
mov eax, dword [0x515758]
call fcn.00406a34
xor eax, eax
mov dword [0x515758], eax
xor eax, eax
mov dword [0x515740], eax
mov eax, 0x51b6fc
call fcn.0040a0e8
mov eax, dword [0x515b0c]
mov eax, dword [eax]
mov dword [0x51ba34], eax
mov edx, 0x51b6ec
mov eax, 0x51ba34
call fcn.005010a8
jmp 0x50af94
push 0
mov eax, 0x51b6fc
mov ecx, 0x50ce3c
mov edx, dword [0x51b704]
call fcn.005011c8
mov edx, 0x51b704
mov eax, 0x51ba34
call fcn.005010a8
test al, al
jne 0x50af7d
lea ecx, [ebp - 0xe4]
mov edx, dword [0x515c7c]
mov edx, dword [edx]
mov eax, dword [0x51570c]
call fcn.00421678
mov edx, dword [ebp - 0xe4]
mov eax, 0x51b744
call fcn.0040a4c8
xor ecx, ecx
mov edx, dword [0x51b744]
mov eax, 0x51b758
call fcn.004076c0
call fcn.00406b6c
xor eax, eax
push ebp
push 0x50c01d
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, 0x51b758
call fcn.00407380
call fcn.00406b6c
lea eax, [ebp - 0xec]
mov edx, dword [0x5157d8]
movzx edx, word [edx]
call fcn.0040aca0
push dword [ebp - 0xec]
mov eax, dword [0x515c0c]
push dword [eax]
lea eax, [ebp - 0xf0]
mov edx, dword [0x515cd4]
movzx edx, word [edx]
call fcn.0040aca0
push dword [ebp - 0xf0]
lea eax, [ebp - 0xe8]
mov edx, 3
call fcn.0040af54
mov edx, dword [ebp - 0xe8]
mov eax, 0x51b758
call fcn.00407eac
call fcn.00407fac
call fcn.00406b6c
mov eax, dword [0x515794]
push dword [eax]
lea eax, [ebp - 0xf8]
mov edx, dword [0x515a18]
movzx edx, word [edx]
call fcn.0040aca0
push dword [ebp - 0xf8]
push dword [0x51b714]
lea eax, [ebp - 0xf4]
mov edx, 3
call fcn.0040af54
mov edx, dword [ebp - 0xf4]
mov eax, 0x51b758
call fcn.00407eac
call fcn.00407fac
call fcn.00406b6c
mov eax, dword [0x515d70]
push dword [eax]
lea eax, [ebp - 0x100]
mov edx, dword [0x515a18]
movzx edx, word [edx]
call fcn.0040aca0
push dword [ebp - 0x100]
push dword [0x51b6fc]
lea eax, [ebp - 0xfc]
mov edx, 3
call fcn.0040af54
mov edx, dword [ebp - 0xfc]
mov eax, 0x51b758
call fcn.00407eac
call fcn.00407fac
call fcn.00406b6c
mov eax, dword [0x5159a8]
push dword [eax]
lea eax, [ebp - 0x108]
mov edx, dword [0x515a18]
movzx edx, word [edx]
call fcn.0040aca0
push dword [ebp - 0x108]
push dword [0x51b72c]
lea eax, [ebp - 0x104]
mov edx, 3
call fcn.0040af54
mov edx, dword [ebp - 0x104]
mov eax, 0x51b758
call fcn.00407eac
call fcn.00407fac
call fcn.00406b6c
mov eax, dword [0x515790]
push dword [eax]
lea eax, [ebp - 0x110]
mov edx, dword [0x515a18]
movzx edx, word [edx]
call fcn.0040aca0
push dword [ebp - 0x110]
push dword [0x51b730]
lea eax, [ebp - 0x10c]
mov edx, 3
call fcn.0040af54
mov edx, dword [ebp - 0x10c]
mov eax, 0x51b758
call fcn.00407eac
call fcn.00407fac
call fcn.00406b6c
mov eax, dword [0x51b734]
mov edx, dword [0x515a30]
mov edx, dword [edx]
call fcn.0040b004
je 0x50b232
mov eax, dword [0x515d70]
push dword [eax]
lea eax, [ebp - 0x118]
mov edx, dword [0x5159c4]
movzx edx, word [edx]
call fcn.0040aca0
push dword [ebp - 0x118]
push dword [0x51b734]
lea eax, [ebp - 0x11c]
mov edx, dword [0x515a18]
movzx edx, word [edx]
call fcn.0040aca0
push dword [ebp - 0x11c]
mov eax, dword [0x515a30]
push dword [eax]
lea eax, [ebp - 0x114]
mov edx, 5
call fcn.0040af54
mov edx, dword [ebp - 0x114]
mov eax, 0x51b758
call fcn.00407eac
call fcn.00407fac
call fcn.00406b6c
mov eax, dword [0x51b738]
mov edx, dword [0x515a44]
mov edx, dword [edx]
call fcn.0040b004
je 0x50b2b8
mov eax, dword [0x515d70]
push dword [eax]
lea eax, [ebp - 0x124]
mov edx, dword [0x5159c4]
movzx edx, word [edx]
call fcn.0040aca0
push dword [ebp - 0x124]
push dword [0x51b738]
lea eax, [ebp - 0x128]
mov edx, dword [0x515a18]
movzx edx, word [edx]
call fcn.0040aca0
push dword [ebp - 0x128]
mov eax, dword [0x515a44]
push dword [eax]
lea eax, [ebp - 0x120]
mov edx, 5
call fcn.0040af54
mov edx, dword [ebp - 0x120]
mov eax, 0x51b758
call fcn.00407eac
call fcn.00407fac
call fcn.00406b6c
cmp byte [0x51571a], 0
je 0x50b2d5
mov eax, 0x51b6ec
mov edx, dword [0x515898]
mov edx, dword [edx]
call fcn.0040a4c8
jmp 0x50b2e7
mov eax, 0x51b6ec
mov edx, dword [0x515c4c]
mov edx, dword [edx]
call fcn.0040a4c8
push dword [0x51b738]
lea eax, [ebp - 0x130]
mov edx, dword [0x515a18]
movzx edx, word [edx]
call fcn.0040aca0
push dword [ebp - 0x130]
push dword [0x51b6ec]
lea eax, [ebp - 0x12c]
mov edx, 3
call fcn.0040af54
mov edx, dword [ebp - 0x12c]
mov eax, 0x51b758
call fcn.00407eac
call fcn.00407fac
call fcn.00406b6c
cmp byte [0x51571e], 0
je 0x50b354
mov eax, 0x51b6ec
mov edx, dword [0x515898]
mov edx, dword [edx]
call fcn.0040a4c8
jmp 0x50b366
mov eax, 0x51b6ec
mov edx, dword [0x515c4c]
mov edx, dword [edx]
call fcn.0040a4c8
mov eax, dword [0x515cfc]
push dword [eax]
lea eax, [ebp - 0x138]
mov edx, dword [0x515a18]
movzx edx, word [edx]
call fcn.0040aca0
push dword [ebp - 0x138]
push dword [0x51b6ec]
lea eax, [ebp - 0x134]
mov edx, 3
call fcn.0040af54
mov edx, dword [ebp - 0x134]
mov eax, 0x51b758
call fcn.00407eac
call fcn.00407fac
call fcn.00406b6c
call fcn.00500818
test al, al
je 0x50b3d4
mov eax, 0x51b6ec
mov edx, dword [0x515898]
mov edx, dword [edx]
call fcn.0040a4c8
jmp 0x50b3e6
mov eax, 0x51b6ec
mov edx, dword [0x515c4c]
mov edx, dword [edx]
call fcn.0040a4c8
mov eax, dword [0x5159a4]
push dword [eax]
lea eax, [ebp - 0x140]
mov edx, dword [0x515a18]
movzx edx, word [edx]
call fcn.0040aca0
push dword [ebp - 0x140]
push dword [0x51b6ec]
lea eax, [ebp - 0x13c]
mov edx, 3
call fcn.0040af54
mov edx, dword [ebp - 0x13c]
mov eax, 0x51b758
call fcn.00407eac
call fcn.00407fac
call fcn.00406b6c
cmp byte [0x515727], 0
jne 0x50b483
cmp byte [0x515728], 0
jne 0x50b483
cmp byte [0x515729], 0
jne 0x50b483
cmp byte [0x51572a], 0
jne 0x50b483
cmp byte [0x51572b], 0
jne 0x50b483
cmp byte [0x51572e], 0
jne 0x50b483
cmp byte [0x51572c], 0
jne 0x50b483
cmp byte [0x51572d], 0
je 0x50c000
lea eax, [ebp - 0x148]
mov edx, dword [0x5157d8]
movzx edx, word [edx]
call fcn.0040aca0
push dword [ebp - 0x148]
mov eax, dword [0x515acc]
push dword [eax]
lea eax, [ebp - 0x14c]
mov edx, dword [0x515cd4]
movzx edx, word [edx]
call fcn.0040aca0
push dword [ebp - 0x14c]
lea eax, [ebp - 0x144]
mov edx, 3
call fcn.0040af54
mov edx, dword [ebp - 0x144]
mov eax, 0x51b758
call fcn.00407eac
call fcn.00407fac
call fcn.00406b6c
cmp byte [0x515727], 0
je 0x50b566
lea eax, [ebp - 0x150]
call fcn.00502ac8
mov edx, dword [ebp - 0x150]
mov eax, 0x51b6ec
call fcn.0040a4c8
cmp dword [0x51b6ec], 0
je 0x50b566
mov eax, dword [0x515bd8]
push dword [eax]
lea eax, [ebp - 0x158]
mov edx, dword [0x515a18]
movzx edx, word [edx]
call fcn.0040aca0
push dword [ebp - 0x158]
push dword [0x51b6ec]
lea eax, [ebp - 0x154]
mov edx, 3
call fcn.0040af54
mov edx, dword [ebp - 0x154]
mov eax, 0x51b758
call fcn.00407eac
call fcn.00407fac
call fcn.00406b6c
cmp byte [0x515728], 0
je 0x50b5e8
lea ecx, [ebp - 0x15c]
mov dl, 5
xor eax, eax
call fcn.00503020
mov edx, dword [ebp - 0x15c]
mov eax, 0x51b6ec
call fcn.0040a4c8
cmp dword [0x51b6ec], 0
je 0x50b5e8
mov eax, dword [0x515cf8]
push dword [eax]
lea eax, [ebp - 0x164]
mov edx, dword [0x515a18]
movzx edx, word [edx]
call fcn.0040aca0
push dword [ebp - 0x164]
push dword [0x51b6ec]
lea eax, [ebp - 0x160]
mov edx, 3
call fcn.0040af54
mov edx, dword [ebp - 0x160]
mov eax, 0x51b758
call fcn.00407eac
call fcn.00407fac
call fcn.00406b6c
cmp byte [0x515729], 0
je 0x50b666
lea eax, [ebp - 0x168]
call fcn.00502ba0
mov edx, dword [ebp - 0x168]
mov eax, 0x51b6ec
call fcn.0040a4c8
cmp dword [0x51b6ec], 0
je 0x50b666
mov eax, dword [0x515868]
push dword [eax]
lea eax, [ebp - 0x170]
mov edx, dword [0x515a18]
movzx edx, word [edx]
call fcn.0040aca0
push dword [ebp - 0x170]
push dword [0x51b6ec]
lea eax, [ebp - 0x16c]
mov edx, 3
call fcn.0040af54
mov edx, dword [ebp - 0x16c]
mov eax, 0x51b758
call fcn.00407eac
call fcn.00407fac
call fcn.00406b6c
cmp byte [0x51572a], 0
je 0x50b6e4
lea eax, [ebp - 0x174]
call fcn.00502b74
mov edx, dword [ebp - 0x174]
mov eax, 0x51b6ec
call fcn.0040a4c8
cmp dword [0x51b6ec], 0
je 0x50b6e4
mov eax, dword [0x515b30]
push dword [eax]
lea eax, [ebp - 0x17c]
mov edx, dword [0x515a18]
movzx edx, word [edx]
call fcn.0040aca0
push dword [ebp - 0x17c]
push dword [0x51b6ec]
lea eax, [ebp - 0x178]
mov edx, 3
call fcn.0040af54
mov edx, dword [ebp - 0x178]
mov eax, 0x51b758
call fcn.00407eac
call fcn.00407fac
call fcn.00406b6c
cmp byte [0x51572b], 0
je 0x50b766
lea ecx, [ebp - 0x180]
mov dl, 0x16
xor eax, eax
call fcn.00503020
mov edx, dword [ebp - 0x180]
mov eax, 0x51b6ec
call fcn.0040a4c8
cmp dword [0x51b6ec], 0
je 0x50b766
mov eax, dword [0x5157f8]
push dword [eax]
lea eax, [ebp - 0x188]
mov edx, dword [0x515a18]
movzx edx, word [edx]
call fcn.0040aca0
push dword [ebp - 0x188]
push dword [0x51b6ec]
lea eax, [ebp - 0x184]
mov edx, 3
call fcn.0040af54
mov edx, dword [ebp - 0x184]
mov eax, 0x51b758
call fcn.00407eac
call fcn.00407fac
call fcn.00406b6c
cmp byte [0x51572e], 0
je 0x50bac2
lea ecx, [ebp - 0x18c]
mov dl, 4
mov al, 1
call fcn.00503020
mov edx, dword [ebp - 0x18c]
mov eax, 0x51b6ec
call fcn.0040a4c8
cmp dword [0x51b6ec], 0
je 0x50b7ec
mov eax, dword [0x515d60]
push dword [eax]
lea eax, [ebp - 0x194]
mov edx, dword [0x515a18]
movzx edx, word [edx]
call fcn.0040aca0
push dword [ebp - 0x194]
push dword [0x51b6ec]
lea eax, [ebp - 0x190]
mov edx, 3
call fcn.0040af54
mov edx, dword [ebp - 0x190]
mov eax, 0x51b758
call fcn.00407eac
call fcn.00407fac
call fcn.00406b6c
lea ecx, [ebp - 0x198]
mov dl, 5
mov al, 1
call fcn.00503020
mov edx, dword [ebp - 0x198]
mov eax, 0x51b6ec
call fcn.0040a4c8
cmp dword [0x51b6ec], 0
je 0x50b865
mov eax, dword [0x515858]
push dword [eax]
lea eax, [ebp - 0x1a0]
mov edx, dword [0x515a18]
movzx edx, word [edx]
call fcn.0040aca0
push dword [ebp - 0x1a0]
push dword [0x51b6ec]
lea eax, [ebp - 0x19c]
mov edx, 3
call fcn.0040af54
mov edx, dword [ebp - 0x19c]
mov eax, 0x51b758
call fcn.00407eac
call fcn.00407fac
call fcn.00406b6c
lea ecx, [ebp - 0x1a4]
mov dl, 6
mov al, 1
call fcn.00503020
mov edx, dword [ebp - 0x1a4]
mov eax, 0x51b6ec
call fcn.0040a4c8
cmp dword [0x51b6ec], 0
je 0x50b8de
mov eax, dword [0x515988]
push dword [eax]
lea eax, [ebp - 0x1ac]
mov edx, dword [0x515a18]
movzx edx, word [edx]
call fcn.0040aca0
push dword [ebp - 0x1ac]
push dword [0x51b6ec]
lea eax, [ebp - 0x1a8]
mov edx, 3
call fcn.0040af54
mov edx, dword [ebp - 0x1a8]
mov eax, 0x51b758
call fcn.00407eac
call fcn.00407fac
call fcn.00406b6c
lea ecx, [ebp - 0x1b0]
mov dl, 7
mov al, 1
call fcn.00503020
mov edx, dword [ebp - 0x1b0]
mov eax, 0x51b6ec
call fcn.0040a4c8
cmp dword [0x51b6ec], 0
je 0x50b957
mov eax, dword [0x5157f0]
push dword [eax]
lea eax, [ebp - 0x1b8]
mov edx, dword [0x515a18]
movzx edx, word [edx]
call fcn.0040aca0
push dword [ebp - 0x1b8]
push dword [0x51b6ec]
lea eax, [ebp - 0x1b4]
mov edx, 3
call fcn.0040af54
mov edx, dword [ebp - 0x1b4]
mov eax, 0x51b758
call fcn.00407eac
call fcn.00407fac
call fcn.00406b6c
lea ecx, [ebp - 0x1bc]
mov dl, 8
mov al, 1
call fcn.00503020
mov edx, dword [ebp - 0x1bc]
mov eax, 0x51b6ec
call fcn.0040a4c8
cmp dword [0x51b6ec], 0
je 0x50b9d0
mov eax, dword [0x515854]
push dword [eax]
lea eax, [ebp - 0x1c4]
mov edx, dword [0x515a18]
movzx edx, word [edx]
call fcn.0040aca0
push dword [ebp - 0x1c4]
push dword [0x51b6ec]
lea eax, [ebp - 0x1c0]
mov edx, 3
call fcn.0040af54
mov edx, dword [ebp - 0x1c0]
mov eax, 0x51b758
call fcn.00407eac
call fcn.00407fac
call fcn.00406b6c
lea ecx, [ebp - 0x1c8]
mov dl, 0x18
mov al, 1
call fcn.00503020
mov edx, dword [ebp - 0x1c8]
mov eax, 0x51b6ec
call fcn.0040a4c8
cmp dword [0x51b6ec], 0
je 0x50ba49
mov eax, dword [0x515cb0]
push dword [eax]
lea eax, [ebp - 0x1d0]
mov edx, dword [0x515a18]
movzx edx, word [edx]
call fcn.0040aca0
push dword [ebp - 0x1d0]
push dword [0x51b6ec]
lea eax, [ebp - 0x1cc]
mov edx, 3
call fcn.0040af54
mov edx, dword [ebp - 0x1cc]
mov eax, 0x51b758
call fcn.00407eac
call fcn.00407fac
call fcn.00406b6c
lea ecx, [ebp - 0x1d4]
xor edx, edx
mov al, 0xb
call fcn.00503020
mov edx, dword [ebp - 0x1d4]
mov eax, 0x51b6ec
call fcn.0040a4c8
cmp dword [0x51b6ec], 0
je 0x50bac2
mov eax, dword [0x515c6c]
push dword [eax]
lea eax, [ebp - 0x1dc]
mov edx, dword [0x515a18]
movzx edx, word [edx]
call fcn.0040aca0
push dword [ebp - 0x1dc]
push dword [0x51b6ec]
lea eax, [ebp - 0x1d8]
mov edx, 3
call fcn.0040af54
mov edx, dword [ebp - 0x1d8]
mov eax, 0x51b758
call fcn.00407eac
call fcn.00407fac
call fcn.00406b6c
cmp byte [0x51572c], 0
je 0x50bb34
call fcn.00503614
mov esi, eax
test esi, esi
jl 0x50bb34
mov eax, dword [0x515be8]
push dword [eax]
lea eax, [ebp - 0x1e4]
mov edx, dword [0x515a18]
movzx edx, word [edx]
call fcn.0040aca0
push dword [ebp - 0x1e4]
lea edx, [ebp - 0x1e8]
mov eax, esi
call fcn.0042059c
push dword [ebp - 0x1e8]
lea eax, [ebp - 0x1e0]
mov edx, 3
call fcn.0040af54
mov edx, dword [ebp - 0x1e0]
mov eax, 0x51b758
call fcn.00407eac
call fcn.00407fac
call fcn.00406b6c
cmp byte [0x51572d], 0
je 0x50c000
push 0x51ba54
call sub.kernel32.dll_GetSystemPowerStatus
test eax, eax
je 0x50c000
movzx eax, byte [0x51ba54]
sub al, 1
jb 0x50bb62
je 0x50bb76
jmp 0x50bb8a
mov eax, 0x51b6ec
mov edx, dword [0x5159e8]
mov edx, dword [edx]
call fcn.0040a4c8
jmp 0x50bb9c
mov eax, 0x51b6ec
mov edx, dword [0x515b64]
mov edx, dword [edx]
call fcn.0040a4c8
jmp 0x50bb9c
mov eax, 0x51b6ec
mov edx, dword [0x515a2c]
mov edx, dword [edx]
call fcn.0040a4c8
mov eax, dword [0x51586c]
push dword [eax]
lea eax, [ebp - 0x1f0]
mov edx, dword [0x515a18]
movzx edx, word [edx]
call fcn.0040aca0
push dword [ebp - 0x1f0]
push dword [0x51b6ec]
lea eax, [ebp - 0x1ec]
mov edx, 3
call fcn.0040af54
mov edx, dword [ebp - 0x1ec]
mov eax, 0x51b758
call fcn.00407eac
call fcn.00407fac
call fcn.00406b6c
cmp byte [0x51ba55], 0xff
jae 0x50bdd9
mov eax, 0x51b6ec
call fcn.0040a0e8
test byte [0x51ba55], 1
je 0x50bc3b
push 0
lea eax, [ebp - 0x1f4]
mov edx, dword [0x515990]
movzx edx, word [edx]
call fcn.0040aca0
mov ecx, dword [ebp - 0x1f4]
mov edx, dword [0x515c94]
mov edx, dword [edx]
mov eax, 0x51b6ec
call fcn.005011c8
test byte [0x51ba55], 2
je 0x50bc72
push 0
lea eax, [ebp - 0x1f8]
mov edx, dword [0x515990]
movzx edx, word [edx]
call fcn.0040aca0
mov ecx, dword [ebp - 0x1f8]
mov edx, dword [0x515b94]
mov edx, dword [edx]
mov eax, 0x51b6ec
call fcn.005011c8
test byte [0x51ba55], 4
je 0x50bca9
push 0
lea eax, [ebp - 0x1fc]
mov edx, dword [0x515990]
movzx edx, word [edx]
call fcn.0040aca0
mov ecx, dword [ebp - 0x1fc]
mov edx, dword [0x515954]
mov edx, dword [edx]
mov eax, 0x51b6ec
call fcn.005011c8
test byte [0x51ba55], 8
je 0x50bce0
push 0
lea eax, [ebp - 0x200]
mov edx, dword [0x515990]
movzx edx, word [edx]
call fcn.0040aca0
mov ecx, dword [ebp - 0x200]
mov edx, dword [0x5159c0]
mov edx, dword [edx]
mov eax, 0x51b6ec
call fcn.005011c8
test byte [0x51ba55], 0x10
je 0x50bd17
push 0
lea eax, [ebp - 0x204]
mov edx, dword [0x515990]
movzx edx, word [edx]
call fcn.0040aca0
mov ecx, dword [ebp - 0x204]
mov edx, dword [0x515bc8]
mov edx, dword [edx]
mov eax, 0x51b6ec
call fcn.005011c8
test byte [0x51ba55], 0x20
je 0x50bd4e
push 0
lea eax, [ebp - 0x208]
mov edx, dword [0x515990]
movzx edx, word [edx]
call fcn.0040aca0
mov ecx, dword [ebp - 0x208]
mov edx, dword [0x515840]
mov edx, dword [edx]
mov eax, 0x51b6ec
call fcn.005011c8
test byte [0x51ba55], 0x40
je 0x50bd85
push 0
lea eax, [ebp - 0x20c]
mov edx, dword [0x515990]
movzx edx, word [edx]
call fcn.0040aca0
mov ecx, dword [ebp - 0x20c]
mov edx, dword [0x5157c4]
mov edx, dword [edx]
mov eax, 0x51b6ec
call fcn.005011c8
test byte [0x51ba55], 0x80
je 0x50bdbc
push 0
lea eax, [ebp - 0x210]
mov edx, dword [0x515990]
movzx edx, word [edx]
call fcn.0040aca0
mov ecx, dword [ebp - 0x210]
mov edx, dword [0x515d80]
mov edx, dword [edx]
mov eax, 0x51b6ec
call fcn.005011c8
cmp dword [0x51b6ec], 0
jne 0x50bdeb
mov eax, 0x51b6ec
mov edx, dword [0x51588c]
mov edx, dword [edx]
call fcn.0040a4c8
jmp 0x50bdeb
mov eax, 0x51b6ec
mov edx, dword [0x515a2c]
mov edx, dword [edx]
call fcn.0040a4c8
mov eax, dword [0x5159dc]
push dword [eax]
lea eax, [ebp - 0x218]
mov edx, dword [0x515a18]
movzx edx, word [edx]
call fcn.0040aca0
push dword [ebp - 0x218]
push dword [0x51b6ec]
lea eax, [ebp - 0x214]
mov edx, 3
call fcn.0040af54
mov edx, dword [ebp - 0x214]
mov eax, 0x51b758
call fcn.00407eac
call fcn.00407fac
call fcn.00406b6c
cmp byte [0x51ba56], 0xff
jae 0x50be79
cmp byte [0x51ba56], 0x64
jbe 0x50be55
mov byte [0x51ba56], 0x64
lea edx, [ebp - 0x21c]
movzx eax, byte [0x51ba56]
call fcn.0042059c
mov edx, dword [ebp - 0x21c]
mov eax, 0x51b6ec
call fcn.0040a4c8
jmp 0x50be8b
mov eax, 0x51b6ec
mov edx, dword [0x515a2c]
mov edx, dword [edx]
call fcn.0040a4c8
mov eax, dword [0x515850]
push dword [eax]
lea eax, [ebp - 0x224]
mov edx, dword [0x515a18]
movzx edx, word [edx]
call fcn.0040aca0
push dword [ebp - 0x224]
push dword [0x51b6ec]
lea eax, [ebp - 0x220]
mov edx, 3
call fcn.0040af54
mov edx, dword [ebp - 0x220]
mov eax, 0x51b758
call fcn.00407eac
call fcn.00407fac
call fcn.00406b6c
cmp dword [0x51ba58], 0xffffffff
je 0x50bf0b
mov eax, dword [0x51ba58]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x228]
call fcn.004205c4
mov edx, dword [ebp - 0x228]
mov eax, 0x51b6ec
call fcn.0040a4c8
jmp 0x50bf1d
mov eax, 0x51b6ec
mov edx, dword [0x515a2c]
mov edx, dword [edx]
call fcn.0040a4c8
mov eax, dword [0x515c48]
push dword [eax]
lea eax, [ebp - 0x230]
mov edx, dword [0x515a18]
movzx edx, word [edx]
call fcn.0040aca0
push dword [ebp - 0x230]
push dword [0x51b6ec]
lea eax, [ebp - 0x22c]
mov edx, 3
call fcn.0040af54
mov edx, dword [ebp - 0x22c]
mov eax, 0x51b758
call fcn.00407eac
call fcn.00407fac
call fcn.00406b6c
cmp dword [0x51ba5c], 0xffffffff
je 0x50bf9d
mov eax, dword [0x51ba5c]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x234]
call fcn.004205c4
mov edx, dword [ebp - 0x234]
mov eax, 0x51b6ec
call fcn.0040a4c8
jmp 0x50bfaf
mov eax, 0x51b6ec
mov edx, dword [0x515a2c]
mov edx, dword [edx]
call fcn.0040a4c8
mov eax, dword [0x515ac4]
push dword [eax]
lea eax, [ebp - 0x23c]
mov edx, dword [0x515a18]
movzx edx, word [edx]
call fcn.0040aca0
push dword [ebp - 0x23c]
push dword [0x51b6ec]
lea eax, [ebp - 0x238]
mov edx, 3
call fcn.0040af54
mov edx, dword [ebp - 0x238]
mov eax, 0x51b758
call fcn.00407eac
call fcn.00407fac
call fcn.00406b6c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x50c024
mov eax, 0x51b758
call fcn.004077c8
call fcn.00406b6c
ret
mov eax, dword [0x515770]
mov dword [eax], 0x7e
cmp byte [0x51571a], 0
jne 0x50c561
push 0x10
mov eax, dword [0x51b73c]
call fcn.0040ac78
push eax
push 0x50cef8
mov eax, dword [0x515c88]
mov eax, dword [eax]
mov eax, dword [eax + 4]
push eax
call sub.user32.dll_MessageBoxW
jmp 0x50c561
mov eax, dword [0x515770]
mov dword [eax], 0x52
cmp byte [0x51571a], 0
jne 0x50c561
cmp byte [0x515718], 0
je 0x50c4ab
mov eax, 0x515704
mov edx, 0x50caf0
call fcn.0040a4c8
mov eax, 0x51b6ec
mov edx, 0x50cf50
call fcn.0040a4c8
jmp 0x50c4c9
mov eax, 0x515704
mov edx, 0x50cb4c
call fcn.0040a4c8
mov eax, 0x51b6ec
mov edx, 0x50cf78
call fcn.0040a4c8
push 0x10
mov eax, dword [0x515704]
call fcn.0040ac78
push eax
mov eax, dword [0x51b6ec]
call fcn.0040ac78
push eax
mov eax, dword [0x515c88]
mov eax, dword [eax]
mov eax, dword [eax + 4]
push eax
call sub.user32.dll_MessageBoxW
jmp 0x50c561
mov eax, dword [0x515770]
mov dword [eax], 0x52
cmp byte [0x51571a], 0
jne 0x50c561
push 0x10
mov eax, dword [0x51b73c]
call fcn.0040ac78
push eax
push 0x50cfac
mov eax, dword [0x515c88]
mov eax, dword [eax]
mov eax, dword [eax + 4]
push eax
call sub.user32.dll_MessageBoxW
jmp 0x50c561
mov eax, dword [0x515770]
mov dword [eax], 0x52
cmp byte [0x51571a], 0
jne 0x50c561
push 0x10
mov eax, dword [0x51b73c]
call fcn.0040ac78
push eax
push 0x50cfe4
mov eax, dword [0x515c88]
mov eax, dword [eax]
mov eax, dword [eax + 4]
push eax
call sub.user32.dll_MessageBoxW
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x50c582
mov eax, dword [0x515c88]
mov eax, dword [eax]
call fcn.00408394
ret
mov eax, dword [0x515770]
mov dword [eax], 0x52
cmp byte [0x51571a], 0
jne 0x50c5e0
push 0x10
mov eax, dword [0x51b73c]
call fcn.0040ac78
push eax
push 0x50d028
push 0
call sub.user32.dll_MessageBoxW
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x50c6fd
cmp dword [0x515750], 0
je 0x50c61b
cmp dword [0x515738], 0
jbe 0x50c611
mov edx, dword [0x515738]
mov eax, dword [0x515750]
xor ecx, ecx
call fcn.00407820
mov eax, dword [0x515750]
call fcn.00406a34
cmp dword [0x515754], 0
je 0x50c649
cmp dword [0x51573c], 0
jbe 0x50c63f
mov edx, dword [0x51573c]
mov eax, dword [0x515754]
xor ecx, ecx
call fcn.00407820
mov eax, dword [0x515754]
call fcn.00406a34
cmp dword [0x515758], 0
je 0x50c677
cmp dword [0x515740], 0
jbe 0x50c66d
mov edx, dword [0x515740]
mov eax, dword [0x515758]
xor ecx, ecx
call fcn.00407820
mov eax, dword [0x515758]
call fcn.00406a34
cmp dword [0x51575c], 0
je 0x50c6a5
cmp dword [0x515744], 0
jbe 0x50c69b
mov edx, dword [0x515744]
mov eax, dword [0x51575c]
xor ecx, ecx
call fcn.00407820
mov eax, dword [0x51575c]
call fcn.00406a34
cmp dword [0x515748], 0
jbe 0x50c6c3
mov eax, dword [0x51b708]
mov eax, dword [eax + 4]
mov edx, dword [0x515748]
xor ecx, ecx
call fcn.00407820
mov eax, dword [0x51b708]
call fcn.00408394
mov eax, 0x51ba40
xor ecx, ecx
mov edx, 0x14
call fcn.00407820
cmp dword [0x515730], 0
je 0x50c6f2
mov eax, dword [0x515730]
push eax
call sub.kernel32.dll_CloseHandle_1
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x50c768
lea eax, [ebp - 0x260]
mov edx, 0x64
call fcn.0040a148
lea eax, [ebp - 0xd0]
mov edx, 0xb
call fcn.0040a148
lea eax, [ebp - 0xa4]
call fcn.0040a10c
lea eax, [ebp - 0xa0]
mov edx, 5
call fcn.0040a148
lea eax, [ebp - 0x8c]
call fcn.0040a10c
lea eax, [ebp - 0x88]
mov edx, 0x14
call fcn.0040a148
ret