Function at 0x541528
Capabilities:
Check for time delay via gettickcount
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0xa3d
push 0
push 0
dec ecx
jne 0x541530
push ecx
push ebx
push esi
push edi
mov dword [ebp - 0x34], eax
xor eax, eax
push ebp
push 0x544639
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0xc]
call fcn.004055e4
xor eax, eax
mov dword [ebp - 0x68], eax
xor eax, eax
mov dword [ebp - 0x6c], eax
xor eax, eax
mov dword [ebp - 0x70], eax
xor eax, eax
mov dword [ebp - 0x74], eax
mov byte [ebp - 0xed], 1
mov byte [ebp - 0xee], 1
mov byte [ebp - 0xef], 1
mov byte [ebp - 0xf0], 1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [0x582d10]
mov edx, dword [edx]
lea eax, [ebp - 0x24]
mov ecx, 0x544650
call fcn.004058fc
mov eax, dword [ebp - 0x24]
call fcn.0040d554
test al, al
je 0x541640
mov dl, 1
mov eax, dword [0x41c3a4]
call fcn.00404674
mov dword [ebp - 0xe4], eax
xor eax, eax
push ebp
push 0x541611
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0xe4]
call fcn.00421900
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x54161b
mov eax, dword [ebp - 0xe4]
mov edx, dword [eax]
call dword [edx]
cmp edx, 0
jne 0x541631
cmp eax, 0
ja 0x541648
jmp 0x541633
jg 0x541648
lea eax, [ebp - 0xe4]
call fcn.00413818
jmp 0x541648
xor eax, eax
mov dword [ebp - 0xe4], eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [0x582d10]
mov edx, dword [edx]
lea eax, [ebp - 0x28]
mov ecx, 0x544668
call fcn.004058fc
mov eax, dword [ebp - 0x28]
call fcn.0040d554
test al, al
je 0x5416ee
mov dl, 1
mov eax, dword [0x41c3a4]
call fcn.00404674
mov dword [ebp - 0xe8], eax
xor eax, eax
push ebp
push 0x5416bf
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0xe8]
call fcn.00421900
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x5416c9
mov eax, dword [ebp - 0xe8]
mov edx, dword [eax]
call dword [edx]
cmp edx, 0
jne 0x5416df
cmp eax, 0
ja 0x5416f6
jmp 0x5416e1
jg 0x5416f6
lea eax, [ebp - 0xe8]
call fcn.00413818
jmp 0x5416f6
xor eax, eax
mov dword [ebp - 0xe8], eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [0x582d10]
mov edx, dword [edx]
lea eax, [ebp - 0x2c]
mov ecx, 0x544684
call fcn.004058fc
mov eax, dword [ebp - 0x2c]
call fcn.0040d554
test al, al
je 0x54179c
mov dl, 1
mov eax, dword [0x41c3a4]
call fcn.00404674
mov dword [ebp - 0xec], eax
xor eax, eax
push ebp
push 0x54176d
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0xec]
call fcn.00421900
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x541777
mov eax, dword [ebp - 0xec]
mov edx, dword [eax]
call dword [edx]
cmp edx, 0
jne 0x54178d
cmp eax, 0
ja 0x5417a4
jmp 0x54178f
jg 0x5417a4
lea eax, [ebp - 0xec]
call fcn.00413818
jmp 0x5417a4
xor eax, eax
mov dword [ebp - 0xec], eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
xor eax, eax
mov dword [ebp - 0x38], eax
cmp byte [0x58c674], 3
jae 0x5445c7
cmp byte [ebp - 0x41], 0
jne 0x5445c7
mov eax, dword [0x582ca0]
mov eax, dword [eax]
cmp byte [eax + 0xa4], 0
jne 0x5445c7
mov eax, dword [ebp - 0x34]
cmp byte [eax + 0xd], 0
jne 0x5445c7
mov eax, dword [0x582438]
cmp byte [eax], 0
jne 0x5445c7
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [ebp - 0x34]
mov edx, dword [ebp - 0x38]
mov dword [eax + 0x98], edx
mov eax, 0x5446a0
call fcn.0053c0e0
mov eax, dword [ebp - 0x34]
push eax
push 0x545474
mov eax, dword [ebp - 0x34]
call fcn.004257cc
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
call sub.kernel32.dll_GetTickCount_1
mov dword [ebp - 0x48], eax
mov byte [ebp - 0x41], 0
mov eax, dword [ebp - 0x34]
mov byte [eax + 0x9f], 0
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 0x34]
mov dword [edx + 0xa0], eax
call sub.kernel32.dll_GetTickCount_1
mov dword [ebp - 0x40], eax
mov byte [ebp - 0x55], 0
mov eax, dword [ebp - 0x34]
mov byte [eax + 0x9e], 0
lea eax, [ebp - 0xc]
call fcn.004055e4
lea eax, [ebp - 0x14]
call fcn.004055e4
xor eax, eax
mov dword [ebp - 0x54], eax
xor ecx, ecx
mov dl, 1
mov eax, dword [0x489e74]
call fcn.0048bca0
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x34]
mov dword [eax + 0x8c], edx
mov dword [eax + 0x88], 0x5414b0
mov dl, 1
mov eax, dword [ebp - 0x3c]
call fcn.0048bd90
mov eax, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x34]
mov dword [eax + 0x54], edx
mov dword [eax + 0x50], 0x541478
mov eax, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x34]
mov dword [eax + 0x64], edx
mov dword [eax + 0x60], 0x5414a0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebp - 0x38], 0
jne 0x5419ce
mov edx, dword [0x5826f8]
movzx edx, word [edx + 0x1da]
mov eax, dword [ebp - 0x3c]
call fcn.0048b6ec
lea eax, [ebp - 0x51b8]
mov edx, dword [0x5826f8]
add edx, 0x19c
call fcn.00405848
mov edx, dword [ebp - 0x51b8]
mov eax, dword [ebp - 0x3c]
call fcn.0048b66c
lea eax, [ebp - 0x20]
mov edx, dword [0x5826f8]
add edx, 0x1de
call fcn.00405848
jmp 0x541a1c
mov edx, dword [0x5826f8]
movzx edx, word [edx + 0x1dc]
mov eax, dword [ebp - 0x3c]
call fcn.0048b6ec
lea eax, [ebp - 0x51bc]
mov edx, dword [0x5826f8]
add edx, 0x1bb
call fcn.00405848
mov edx, dword [ebp - 0x51bc]
mov eax, dword [ebp - 0x3c]
call fcn.0048b66c
lea eax, [ebp - 0x20]
mov edx, dword [0x5826f8]
add edx, 0x1fd
call fcn.00405848
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dl, 1
mov eax, dword [ebp - 0x3c]
call fcn.0048b5ac
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [ebp - 0x34]
movzx eax, byte [eax + 0x9e]
or al, byte [ebp - 0x41]
jne 0x5445aa
mov eax, dword [0x582ca0]
mov eax, dword [eax]
cmp byte [eax + 0xa4], 0
jne 0x5445aa
mov eax, dword [ebp - 0x34]
cmp byte [eax + 0xd], 0
jne 0x5445aa
mov eax, dword [0x582438]
cmp byte [eax], 0
jne 0x5445aa
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 0x34]
sub eax, dword [edx + 0xa0]
cmp eax, 0x2710
jbe 0x541b16
mov eax, dword [ebp - 0x3c]
mov eax, dword [eax + 0x90]
cmp byte [eax + 8], 0
je 0x5445aa
mov eax, dword [ebp - 0x3c]
mov eax, dword [eax + 0x90]
cmp byte [eax + 8], 0
je 0x54459e
cmp byte [ebp - 0x55], 0
jne 0x54459e
mov byte [ebp - 0x55], 1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea eax, [ebp - 0x4148]
xor ecx, ecx
mov edx, 0x30
call fcn.00403e38
lea eax, [ebp - 0x51b4]
push eax
call sub.kernel32.dll_GetLocalTime
mov word [ebp - 0x4148], 0x3e8
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea eax, [ebp - 0x18]
mov edx, dword [ebp - 0x20]
call fcn.0040567c
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0xf8], eax
cmp dword [ebp - 0xf8], 0
je 0x541bde
mov eax, dword [ebp - 0xf8]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0xf8], eax
mov eax, dword [ebp - 0xf8]
mov dword [ebp - 0xb8], eax
lea eax, [ebp - 0x1c]
mov edx, dword [ebp - 0xb8]
call fcn.00405d04
mov eax, dword [ebp - 0xb8]
mov dword [ebp - 0x413c], eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea eax, [ebp - 0x515c]
mov ecx, 0xff
mov edx, 0x1000
call fcn.00403e38
lea eax, [ebp - 0x51a4]
mov ecx, 0xff
mov edx, 0x48
call fcn.00403e38
movzx eax, word [ebp - 0x51b4]
movzx edx, word [ebp - 0x51b2]
add eax, edx
movzx edx, word [ebp - 0x51ae]
add eax, edx
movzx edx, word [ebp - 0x51ac]
add eax, edx
movzx edx, word [ebp - 0x51aa]
add eax, edx
movzx edx, word [ebp - 0x51a8]
add eax, edx
mov dword [ebp - 0x88], eax
lea edx, [ebp - 0x51c0]
mov eax, dword [ebp - 0x88]
call fcn.0040cdac
mov eax, dword [ebp - 0x51c0]
lea edx, [ebp - 0x415c]
call fcn.0047ee5c
lea eax, [ebp - 0x9e]
xor ecx, ecx
mov edx, 8
call fcn.00403e38
lea edx, [ebp - 0x9e]
lea eax, [ebp - 0x415c]
mov ecx, 8
call fcn.004035b8
mov dword [ebp - 0xa8], 0x40
mov ecx, 8
mov eax, dword [ebp - 0xa8]
xor edx, edx
div ecx
mov dword [ebp - 0xa8], eax
lea edx, [ebp - 0x515c]
mov eax, dword [0x582f7c]
mov ecx, 0x1000
call fcn.004035b8
lea edx, [ebp - 0x51a4]
mov eax, dword [0x582cd4]
mov ecx, 0x48
call fcn.004035b8
xor eax, eax
mov dword [ebp - 0xa4], eax
mov dword [ebp - 0xc0], 0x12
lea eax, [ebp - 0x51a4]
mov dword [ebp - 0x104], eax
mov eax, dword [ebp - 0xa4]
add eax, 3
xor edx, edx
div dword [ebp - 0xa8]
movzx eax, byte [ebp + edx - 0x9e]
mov dword [ebp - 0xac], eax
mov eax, dword [ebp - 0xa4]
add eax, 2
xor edx, edx
div dword [ebp - 0xa8]
movzx eax, byte [ebp + edx - 0x9e]
shl eax, 8
add dword [ebp - 0xac], eax
mov eax, dword [ebp - 0xa4]
inc eax
xor edx, edx
div dword [ebp - 0xa8]
movzx eax, byte [ebp + edx - 0x9e]
shl eax, 0x10
add dword [ebp - 0xac], eax
mov eax, dword [ebp - 0xa4]
movzx eax, byte [ebp + eax - 0x9e]
shl eax, 0x18
add dword [ebp - 0xac], eax
mov eax, dword [ebp - 0x104]
mov edx, dword [ebp - 0xac]
xor dword [eax], edx
mov eax, dword [ebp - 0xa4]
add eax, 4
xor edx, edx
div dword [ebp - 0xa8]
mov dword [ebp - 0xa4], edx
add dword [ebp - 0x104], 4
dec dword [ebp - 0xc0]
jne 0x541d4d
lea eax, [ebp - 0xb4]
xor ecx, ecx
mov edx, 8
call fcn.00403e38
mov dword [ebp - 0xc0], 9
lea eax, [ebp - 0x51a4]
mov dword [ebp - 0x104], eax
lea eax, [ebp - 0xb4]
mov ebx, dword [eax]
lea eax, [ebp - 0xb4]
add eax, 4
mov esi, dword [eax]
mov eax, ebx
and eax, 0xff
shl eax, 0x18
mov edx, ebx
and edx, 0xff00
shl edx, 8
or eax, edx
mov edx, ebx
and edx, 0xff0000
shr edx, 8
or eax, edx
and ebx, 0xff000000
shr ebx, 0x18
or eax, ebx
mov ebx, eax
mov eax, esi
and eax, 0xff
shl eax, 0x18
mov edx, esi
and edx, 0xff00
shl edx, 8
or eax, edx
mov edx, esi
and edx, 0xff0000
shr edx, 8
or eax, edx
and esi, 0xff000000
shr esi, 0x18
or eax, esi
mov esi, eax
xor ebx, dword [ebp - 0x51a4]
mov eax, ebx
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x515c]
mov edx, ebx
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d5c]
mov edx, ebx
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x495c]
mov edx, ebx
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x455c]
xor esi, eax
xor esi, dword [ebp - 0x51a0]
mov eax, esi
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x515c]
mov edx, esi
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d5c]
mov edx, esi
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x495c]
mov edx, esi
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x455c]
xor ebx, eax
xor ebx, dword [ebp - 0x519c]
mov eax, ebx
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x515c]
mov edx, ebx
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d5c]
mov edx, ebx
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x495c]
mov edx, ebx
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x455c]
xor esi, eax
xor esi, dword [ebp - 0x5198]
mov eax, esi
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x515c]
mov edx, esi
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d5c]
mov edx, esi
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x495c]
mov edx, esi
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x455c]
xor ebx, eax
xor ebx, dword [ebp - 0x5194]
mov eax, ebx
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x515c]
mov edx, ebx
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d5c]
mov edx, ebx
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x495c]
mov edx, ebx
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x455c]
xor esi, eax
xor esi, dword [ebp - 0x5190]
mov eax, esi
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x515c]
mov edx, esi
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d5c]
mov edx, esi
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x495c]
mov edx, esi
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x455c]
xor ebx, eax
xor ebx, dword [ebp - 0x518c]
mov eax, ebx
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x515c]
mov edx, ebx
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d5c]
mov edx, ebx
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x495c]
mov edx, ebx
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x455c]
xor esi, eax
xor esi, dword [ebp - 0x5188]
mov eax, esi
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x515c]
mov edx, esi
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d5c]
mov edx, esi
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x495c]
mov edx, esi
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x455c]
xor ebx, eax
xor ebx, dword [ebp - 0x5184]
mov eax, ebx
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x515c]
mov edx, ebx
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d5c]
mov edx, ebx
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x495c]
mov edx, ebx
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x455c]
xor esi, eax
xor esi, dword [ebp - 0x5180]
mov eax, esi
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x515c]
mov edx, esi
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d5c]
mov edx, esi
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x495c]
mov edx, esi
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x455c]
xor ebx, eax
xor ebx, dword [ebp - 0x517c]
mov eax, ebx
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x515c]
mov edx, ebx
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d5c]
mov edx, ebx
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x495c]
mov edx, ebx
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x455c]
xor esi, eax
xor esi, dword [ebp - 0x5178]
mov eax, esi
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x515c]
mov edx, esi
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d5c]
mov edx, esi
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x495c]
mov edx, esi
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x455c]
xor ebx, eax
xor ebx, dword [ebp - 0x5174]
mov eax, ebx
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x515c]
mov edx, ebx
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d5c]
mov edx, ebx
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x495c]
mov edx, ebx
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x455c]
xor esi, eax
xor esi, dword [ebp - 0x5170]
mov eax, esi
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x515c]
mov edx, esi
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d5c]
mov edx, esi
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x495c]
mov edx, esi
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x455c]
xor ebx, eax
xor ebx, dword [ebp - 0x516c]
mov eax, ebx
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x515c]
mov edx, ebx
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d5c]
mov edx, ebx
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x495c]
mov edx, ebx
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x455c]
xor esi, eax
xor esi, dword [ebp - 0x5168]
mov eax, esi
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x515c]
mov edx, esi
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d5c]
mov edx, esi
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x495c]
mov edx, esi
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x455c]
xor ebx, eax
xor ebx, dword [ebp - 0x5164]
xor esi, dword [ebp - 0x5160]
mov eax, ebx
and eax, 0xff
shl eax, 0x18
mov edx, ebx
and edx, 0xff00
shl edx, 8
or eax, edx
mov edx, ebx
and edx, 0xff0000
shr edx, 8
or eax, edx
and ebx, 0xff000000
shr ebx, 0x18
or eax, ebx
mov ebx, eax
mov eax, esi
and eax, 0xff
shl eax, 0x18
mov edx, esi
and edx, 0xff00
shl edx, 8
or eax, edx
mov edx, esi
and edx, 0xff0000
shr edx, 8
or eax, edx
and esi, 0xff000000
shr esi, 0x18
or eax, esi
mov esi, eax
lea eax, [ebp - 0xb4]
mov dword [eax], esi
lea eax, [ebp - 0xb4]
add eax, 4
mov dword [eax], ebx
movzx eax, byte [ebp - 0xb1]
movzx edx, byte [ebp - 0xb2]
shl edx, 8
add eax, edx
movzx edx, byte [ebp - 0xb3]
shl edx, 0x10
add eax, edx
movzx edx, byte [ebp - 0xb4]
shl edx, 0x18
add eax, edx
mov edx, dword [ebp - 0x104]
mov dword [edx], eax
movzx eax, byte [ebp - 0xad]
movzx edx, byte [ebp - 0xae]
shl edx, 8
add eax, edx
movzx edx, byte [ebp - 0xaf]
shl edx, 0x10
add eax, edx
movzx edx, byte [ebp - 0xb0]
shl edx, 0x18
add eax, edx
mov edx, dword [ebp - 0x104]
mov dword [edx + 4], eax
add dword [ebp - 0x104], 8
dec dword [ebp - 0xc0]
jne 0x541e25
mov dword [ebp - 0xa4], 4
lea eax, [ebp - 0x515c]
mov dword [ebp - 0x104], eax
mov dword [ebp - 0xc0], 0x80
mov eax, dword [ebp - 0x104]
mov dword [ebp - 0x108], eax
lea eax, [ebp - 0xb4]
mov ebx, dword [eax]
lea eax, [ebp - 0xb4]
add eax, 4
mov esi, dword [eax]
mov eax, ebx
and eax, 0xff
shl eax, 0x18
mov edx, ebx
and edx, 0xff00
shl edx, 8
or eax, edx
mov edx, ebx
and edx, 0xff0000
shr edx, 8
or eax, edx
and ebx, 0xff000000
shr ebx, 0x18
or eax, ebx
mov ebx, eax
mov eax, esi
and eax, 0xff
shl eax, 0x18
mov edx, esi
and edx, 0xff00
shl edx, 8
or eax, edx
mov edx, esi
and edx, 0xff0000
shr edx, 8
or eax, edx
and esi, 0xff000000
shr esi, 0x18
or eax, esi
mov esi, eax
xor ebx, dword [ebp - 0x51a4]
mov eax, ebx
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x515c]
mov edx, ebx
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d5c]
mov edx, ebx
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x495c]
mov edx, ebx
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x455c]
xor esi, eax
xor esi, dword [ebp - 0x51a0]
mov eax, esi
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x515c]
mov edx, esi
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d5c]
mov edx, esi
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x495c]
mov edx, esi
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x455c]
xor ebx, eax
xor ebx, dword [ebp - 0x519c]
mov eax, ebx
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x515c]
mov edx, ebx
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d5c]
mov edx, ebx
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x495c]
mov edx, ebx
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x455c]
xor esi, eax
xor esi, dword [ebp - 0x5198]
mov eax, esi
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x515c]
mov edx, esi
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d5c]
mov edx, esi
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x495c]
mov edx, esi
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x455c]
xor ebx, eax
xor ebx, dword [ebp - 0x5194]
mov eax, ebx
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x515c]
mov edx, ebx
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d5c]
mov edx, ebx
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x495c]
mov edx, ebx
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x455c]
xor esi, eax
xor esi, dword [ebp - 0x5190]
mov eax, esi
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x515c]
mov edx, esi
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d5c]
mov edx, esi
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x495c]
mov edx, esi
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x455c]
xor ebx, eax
xor ebx, dword [ebp - 0x518c]
mov eax, ebx
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x515c]
mov edx, ebx
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d5c]
mov edx, ebx
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x495c]
mov edx, ebx
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x455c]
xor esi, eax
xor esi, dword [ebp - 0x5188]
mov eax, esi
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x515c]
mov edx, esi
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d5c]
mov edx, esi
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x495c]
mov edx, esi
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x455c]
xor ebx, eax
xor ebx, dword [ebp - 0x5184]
mov eax, ebx
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x515c]
mov edx, ebx
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d5c]
mov edx, ebx
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x495c]
mov edx, ebx
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x455c]
xor esi, eax
xor esi, dword [ebp - 0x5180]
mov eax, esi
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x515c]
mov edx, esi
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d5c]
mov edx, esi
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x495c]
mov edx, esi
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x455c]
xor ebx, eax
xor ebx, dword [ebp - 0x517c]
mov eax, ebx
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x515c]
mov edx, ebx
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d5c]
mov edx, ebx
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x495c]
mov edx, ebx
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x455c]
xor esi, eax
xor esi, dword [ebp - 0x5178]
mov eax, esi
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x515c]
mov edx, esi
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d5c]
mov edx, esi
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x495c]
mov edx, esi
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x455c]
xor ebx, eax
xor ebx, dword [ebp - 0x5174]
mov eax, ebx
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x515c]
mov edx, ebx
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d5c]
mov edx, ebx
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x495c]
mov edx, ebx
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x455c]
xor esi, eax
xor esi, dword [ebp - 0x5170]
mov eax, esi
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x515c]
mov edx, esi
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d5c]
mov edx, esi
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x495c]
mov edx, esi
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x455c]
xor ebx, eax
xor ebx, dword [ebp - 0x516c]
mov eax, ebx
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x515c]
mov edx, ebx
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d5c]
mov edx, ebx
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x495c]
mov edx, ebx
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x455c]
xor esi, eax
xor esi, dword [ebp - 0x5168]
mov eax, esi
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x515c]
mov edx, esi
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d5c]
mov edx, esi
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x495c]
mov edx, esi
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x455c]
xor ebx, eax
xor ebx, dword [ebp - 0x5164]
xor esi, dword [ebp - 0x5160]
mov eax, ebx
and eax, 0xff
shl eax, 0x18
mov edx, ebx
and edx, 0xff00
shl edx, 8
or eax, edx
mov edx, ebx
and edx, 0xff0000
shr edx, 8
or eax, edx
and ebx, 0xff000000
shr ebx, 0x18
or eax, ebx
mov ebx, eax
mov eax, esi
and eax, 0xff
shl eax, 0x18
mov edx, esi
and edx, 0xff00
shl edx, 8
or eax, edx
mov edx, esi
and edx, 0xff0000
shr edx, 8
or eax, edx
and esi, 0xff000000
shr esi, 0x18
or eax, esi
mov esi, eax
lea eax, [ebp - 0xb4]
mov dword [eax], esi
lea eax, [ebp - 0xb4]
add eax, 4
mov dword [eax], ebx
movzx eax, byte [ebp - 0xb1]
movzx edx, byte [ebp - 0xb2]
shl edx, 8
add eax, edx
movzx edx, byte [ebp - 0xb3]
shl edx, 0x10
add eax, edx
movzx edx, byte [ebp - 0xb4]
shl edx, 0x18
add eax, edx
mov edx, dword [ebp - 0x108]
mov dword [edx], eax
movzx eax, byte [ebp - 0xad]
movzx edx, byte [ebp - 0xae]
shl edx, 8
add eax, edx
movzx edx, byte [ebp - 0xaf]
shl edx, 0x10
add eax, edx
movzx edx, byte [ebp - 0xb0]
shl edx, 0x18
add eax, edx
mov edx, dword [ebp - 0x108]
mov dword [edx + 4], eax
add dword [ebp - 0x108], 8
dec dword [ebp - 0xc0]
jne 0x542481
add dword [ebp - 0x104], 0x400
dec dword [ebp - 0xa4]
jne 0x54246b
lea eax, [ebp - 0x1c]
call fcn.00405ad4
mov dword [ebp - 0xdc], eax
lea eax, [ebp - 0x18]
call fcn.00405ad4
mov dword [ebp - 0xd8], eax
lea eax, [ebp - 0xd4]
mov ecx, 0xff
mov edx, 8
call fcn.00403e38
mov eax, dword [ebp - 0xd8]
mov dword [ebp - 0xc8], eax
mov eax, dword [ebp - 0xdc]
mov dword [ebp - 0xcc], eax
mov eax, dword [ebp - 0xb8]
test eax, eax
jns 0x542b1d
add eax, 7
sar eax, 3
test eax, eax
jbe 0x5431bd
mov dword [ebp - 0xf4], eax
mov edx, dword [ebp - 0xcc]
mov eax, dword [ebp - 0xc8]
mov ecx, 8
call fcn.004035b8
mov dword [ebp - 0xc4], 1
mov eax, dword [ebp - 0xcc]
cdq
push edx
push eax
mov eax, dword [ebp - 0xc4]
xor edx, edx
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
sub eax, 1
sbb edx, 0
movzx ecx, byte [eax]
lea eax, [ebp - 0xd4]
cdq
push edx
push eax
mov eax, dword [ebp - 0xc4]
xor edx, edx
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
sub eax, 1
sbb edx, 0
xor cl, byte [eax]
mov eax, dword [ebp - 0xcc]
cdq
push edx
push eax
mov eax, dword [ebp - 0xc4]
xor edx, edx
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
sub eax, 1
sbb edx, 0
mov byte [eax], cl
inc dword [ebp - 0xc4]
cmp dword [ebp - 0xc4], 9
jne 0x542b4e
mov eax, dword [ebp - 0xcc]
mov ebx, dword [eax]
mov eax, dword [ebp - 0xcc]
add eax, 4
mov esi, dword [eax]
mov eax, ebx
and eax, 0xff
shl eax, 0x18
mov edx, ebx
and edx, 0xff00
shl edx, 8
or eax, edx
mov edx, ebx
and edx, 0xff0000
shr edx, 8
or eax, edx
and ebx, 0xff000000
shr ebx, 0x18
or eax, ebx
mov ebx, eax
mov eax, esi
and eax, 0xff
shl eax, 0x18
mov edx, esi
and edx, 0xff00
shl edx, 8
or eax, edx
mov edx, esi
and edx, 0xff0000
shr edx, 8
or eax, edx
and esi, 0xff000000
shr esi, 0x18
or eax, esi
mov esi, eax
xor ebx, dword [ebp - 0x51a4]
mov eax, ebx
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x515c]
mov edx, ebx
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d5c]
mov edx, ebx
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x495c]
mov edx, ebx
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x455c]
xor esi, eax
xor esi, dword [ebp - 0x51a0]
mov eax, esi
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x515c]
mov edx, esi
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d5c]
mov edx, esi
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x495c]
mov edx, esi
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x455c]
xor ebx, eax
xor ebx, dword [ebp - 0x519c]
mov eax, ebx
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x515c]
mov edx, ebx
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d5c]
mov edx, ebx
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x495c]
mov edx, ebx
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x455c]
xor esi, eax
xor esi, dword [ebp - 0x5198]
mov eax, esi
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x515c]
mov edx, esi
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d5c]
mov edx, esi
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x495c]
mov edx, esi
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x455c]
xor ebx, eax
xor ebx, dword [ebp - 0x5194]
mov eax, ebx
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x515c]
mov edx, ebx
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d5c]
mov edx, ebx
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x495c]
mov edx, ebx
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x455c]
xor esi, eax
xor esi, dword [ebp - 0x5190]
mov eax, esi
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x515c]
mov edx, esi
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d5c]
mov edx, esi
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x495c]
mov edx, esi
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x455c]
xor ebx, eax
xor ebx, dword [ebp - 0x518c]
mov eax, ebx
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x515c]
mov edx, ebx
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d5c]
mov edx, ebx
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x495c]
mov edx, ebx
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x455c]
xor esi, eax
xor esi, dword [ebp - 0x5188]
mov eax, esi
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x515c]
mov edx, esi
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d5c]
mov edx, esi
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x495c]
mov edx, esi
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x455c]
xor ebx, eax
xor ebx, dword [ebp - 0x5184]
mov eax, ebx
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x515c]
mov edx, ebx
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d5c]
mov edx, ebx
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x495c]
mov edx, ebx
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x455c]
xor esi, eax
xor esi, dword [ebp - 0x5180]
mov eax, esi
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x515c]
mov edx, esi
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d5c]
mov edx, esi
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x495c]
mov edx, esi
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x455c]
xor ebx, eax
xor ebx, dword [ebp - 0x517c]
mov eax, ebx
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x515c]
mov edx, ebx
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d5c]
mov edx, ebx
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x495c]
mov edx, ebx
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x455c]
xor esi, eax
xor esi, dword [ebp - 0x5178]
mov eax, esi
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x515c]
mov edx, esi
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d5c]
mov edx, esi
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x495c]
mov edx, esi
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x455c]
xor ebx, eax
xor ebx, dword [ebp - 0x5174]
mov eax, ebx
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x515c]
mov edx, ebx
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d5c]
mov edx, ebx
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x495c]
mov edx, ebx
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x455c]
xor esi, eax
xor esi, dword [ebp - 0x5170]
mov eax, esi
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x515c]
mov edx, esi
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d5c]
mov edx, esi
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x495c]
mov edx, esi
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x455c]
xor ebx, eax
xor ebx, dword [ebp - 0x516c]
mov eax, ebx
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x515c]
mov edx, ebx
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d5c]
mov edx, ebx
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x495c]
mov edx, ebx
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x455c]
xor esi, eax
xor esi, dword [ebp - 0x5168]
mov eax, esi
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x515c]
mov edx, esi
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d5c]
mov edx, esi
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x495c]
mov edx, esi
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x455c]
xor ebx, eax
xor ebx, dword [ebp - 0x5164]
xor esi, dword [ebp - 0x5160]
mov eax, ebx
and eax, 0xff
shl eax, 0x18
mov edx, ebx
and edx, 0xff00
shl edx, 8
or eax, edx
mov edx, ebx
and edx, 0xff0000
shr edx, 8
or eax, edx
and ebx, 0xff000000
shr ebx, 0x18
or eax, ebx
mov ebx, eax
mov eax, esi
and eax, 0xff
shl eax, 0x18
mov edx, esi
and edx, 0xff00
shl edx, 8
or eax, edx
mov edx, esi
and edx, 0xff0000
shr edx, 8
or eax, edx
and esi, 0xff000000
shr esi, 0x18
or eax, esi
mov esi, eax
mov eax, dword [ebp - 0xcc]
mov dword [eax], esi
mov eax, dword [ebp - 0xcc]
add eax, 4
mov dword [eax], ebx
lea edx, [ebp - 0xd4]
mov eax, dword [ebp - 0xcc]
mov ecx, 8
call fcn.004035b8
mov eax, dword [ebp - 0xcc]
add eax, 8
mov dword [ebp - 0xcc], eax
mov eax, dword [ebp - 0xc8]
add eax, 8
mov dword [ebp - 0xc8], eax
dec dword [ebp - 0xf4]
jne 0x542b2e
mov eax, dword [ebp - 0xb8]
and eax, 0x80000007
jns 0x5431cf
dec eax
or eax, 0xfffffff8
inc eax
test eax, eax
je 0x543852
lea eax, [ebp - 0xd4]
mov ebx, dword [eax]
lea eax, [ebp - 0xd4]
add eax, 4
mov esi, dword [eax]
mov eax, ebx
and eax, 0xff
shl eax, 0x18
mov edx, ebx
and edx, 0xff00
shl edx, 8
or eax, edx
mov edx, ebx
and edx, 0xff0000
shr edx, 8
or eax, edx
and ebx, 0xff000000
shr ebx, 0x18
or eax, ebx
mov ebx, eax
mov eax, esi
and eax, 0xff
shl eax, 0x18
mov edx, esi
and edx, 0xff00
shl edx, 8
or eax, edx
mov edx, esi
and edx, 0xff0000
shr edx, 8
or eax, edx
and esi, 0xff000000
shr esi, 0x18
or eax, esi
mov esi, eax
xor ebx, dword [ebp - 0x51a4]
mov eax, ebx
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x515c]
mov edx, ebx
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d5c]
mov edx, ebx
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x495c]
mov edx, ebx
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x455c]
xor esi, eax
xor esi, dword [ebp - 0x51a0]
mov eax, esi
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x515c]
mov edx, esi
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d5c]
mov edx, esi
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x495c]
mov edx, esi
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x455c]
xor ebx, eax
xor ebx, dword [ebp - 0x519c]
mov eax, ebx
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x515c]
mov edx, ebx
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d5c]
mov edx, ebx
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x495c]
mov edx, ebx
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x455c]
xor esi, eax
xor esi, dword [ebp - 0x5198]
mov eax, esi
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x515c]
mov edx, esi
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d5c]
mov edx, esi
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x495c]
mov edx, esi
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x455c]
xor ebx, eax
xor ebx, dword [ebp - 0x5194]
mov eax, ebx
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x515c]
mov edx, ebx
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d5c]
mov edx, ebx
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x495c]
mov edx, ebx
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x455c]
xor esi, eax
xor esi, dword [ebp - 0x5190]
mov eax, esi
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x515c]
mov edx, esi
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d5c]
mov edx, esi
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x495c]
mov edx, esi
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x455c]
xor ebx, eax
xor ebx, dword [ebp - 0x518c]
mov eax, ebx
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x515c]
mov edx, ebx
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d5c]
mov edx, ebx
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x495c]
mov edx, ebx
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x455c]
xor esi, eax
xor esi, dword [ebp - 0x5188]
mov eax, esi
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x515c]
mov edx, esi
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d5c]
mov edx, esi
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x495c]
mov edx, esi
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x455c]
xor ebx, eax
xor ebx, dword [ebp - 0x5184]
mov eax, ebx
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x515c]
mov edx, ebx
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d5c]
mov edx, ebx
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x495c]
mov edx, ebx
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x455c]
xor esi, eax
xor esi, dword [ebp - 0x5180]
mov eax, esi
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x515c]
mov edx, esi
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d5c]
mov edx, esi
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x495c]
mov edx, esi
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x455c]
xor ebx, eax
xor ebx, dword [ebp - 0x517c]
mov eax, ebx
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x515c]
mov edx, ebx
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d5c]
mov edx, ebx
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x495c]
mov edx, ebx
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x455c]
xor esi, eax
xor esi, dword [ebp - 0x5178]
mov eax, esi
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x515c]
mov edx, esi
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d5c]
mov edx, esi
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x495c]
mov edx, esi
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x455c]
xor ebx, eax
xor ebx, dword [ebp - 0x5174]
mov eax, ebx
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x515c]
mov edx, ebx
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d5c]
mov edx, ebx
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x495c]
mov edx, ebx
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x455c]
xor esi, eax
xor esi, dword [ebp - 0x5170]
mov eax, esi
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x515c]
mov edx, esi
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d5c]
mov edx, esi
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x495c]
mov edx, esi
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x455c]
xor ebx, eax
xor ebx, dword [ebp - 0x516c]
mov eax, ebx
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x515c]
mov edx, ebx
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d5c]
mov edx, ebx
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x495c]
mov edx, ebx
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x455c]
xor esi, eax
xor esi, dword [ebp - 0x5168]
mov eax, esi
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x515c]
mov edx, esi
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d5c]
mov edx, esi
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x495c]
mov edx, esi
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x455c]
xor ebx, eax
xor ebx, dword [ebp - 0x5164]
xor esi, dword [ebp - 0x5160]
mov eax, ebx
and eax, 0xff
shl eax, 0x18
mov edx, ebx
and edx, 0xff00
shl edx, 8
or eax, edx
mov edx, ebx
and edx, 0xff0000
shr edx, 8
or eax, edx
and ebx, 0xff000000
shr ebx, 0x18
or eax, ebx
mov ebx, eax
mov eax, esi
and eax, 0xff
shl eax, 0x18
mov edx, esi
and edx, 0xff00
shl edx, 8
or eax, edx
mov edx, esi
and edx, 0xff0000
shr edx, 8
or eax, edx
and esi, 0xff000000
shr esi, 0x18
or eax, esi
mov esi, eax
lea eax, [ebp - 0xd4]
mov dword [eax], esi
lea eax, [ebp - 0xd4]
add eax, 4
mov dword [eax], ebx
mov eax, dword [ebp - 0xb8]
and eax, 0x80000007
jns 0x54379f
dec eax
or eax, 0xfffffff8
inc eax
mov dword [ebp - 0xbc], eax
mov edx, dword [ebp - 0xcc]
mov eax, dword [ebp - 0xc8]
mov ecx, dword [ebp - 0xbc]
call fcn.004035b8
mov eax, dword [ebp - 0xbc]
test eax, eax
jbe 0x543852
mov dword [ebp - 0xf4], eax
mov dword [ebp - 0xc4], 1
mov eax, dword [ebp - 0xcc]
cdq
push edx
push eax
mov eax, dword [ebp - 0xc4]
xor edx, edx
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
sub eax, 1
sbb edx, 0
movzx ecx, byte [eax]
lea eax, [ebp - 0xd4]
cdq
push edx
push eax
mov eax, dword [ebp - 0xc4]
xor edx, edx
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
sub eax, 1
sbb edx, 0
xor cl, byte [eax]
mov eax, dword [ebp - 0xcc]
cdq
push edx
push eax
mov eax, dword [ebp - 0xc4]
xor edx, edx
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
sub eax, 1
sbb edx, 0
mov byte [eax], cl
inc dword [ebp - 0xc4]
dec dword [ebp - 0xf4]
jne 0x5437da
lea eax, [ebp - 0x118]
xor ecx, ecx
mov edx, 0x10
call fcn.00403e38
push ebp
call fcn.005414d8
pop ecx
xor eax, eax
push ebp
push 0x5438a0
push dword fs:[eax]
mov dword fs:[eax], esp
lea ecx, [ebp - 0x118]
xor edx, edx
mov eax, 1
call fcn.0053bc2c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5438a7
push ebp
call fcn.00541510
pop ecx
ret
push 1
call sub.kernel32.dll_Sleep_2
jmp 0x541aac
mov eax, dword [ebp - 0x3c]
call fcn.0048b798
mov eax, dword [ebp - 0x3c]
call fcn.004046a4
inc dword [ebp - 0x38]
cmp dword [ebp - 0x38], 2
jne 0x5417e5
cmp dword [ebp - 0xe4], 0
je 0x5445db
mov eax, dword [ebp - 0xe4]
call fcn.004046a4
cmp byte [ebp - 0x41], 0
je 0x5445fd
mov eax, dword [ebp - 0x34]
cmp byte [eax + 0xd], 0
jne 0x5445fd
cmp dword [ebp - 0xc], 0
je 0x5445fd
xor ecx, ecx
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x34]
call fcn.0053d460
mov eax, dword [ebp - 0x34]
push eax
push 0x545490
mov eax, dword [ebp - 0x34]
call fcn.004257cc
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x544640
lea eax, [ebp - 0x51ec]
mov edx, 0xe
call fcn.00405608
lea eax, [ebp - 0x30]
mov edx, 0xa
call fcn.00405608
ret