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

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0xa39
push 0
push 0
dec ecx
jne 0x54e1dc
push ecx
push ebx
push esi
push edi
mov dword [ebp - 0x28], eax
xor eax, eax
push ebp
push 0x550d6b
push dword fs:[eax]
mov dword fs:[eax], esp
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea eax, [ebp - 0xc]
call fcn.004055e4
mov eax, dword [ebp - 0x28]
cmp byte [eax + 0x55], 0
jne 0x550d40
mov eax, dword [ebp - 0x28]
cmp byte [eax + 0xd], 0
jne 0x550d40
mov eax, dword [ebp - 0x28]
push eax
push 0x553bf0
mov eax, dword [ebp - 0x28]
call fcn.00425854
mov byte [ebp - 0x35], 0
mov edx, dword [0x58b254]
mov edx, dword [edx]
lea eax, [ebp - 0x24]
mov ecx, 0x550d84
call fcn.004058fc
mov eax, dword [ebp - 0x24]
call fcn.0040d53c
test al, al
je 0x54e2d0
mov dl, 1
mov eax, dword [0x41c38c]
call fcn.00404674
mov dword [ebp - 0xc8], eax
xor eax, eax
push ebp
push 0x54e296
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0xc8]
call fcn.00421988
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x54e2a0
mov eax, dword [ebp - 0xc8]
mov edx, dword [eax]
call dword [edx]
cmp edx, 0
jne 0x54e2ba
cmp eax, 0
ja 0x54e388
jmp 0x54e2c0
jg 0x54e388
lea eax, [ebp - 0xc8]
call fcn.00413800
jmp 0x54e388
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [0x58b254]
mov edx, dword [edx]
lea eax, [ebp - 0x24]
mov ecx, 0x550d9c
call fcn.004058fc
mov eax, dword [ebp - 0x24]
call fcn.0040d53c
test al, al
je 0x54e36c
mov dl, 1
mov eax, dword [0x41c38c]
call fcn.00404674
mov dword [ebp - 0xc8], eax
xor eax, eax
push ebp
push 0x54e33d
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0xc8]
call fcn.00421988
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x54e347
mov eax, dword [ebp - 0xc8]
mov edx, dword [eax]
call dword [edx]
cmp edx, 0
jne 0x54e35d
cmp eax, 0
ja 0x54e388
jmp 0x54e35f
jg 0x54e388
lea eax, [ebp - 0xc8]
call fcn.00413800
jmp 0x54e388
mov eax, dword [0x58b4b0]
cmp byte [eax], 0
jne 0x54e380
mov eax, dword [0x58a980]
cmp dword [eax], 0
jne 0x54e388
xor eax, eax
mov dword [ebp - 0xc8], eax
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 - 0x2c], eax
mov eax, dword [ebp - 0x28]
cmp byte [eax + 0x55], 0
jne 0x550cf0
mov eax, dword [0x58b1e0]
mov eax, dword [eax]
cmp byte [eax + 0xa4], 0
jne 0x550cf0
mov eax, dword [ebp - 0x28]
cmp byte [eax + 0xd], 0
jne 0x550cf0
mov eax, dword [0x58a950]
cmp byte [eax], 0
jne 0x550cf0
cmp byte [ebp - 0x35], 0
jne 0x550cf0
call sub.kernel32.dll_GetTickCount_1
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x28]
mov byte [eax + 0x57], 0
mov byte [ebp - 0x49], 0
mov eax, dword [ebp - 0x28]
mov byte [eax + 0x56], 0
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 0x28]
mov dword [edx + 0x58], eax
call sub.kernel32.dll_GetTickCount_1
mov dword [ebp - 0x34], eax
xor eax, eax
mov dword [ebp - 0x48], eax
lea eax, [ebp - 0xc]
call fcn.004055e4
lea eax, [ebp - 0x14]
call fcn.004055e4
mov byte [ebp - 0x35], 0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
xor ecx, ecx
mov dl, 1
mov eax, dword [0x48ba00]
call fcn.0048d82c
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
mov edx, dword [ebp - 0x28]
mov dword [eax + 0x54], edx
mov dword [eax + 0x50], 0x54dc9c
mov eax, dword [ebp - 0x30]
mov edx, dword [ebp - 0x28]
mov dword [eax + 0x64], edx
mov dword [eax + 0x60], 0x54dcb8
mov eax, dword [ebp - 0x30]
mov edx, dword [ebp - 0x28]
mov dword [eax + 0x8c], edx
mov dword [eax + 0x88], 0x54dcc4
mov dl, 1
mov eax, dword [ebp - 0x30]
call fcn.0048d91c
cmp dword [ebp - 0x2c], 0
jne 0x54e4e1
lea eax, [ebp - 0x20]
mov edx, dword [0x58ac18]
add edx, 0x1de
call fcn.00405848
lea eax, [ebp - 0x5198]
mov edx, dword [0x58ac18]
add edx, 0x19c
call fcn.00405848
mov edx, dword [ebp - 0x5198]
mov eax, dword [ebp - 0x30]
call fcn.0048d1f8
mov edx, dword [0x58ac18]
movzx edx, word [edx + 0x1da]
mov eax, dword [ebp - 0x30]
call fcn.0048d278
jmp 0x54e52f
lea eax, [ebp - 0x519c]
mov edx, dword [0x58ac18]
add edx, 0x1bb
call fcn.00405848
mov edx, dword [ebp - 0x519c]
mov eax, dword [ebp - 0x30]
call fcn.0048d1f8
mov edx, dword [0x58ac18]
movzx edx, word [edx + 0x1dc]
mov eax, dword [ebp - 0x30]
call fcn.0048d278
lea eax, [ebp - 0x20]
mov edx, dword [0x58ac18]
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
mov dl, 1
mov eax, dword [ebp - 0x30]
call fcn.0048d138
mov eax, dword [ebp - 0x28]
cmp byte [eax + 0x56], 0
jne 0x550cd3
mov eax, dword [ebp - 0x28]
cmp byte [eax + 0x55], 0
jne 0x550cd3
cmp byte [ebp - 0x35], 0
jne 0x550cd3
mov eax, dword [0x58b1e0]
mov eax, dword [eax]
cmp byte [eax + 0xa4], 0
jne 0x550cd3
mov eax, dword [ebp - 0x28]
cmp byte [eax + 0xd], 0
jne 0x550cd3
mov eax, dword [0x58a950]
cmp byte [eax], 0
jne 0x550cd3
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 0x28]
sub eax, dword [edx + 0x58]
cmp eax, 0x2710
jbe 0x54e5c5
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x90]
cmp byte [eax + 8], 0
je 0x550cd3
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x90]
cmp byte [eax + 8], 0
je 0x550cc7
cmp byte [ebp - 0x49], 0
jne 0x5507c1
mov byte [ebp - 0x49], 1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea eax, [ebp - 0x4128]
xor ecx, ecx
mov edx, 0x30
call fcn.00403e38
mov word [ebp - 0x4128], 0x3e9
lea eax, [ebp - 0x5194]
push eax
call sub.kernel32.dll_GetLocalTime
lea eax, [ebp - 0x18]
mov edx, dword [ebp - 0x20]
call fcn.0040567c
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0xd8], eax
cmp dword [ebp - 0xd8], 0
je 0x54e649
mov eax, dword [ebp - 0xd8]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0xd8]
mov dword [ebp - 0x9c], eax
mov eax, dword [ebp - 0x9c]
mov dword [ebp - 0x411c], eax
lea eax, [ebp - 0x1c]
mov edx, dword [ebp - 0x9c]
call fcn.00405d04
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea eax, [ebp - 0x513c]
mov ecx, 0xff
mov edx, 0x1000
call fcn.00403e38
lea eax, [ebp - 0x5184]
mov ecx, 0xff
mov edx, 0x48
call fcn.00403e38
movzx eax, word [ebp - 0x5194]
movzx edx, word [ebp - 0x5192]
add eax, edx
movzx edx, word [ebp - 0x518e]
add eax, edx
movzx edx, word [ebp - 0x518c]
add eax, edx
movzx edx, word [ebp - 0x518a]
add eax, edx
movzx edx, word [ebp - 0x5188]
add eax, edx
mov dword [ebp - 0x6c], eax
lea edx, [ebp - 0x51a0]
mov eax, dword [ebp - 0x6c]
call fcn.0040cd94
mov eax, dword [ebp - 0x51a0]
lea edx, [ebp - 0x413c]
call fcn.00480938
lea eax, [ebp - 0x82]
xor ecx, ecx
mov edx, 8
call fcn.00403e38
lea edx, [ebp - 0x82]
lea eax, [ebp - 0x413c]
mov ecx, 8
call fcn.004035b8
mov dword [ebp - 0x8c], 0x40
mov ecx, 8
mov eax, dword [ebp - 0x8c]
xor edx, edx
div ecx
mov dword [ebp - 0x8c], eax
lea edx, [ebp - 0x513c]
mov eax, dword [0x58b4d0]
mov ecx, 0x1000
call fcn.004035b8
lea edx, [ebp - 0x5184]
mov eax, dword [0x58b218]
mov ecx, 0x48
call fcn.004035b8
xor eax, eax
mov dword [ebp - 0x88], eax
mov dword [ebp - 0xa8], 0x12
lea eax, [ebp - 0x5184]
mov dword [ebp - 0xe4], eax
mov eax, dword [ebp - 0x88]
add eax, 3
xor edx, edx
div dword [ebp - 0x8c]
movzx eax, byte [ebp + edx - 0x82]
mov dword [ebp - 0x90], eax
mov eax, dword [ebp - 0x88]
add eax, 2
xor edx, edx
div dword [ebp - 0x8c]
movzx eax, byte [ebp + edx - 0x82]
shl eax, 8
add dword [ebp - 0x90], eax
mov eax, dword [ebp - 0x88]
inc eax
xor edx, edx
div dword [ebp - 0x8c]
movzx eax, byte [ebp + edx - 0x82]
shl eax, 0x10
add dword [ebp - 0x90], eax
mov eax, dword [ebp - 0x88]
movzx eax, byte [ebp + eax - 0x82]
shl eax, 0x18
add dword [ebp - 0x90], eax
mov eax, dword [ebp - 0xe4]
mov edx, dword [ebp - 0x90]
xor dword [eax], edx
mov eax, dword [ebp - 0x88]
add eax, 4
xor edx, edx
div dword [ebp - 0x8c]
mov dword [ebp - 0x88], edx
add dword [ebp - 0xe4], 4
dec dword [ebp - 0xa8]
jne 0x54e792
lea eax, [ebp - 0x98]
xor ecx, ecx
mov edx, 8
call fcn.00403e38
mov dword [ebp - 0xa8], 9
lea eax, [ebp - 0x5184]
mov dword [ebp - 0xe4], eax
lea eax, [ebp - 0x98]
mov ebx, dword [eax]
lea eax, [ebp - 0x98]
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 - 0x5184]
mov eax, ebx
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x513c]
mov edx, ebx
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d3c]
mov edx, ebx
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x493c]
mov edx, ebx
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x453c]
xor esi, eax
xor esi, dword [ebp - 0x5180]
mov eax, esi
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x513c]
mov edx, esi
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d3c]
mov edx, esi
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x493c]
mov edx, esi
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x453c]
xor ebx, eax
xor ebx, dword [ebp - 0x517c]
mov eax, ebx
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x513c]
mov edx, ebx
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d3c]
mov edx, ebx
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x493c]
mov edx, ebx
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x453c]
xor esi, eax
xor esi, dword [ebp - 0x5178]
mov eax, esi
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x513c]
mov edx, esi
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d3c]
mov edx, esi
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x493c]
mov edx, esi
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x453c]
xor ebx, eax
xor ebx, dword [ebp - 0x5174]
mov eax, ebx
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x513c]
mov edx, ebx
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d3c]
mov edx, ebx
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x493c]
mov edx, ebx
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x453c]
xor esi, eax
xor esi, dword [ebp - 0x5170]
mov eax, esi
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x513c]
mov edx, esi
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d3c]
mov edx, esi
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x493c]
mov edx, esi
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x453c]
xor ebx, eax
xor ebx, dword [ebp - 0x516c]
mov eax, ebx
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x513c]
mov edx, ebx
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d3c]
mov edx, ebx
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x493c]
mov edx, ebx
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x453c]
xor esi, eax
xor esi, dword [ebp - 0x5168]
mov eax, esi
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x513c]
mov edx, esi
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d3c]
mov edx, esi
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x493c]
mov edx, esi
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x453c]
xor ebx, eax
xor ebx, dword [ebp - 0x5164]
mov eax, ebx
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x513c]
mov edx, ebx
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d3c]
mov edx, ebx
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x493c]
mov edx, ebx
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x453c]
xor esi, eax
xor esi, dword [ebp - 0x5160]
mov eax, esi
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x513c]
mov edx, esi
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d3c]
mov edx, esi
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x493c]
mov edx, esi
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x453c]
xor ebx, eax
xor ebx, dword [ebp - 0x515c]
mov eax, ebx
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x513c]
mov edx, ebx
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d3c]
mov edx, ebx
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x493c]
mov edx, ebx
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x453c]
xor esi, eax
xor esi, dword [ebp - 0x5158]
mov eax, esi
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x513c]
mov edx, esi
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d3c]
mov edx, esi
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x493c]
mov edx, esi
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x453c]
xor ebx, eax
xor ebx, dword [ebp - 0x5154]
mov eax, ebx
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x513c]
mov edx, ebx
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d3c]
mov edx, ebx
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x493c]
mov edx, ebx
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x453c]
xor esi, eax
xor esi, dword [ebp - 0x5150]
mov eax, esi
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x513c]
mov edx, esi
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d3c]
mov edx, esi
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x493c]
mov edx, esi
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x453c]
xor ebx, eax
xor ebx, dword [ebp - 0x514c]
mov eax, ebx
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x513c]
mov edx, ebx
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d3c]
mov edx, ebx
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x493c]
mov edx, ebx
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x453c]
xor esi, eax
xor esi, dword [ebp - 0x5148]
mov eax, esi
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x513c]
mov edx, esi
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d3c]
mov edx, esi
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x493c]
mov edx, esi
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x453c]
xor ebx, eax
xor ebx, dword [ebp - 0x5144]
xor esi, dword [ebp - 0x5140]
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 - 0x98]
mov dword [eax], esi
lea eax, [ebp - 0x98]
add eax, 4
mov dword [eax], ebx
movzx eax, byte [ebp - 0x95]
movzx edx, byte [ebp - 0x96]
shl edx, 8
add eax, edx
movzx edx, byte [ebp - 0x97]
shl edx, 0x10
add eax, edx
movzx edx, byte [ebp - 0x98]
shl edx, 0x18
add eax, edx
mov edx, dword [ebp - 0xe4]
mov dword [edx], eax
movzx eax, byte [ebp - 0x91]
movzx edx, byte [ebp - 0x92]
shl edx, 8
add eax, edx
movzx edx, byte [ebp - 0x93]
shl edx, 0x10
add eax, edx
movzx edx, byte [ebp - 0x94]
shl edx, 0x18
add eax, edx
mov edx, dword [ebp - 0xe4]
mov dword [edx + 4], eax
add dword [ebp - 0xe4], 8
dec dword [ebp - 0xa8]
jne 0x54e86a
mov dword [ebp - 0x88], 4
lea eax, [ebp - 0x513c]
mov dword [ebp - 0xe4], eax
mov dword [ebp - 0xa8], 0x80
mov eax, dword [ebp - 0xe4]
mov dword [ebp - 0xe8], eax
lea eax, [ebp - 0x98]
mov ebx, dword [eax]
lea eax, [ebp - 0x98]
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 - 0x5184]
mov eax, ebx
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x513c]
mov edx, ebx
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d3c]
mov edx, ebx
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x493c]
mov edx, ebx
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x453c]
xor esi, eax
xor esi, dword [ebp - 0x5180]
mov eax, esi
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x513c]
mov edx, esi
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d3c]
mov edx, esi
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x493c]
mov edx, esi
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x453c]
xor ebx, eax
xor ebx, dword [ebp - 0x517c]
mov eax, ebx
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x513c]
mov edx, ebx
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d3c]
mov edx, ebx
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x493c]
mov edx, ebx
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x453c]
xor esi, eax
xor esi, dword [ebp - 0x5178]
mov eax, esi
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x513c]
mov edx, esi
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d3c]
mov edx, esi
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x493c]
mov edx, esi
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x453c]
xor ebx, eax
xor ebx, dword [ebp - 0x5174]
mov eax, ebx
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x513c]
mov edx, ebx
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d3c]
mov edx, ebx
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x493c]
mov edx, ebx
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x453c]
xor esi, eax
xor esi, dword [ebp - 0x5170]
mov eax, esi
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x513c]
mov edx, esi
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d3c]
mov edx, esi
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x493c]
mov edx, esi
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x453c]
xor ebx, eax
xor ebx, dword [ebp - 0x516c]
mov eax, ebx
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x513c]
mov edx, ebx
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d3c]
mov edx, ebx
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x493c]
mov edx, ebx
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x453c]
xor esi, eax
xor esi, dword [ebp - 0x5168]
mov eax, esi
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x513c]
mov edx, esi
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d3c]
mov edx, esi
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x493c]
mov edx, esi
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x453c]
xor ebx, eax
xor ebx, dword [ebp - 0x5164]
mov eax, ebx
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x513c]
mov edx, ebx
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d3c]
mov edx, ebx
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x493c]
mov edx, ebx
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x453c]
xor esi, eax
xor esi, dword [ebp - 0x5160]
mov eax, esi
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x513c]
mov edx, esi
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d3c]
mov edx, esi
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x493c]
mov edx, esi
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x453c]
xor ebx, eax
xor ebx, dword [ebp - 0x515c]
mov eax, ebx
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x513c]
mov edx, ebx
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d3c]
mov edx, ebx
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x493c]
mov edx, ebx
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x453c]
xor esi, eax
xor esi, dword [ebp - 0x5158]
mov eax, esi
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x513c]
mov edx, esi
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d3c]
mov edx, esi
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x493c]
mov edx, esi
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x453c]
xor ebx, eax
xor ebx, dword [ebp - 0x5154]
mov eax, ebx
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x513c]
mov edx, ebx
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d3c]
mov edx, ebx
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x493c]
mov edx, ebx
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x453c]
xor esi, eax
xor esi, dword [ebp - 0x5150]
mov eax, esi
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x513c]
mov edx, esi
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d3c]
mov edx, esi
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x493c]
mov edx, esi
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x453c]
xor ebx, eax
xor ebx, dword [ebp - 0x514c]
mov eax, ebx
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x513c]
mov edx, ebx
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d3c]
mov edx, ebx
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x493c]
mov edx, ebx
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x453c]
xor esi, eax
xor esi, dword [ebp - 0x5148]
mov eax, esi
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x513c]
mov edx, esi
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d3c]
mov edx, esi
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x493c]
mov edx, esi
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x453c]
xor ebx, eax
xor ebx, dword [ebp - 0x5144]
xor esi, dword [ebp - 0x5140]
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 - 0x98]
mov dword [eax], esi
lea eax, [ebp - 0x98]
add eax, 4
mov dword [eax], ebx
movzx eax, byte [ebp - 0x95]
movzx edx, byte [ebp - 0x96]
shl edx, 8
add eax, edx
movzx edx, byte [ebp - 0x97]
shl edx, 0x10
add eax, edx
movzx edx, byte [ebp - 0x98]
shl edx, 0x18
add eax, edx
mov edx, dword [ebp - 0xe8]
mov dword [edx], eax
movzx eax, byte [ebp - 0x91]
movzx edx, byte [ebp - 0x92]
shl edx, 8
add eax, edx
movzx edx, byte [ebp - 0x93]
shl edx, 0x10
add eax, edx
movzx edx, byte [ebp - 0x94]
shl edx, 0x18
add eax, edx
mov edx, dword [ebp - 0xe8]
mov dword [edx + 4], eax
add dword [ebp - 0xe8], 8
dec dword [ebp - 0xa8]
jne 0x54eec6
add dword [ebp - 0xe4], 0x400
dec dword [ebp - 0x88]
jne 0x54eeb0
lea eax, [ebp - 0x1c]
call fcn.00405ad4
mov dword [ebp - 0xc0], eax
lea eax, [ebp - 0x18]
call fcn.00405ad4
mov dword [ebp - 0xbc], eax
lea eax, [ebp - 0xb8]
mov ecx, 0xff
mov edx, 8
call fcn.00403e38
mov eax, dword [ebp - 0xbc]
mov dword [ebp - 0xac], eax
mov eax, dword [ebp - 0xc0]
mov dword [ebp - 0xb0], eax
mov eax, dword [ebp - 0x9c]
test eax, eax
jns 0x54f562
add eax, 7
sar eax, 3
test eax, eax
jbe 0x54fbb7
mov dword [ebp - 0xd4], eax
mov edx, dword [ebp - 0xb0]
mov eax, dword [ebp - 0xac]
mov ecx, 8
call fcn.004035b8
mov dword [ebp - 0xa4], 1
lea eax, [ebp - 0xb8]
add eax, dword [ebp - 0xa4]
dec eax
movzx eax, byte [eax]
mov edx, dword [ebp - 0xb0]
add edx, dword [ebp - 0xa4]
dec edx
xor byte [edx], al
inc dword [ebp - 0xa4]
cmp dword [ebp - 0xa4], 9
jne 0x54f593
mov eax, dword [ebp - 0xb0]
mov ebx, dword [eax]
mov eax, dword [ebp - 0xb0]
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 - 0x5184]
mov eax, ebx
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x513c]
mov edx, ebx
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d3c]
mov edx, ebx
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x493c]
mov edx, ebx
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x453c]
xor esi, eax
xor esi, dword [ebp - 0x5180]
mov eax, esi
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x513c]
mov edx, esi
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d3c]
mov edx, esi
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x493c]
mov edx, esi
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x453c]
xor ebx, eax
xor ebx, dword [ebp - 0x517c]
mov eax, ebx
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x513c]
mov edx, ebx
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d3c]
mov edx, ebx
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x493c]
mov edx, ebx
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x453c]
xor esi, eax
xor esi, dword [ebp - 0x5178]
mov eax, esi
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x513c]
mov edx, esi
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d3c]
mov edx, esi
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x493c]
mov edx, esi
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x453c]
xor ebx, eax
xor ebx, dword [ebp - 0x5174]
mov eax, ebx
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x513c]
mov edx, ebx
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d3c]
mov edx, ebx
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x493c]
mov edx, ebx
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x453c]
xor esi, eax
xor esi, dword [ebp - 0x5170]
mov eax, esi
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x513c]
mov edx, esi
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d3c]
mov edx, esi
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x493c]
mov edx, esi
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x453c]
xor ebx, eax
xor ebx, dword [ebp - 0x516c]
mov eax, ebx
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x513c]
mov edx, ebx
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d3c]
mov edx, ebx
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x493c]
mov edx, ebx
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x453c]
xor esi, eax
xor esi, dword [ebp - 0x5168]
mov eax, esi
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x513c]
mov edx, esi
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d3c]
mov edx, esi
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x493c]
mov edx, esi
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x453c]
xor ebx, eax
xor ebx, dword [ebp - 0x5164]
mov eax, ebx
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x513c]
mov edx, ebx
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d3c]
mov edx, ebx
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x493c]
mov edx, ebx
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x453c]
xor esi, eax
xor esi, dword [ebp - 0x5160]
mov eax, esi
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x513c]
mov edx, esi
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d3c]
mov edx, esi
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x493c]
mov edx, esi
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x453c]
xor ebx, eax
xor ebx, dword [ebp - 0x515c]
mov eax, ebx
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x513c]
mov edx, ebx
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d3c]
mov edx, ebx
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x493c]
mov edx, ebx
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x453c]
xor esi, eax
xor esi, dword [ebp - 0x5158]
mov eax, esi
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x513c]
mov edx, esi
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d3c]
mov edx, esi
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x493c]
mov edx, esi
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x453c]
xor ebx, eax
xor ebx, dword [ebp - 0x5154]
mov eax, ebx
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x513c]
mov edx, ebx
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d3c]
mov edx, ebx
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x493c]
mov edx, ebx
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x453c]
xor esi, eax
xor esi, dword [ebp - 0x5150]
mov eax, esi
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x513c]
mov edx, esi
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d3c]
mov edx, esi
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x493c]
mov edx, esi
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x453c]
xor ebx, eax
xor ebx, dword [ebp - 0x514c]
mov eax, ebx
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x513c]
mov edx, ebx
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d3c]
mov edx, ebx
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x493c]
mov edx, ebx
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x453c]
xor esi, eax
xor esi, dword [ebp - 0x5148]
mov eax, esi
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x513c]
mov edx, esi
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d3c]
mov edx, esi
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x493c]
mov edx, esi
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x453c]
xor ebx, eax
xor ebx, dword [ebp - 0x5144]
xor esi, dword [ebp - 0x5140]
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 - 0xb0]
mov dword [eax], esi
mov eax, dword [ebp - 0xb0]
add eax, 4
mov dword [eax], ebx
lea edx, [ebp - 0xb8]
mov eax, dword [ebp - 0xb0]
mov ecx, 8
call fcn.004035b8
mov eax, dword [ebp - 0xac]
add eax, 8
mov dword [ebp - 0xac], eax
mov eax, dword [ebp - 0xb0]
add eax, 8
mov dword [ebp - 0xb0], eax
dec dword [ebp - 0xd4]
jne 0x54f573
mov eax, dword [ebp - 0x9c]
and eax, 0x80000007
jns 0x54fbc9
dec eax
or eax, 0xfffffff8
inc eax
test eax, eax
je 0x5501fd
lea eax, [ebp - 0xb8]
mov ebx, dword [eax]
lea eax, [ebp - 0xb8]
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 - 0x5184]
mov eax, ebx
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x513c]
mov edx, ebx
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d3c]
mov edx, ebx
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x493c]
mov edx, ebx
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x453c]
xor esi, eax
xor esi, dword [ebp - 0x5180]
mov eax, esi
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x513c]
mov edx, esi
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d3c]
mov edx, esi
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x493c]
mov edx, esi
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x453c]
xor ebx, eax
xor ebx, dword [ebp - 0x517c]
mov eax, ebx
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x513c]
mov edx, ebx
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d3c]
mov edx, ebx
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x493c]
mov edx, ebx
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x453c]
xor esi, eax
xor esi, dword [ebp - 0x5178]
mov eax, esi
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x513c]
mov edx, esi
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d3c]
mov edx, esi
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x493c]
mov edx, esi
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x453c]
xor ebx, eax
xor ebx, dword [ebp - 0x5174]
mov eax, ebx
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x513c]
mov edx, ebx
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d3c]
mov edx, ebx
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x493c]
mov edx, ebx
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x453c]
xor esi, eax
xor esi, dword [ebp - 0x5170]
mov eax, esi
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x513c]
mov edx, esi
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d3c]
mov edx, esi
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x493c]
mov edx, esi
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x453c]
xor ebx, eax
xor ebx, dword [ebp - 0x516c]
mov eax, ebx
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x513c]
mov edx, ebx
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d3c]
mov edx, ebx
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x493c]
mov edx, ebx
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x453c]
xor esi, eax
xor esi, dword [ebp - 0x5168]
mov eax, esi
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x513c]
mov edx, esi
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d3c]
mov edx, esi
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x493c]
mov edx, esi
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x453c]
xor ebx, eax
xor ebx, dword [ebp - 0x5164]
mov eax, ebx
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x513c]
mov edx, ebx
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d3c]
mov edx, ebx
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x493c]
mov edx, ebx
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x453c]
xor esi, eax
xor esi, dword [ebp - 0x5160]
mov eax, esi
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x513c]
mov edx, esi
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d3c]
mov edx, esi
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x493c]
mov edx, esi
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x453c]
xor ebx, eax
xor ebx, dword [ebp - 0x515c]
mov eax, ebx
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x513c]
mov edx, ebx
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d3c]
mov edx, ebx
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x493c]
mov edx, ebx
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x453c]
xor esi, eax
xor esi, dword [ebp - 0x5158]
mov eax, esi
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x513c]
mov edx, esi
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d3c]
mov edx, esi
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x493c]
mov edx, esi
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x453c]
xor ebx, eax
xor ebx, dword [ebp - 0x5154]
mov eax, ebx
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x513c]
mov edx, ebx
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d3c]
mov edx, ebx
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x493c]
mov edx, ebx
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x453c]
xor esi, eax
xor esi, dword [ebp - 0x5150]
mov eax, esi
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x513c]
mov edx, esi
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d3c]
mov edx, esi
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x493c]
mov edx, esi
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x453c]
xor ebx, eax
xor ebx, dword [ebp - 0x514c]
mov eax, ebx
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x513c]
mov edx, ebx
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d3c]
mov edx, ebx
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x493c]
mov edx, ebx
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x453c]
xor esi, eax
xor esi, dword [ebp - 0x5148]
mov eax, esi
shr eax, 0x18
and eax, 0xff
mov eax, dword [ebp + eax*4 - 0x513c]
mov edx, esi
shr edx, 0x10
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x4d3c]
mov edx, esi
shr edx, 8
and edx, 0xff
xor eax, dword [ebp + edx*4 - 0x493c]
mov edx, esi
and edx, 0xff
add eax, dword [ebp + edx*4 - 0x453c]
xor ebx, eax
xor ebx, dword [ebp - 0x5144]
xor esi, dword [ebp - 0x5140]
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 - 0xb8]
mov dword [eax], esi
lea eax, [ebp - 0xb8]
add eax, 4
mov dword [eax], ebx
mov eax, dword [ebp - 0x9c]
and eax, 0x80000007
jns 0x550199
dec eax
or eax, 0xfffffff8
inc eax
mov dword [ebp - 0xa0], eax
mov edx, dword [ebp - 0xb0]
mov eax, dword [ebp - 0xac]
mov ecx, dword [ebp - 0xa0]
call fcn.004035b8
mov eax, dword [ebp - 0xa0]
test eax, eax
jle 0x5501fd
mov dword [ebp - 0xd4], eax
mov dword [ebp - 0xa4], 1
lea eax, [ebp - 0xb8]
add eax, dword [ebp - 0xa4]
dec eax
movzx eax, byte [eax]
mov edx, dword [ebp - 0xb0]
add edx, dword [ebp - 0xa4]
dec edx
xor byte [edx], al
inc dword [ebp - 0xa4]
dec dword [ebp - 0xd4]
jne 0x5501d0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea eax, [ebp - 0xf8]
xor ecx, ecx
mov edx, 0x10
call fcn.00403e38
push ebp
call fcn.0054e184
pop ecx
xor eax, eax
push ebp
push 0x550259
push dword fs:[eax]
mov dword fs:[eax], esp
lea ecx, [ebp - 0xf8]
xor edx, edx
mov eax, 1
call fcn.00544b6c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x550260
push ebp
call fcn.0054e1bc
pop ecx
ret
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push 0x2710
mov eax, dword [ebp - 0x30]
mov ecx, dword [eax + 0x90]
mov dl, 1
mov eax, dword [0x48b984]
call fcn.0048d458
mov dword [ebp - 0x44], eax
xor eax, eax
push ebp
push 0x550cc0
push dword fs:[eax]
mov dword fs:[eax], esp
call sub.kernel32.dll_GetTickCount_1
mov dword [ebp - 0x34], eax
mov edx, 0x2710
mov eax, dword [ebp - 0x44]
call fcn.0048d508
test al, al
je 0x550c9a
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x90]
cmp byte [eax + 8], 0
je 0x55087b
mov eax, dword [ebp - 0x28]
cmp byte [eax + 0x55], 0
jne 0x55087b
cmp byte [ebp - 0x35], 0
jne 0x55087b
mov eax, dword [0x58b1e0]
mov eax, dword [eax]
cmp byte [eax + 0xa4], 0
jne 0x55087b
mov eax, dword [0x58a950]
cmp byte [eax], 0
jne 0x55087b
mov eax, dword [ebp - 0x28]
cmp byte [eax + 0x56], 0
jne 0x55087b
call sub.kernel32.dll_GetTickCount_1
sub eax, dword [ebp - 0x34]
cmp eax, 0x4e20
jbe 0x55088a
xor edx, edx
mov eax, dword [ebp - 0x30]
call fcn.0048d138
jmp 0x550caa
xor eax, eax
push ebp
push 0x550c68
push dword fs:[eax]
mov dword fs:[eax], esp
lea edx, [ebp - 0x40f8]
mov ecx, 0x4000
mov eax, dword [ebp - 0x44]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0
jle 0x550c4a
lea eax, [ebp - 0xc]
mov edx, dword [ebp - 0x40]
call fcn.00405d04
lea eax, [ebp - 0xc]
call fcn.00405ad4
mov edx, eax
lea eax, [ebp - 0x40f8]
mov ecx, dword [ebp - 0x40]
call fcn.004035b8
lea eax, [ebp - 0x14]
mov edx, dword [ebp - 0xc]
call fcn.004058b0
jmp 0x550c37
mov edx, dword [ebp - 0x14]
mov eax, 0x550de4
call fcn.00405bc0
test eax, eax
jle 0x550c5e
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x51cc]
push eax
mov ecx, 0x550de4
mov edx, 0x550dd8
mov eax, dword [ebp - 0x14]
call fcn.0048f5fc
mov edx, dword [ebp - 0x51cc]
lea eax, [ebp - 0x14]
call fcn.0040567c
cmp dword [ebp - 0x10], 0
jne 0x550940
xor edx, edx
mov eax, dword [ebp - 0x30]
call fcn.0048d138
jmp 0x550c5e
mov eax, 0x30
call fcn.00490cdc
mov dword [ebp - 0x54], eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea edx, [ebp - 0x4128]
mov ecx, 0x30
mov eax, dword [ebp - 0x10]
call fcn.00490e80
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0xe0], eax
cmp dword [ebp - 0xe0], 0
je 0x550991
mov eax, dword [ebp - 0xe0]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0xe0], eax
lea eax, [ebp - 0x10]
push eax
mov ecx, dword [ebp - 0xe0]
sub ecx, dword [ebp - 0x54]
mov edx, dword [ebp - 0x54]
inc edx
mov eax, dword [ebp - 0x10]
call fcn.00405adc
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebp - 0x10], 0
je 0x550c2b
movzx eax, word [ebp - 0x4128]
add eax, 0xffffff9c
sub ax, 5
jb 0x5509e7
xor edx, edx
mov eax, dword [ebp - 0x30]
call fcn.0048d138
jmp 0x550c5e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea eax, [ebp - 0x18]
mov edx, dword [ebp - 0x411c]
call fcn.00405d04
lea eax, [ebp - 0x18]
call fcn.00405ad4
mov edx, eax
mov ecx, dword [ebp - 0x411c]
mov eax, dword [ebp - 0x10]
call fcn.00490e80
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea eax, [ebp - 0x18]
call fcn.00405ad4
mov edx, dword [ebp - 0x411c]
call fcn.0052fc70
cmp eax, dword [ebp - 0x4120]
je 0x550a59
xor edx, edx
mov eax, dword [ebp - 0x30]
call fcn.0048d138
jmp 0x550c5e
movzx eax, word [ebp - 0x4128]
sub ax, 0x64
je 0x550a74
dec ax
je 0x550b68
jmp 0x550c2b
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebp - 0xc8], 0
jne 0x550a9d
mov dl, 1
mov eax, dword [0x41c38c]
call fcn.00404674
mov dword [ebp - 0xc8], eax
mov eax, dword [ebp - 0x411c]
cdq
push edx
push eax
mov eax, dword [ebp - 0xc8]
call fcn.0042121c
push 0
push 0
mov eax, dword [ebp - 0xc8]
call fcn.004211b8
lea eax, [ebp - 0x18]
call fcn.00405ad4
mov edx, eax
mov ecx, dword [ebp - 0x411c]
mov eax, dword [ebp - 0xc8]
mov ebx, dword [eax]
call dword [ebx + 0x10]
push 0
push 0
mov eax, dword [ebp - 0xc8]
call fcn.004211b8
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [0x58b48c]
mov eax, dword [eax]
mov edx, dword [ebp - 0xc8]
call fcn.00484390
mov edx, dword [0x58b254]
mov edx, dword [edx]
lea eax, [ebp - 0x24]
mov ecx, 0x550d9c
call fcn.004058fc
xor eax, eax
push ebp
push 0x550b4b
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0xc8]
call fcn.004218b4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x550b55
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp 0x550c37
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
xor eax, eax
mov dword [ebp - 0x60], eax
xor eax, eax
mov dword [ebp - 0x64], eax
xor eax, eax
push ebp
push 0x550c0b
push dword fs:[eax]
mov dword fs:[eax], esp
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea eax, [ebp - 0x64]
push eax
push 0
lea eax, [ebp - 0x18]
call fcn.00405ad4
lea ecx, [ebp - 0x60]
mov edx, dword [ebp - 0x411c]
call fcn.0047b540
cmp dword [ebp - 0x60], 0
je 0x550c01
cmp dword [ebp - 0x64], 0
jle 0x550c01
lea eax, [ebp - 0xc]
mov edx, dword [ebp - 0x64]
call fcn.00405d04
lea eax, [ebp - 0xc]
call fcn.00405ad4
mov edx, eax
mov eax, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x64]
call fcn.004035b8
mov byte [ebp - 0x35], 1
mov eax, dword [ebp - 0x60]
call fcn.00403228
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 0x28]
mov dword [edx + 0x50], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x550c1d
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
xor edx, edx
mov eax, dword [ebp - 0x30]
call fcn.0048d138
jmp 0x550c5e
mov eax, dword [ebp - 0x14]
call fcn.004058a4
cmp eax, 2
jge 0x5508eb
jmp 0x550c5e
xor edx, edx
mov eax, dword [ebp - 0x30]
call fcn.0048d138
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x550caa
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x550c83
mov edx, 0x2710
mov eax, dword [ebp - 0x44]
call fcn.0048d508
test al, al
jne 0x55082b
jmp 0x550caa
inc dword [ebp - 0x48]
cmp dword [ebp - 0x48], 3
jle 0x550caa
call fcn.00404fc4
jmp 0x550cd3
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x550cc7
mov eax, dword [ebp - 0x44]
call fcn.004046a4
ret
push 1
call sub.kernel32.dll_Sleep_2
jmp 0x54e54d
mov eax, dword [ebp - 0x30]
call fcn.0048d324
mov eax, dword [ebp - 0x30]
call fcn.004046a4
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], 2
jne 0x54e3a0
cmp dword [ebp - 0xc8], 0
je 0x550d04
mov eax, dword [ebp - 0xc8]
call fcn.004046a4
cmp byte [ebp - 0x35], 0
je 0x550d2f
mov eax, dword [ebp - 0x28]
cmp byte [eax + 0xd], 0
jne 0x550d2f
mov eax, dword [ebp - 0x28]
cmp byte [eax + 0x55], 0
jne 0x550d2f
cmp dword [ebp - 0xc], 0
je 0x550d2f
xor ecx, ecx
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x28]
call fcn.00550de8
mov eax, dword [ebp - 0x28]
push eax
push 0x553c04
mov eax, dword [ebp - 0x28]
call fcn.00425854
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x550d72
lea eax, [ebp - 0x51cc]
mov edx, 0xe
call fcn.00405608
lea eax, [ebp - 0x24]
mov edx, 7
call fcn.00405608
ret