Function at 0x409620
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x51d590
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x124
push ebx
push ebp
push esi
push edi
mov ebp, 0x530160
xor edi, edi
mov dword [esp + 0x48], ebp
mov word [esp + 0x4c], 0xffff
mov word [esp + 0x4e], di
mov esi, dword [sym.imp.KERNEL32.dll_Sleep]
mov dword [esp + 0x13c], edi
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push 6
push 0x54833c
call fcn.004f58e0
mov ecx, dword [0x5540a8]
call fcn.004fa1d0
push 6
push 0x548730
lea ecx, [esp + 0x28]
call fcn.004f58e0
xor bl, bl
mov byte [esp + 0x13c], 1
mov byte [esp + 0x98], bl
mov eax, dword [esp + 0x98]
lea ecx, [esp + 0x20]
push eax
push 5
call fcn.004f5c80
push ecx
lea edx, [esp + 0x24]
mov ecx, esp
mov dword [esp + 0x20], esp
push edx
call fcn.004f5850
mov ecx, dword [0x5540a8]
call fcn.004fa410
inc bl
cmp bl, 0x14
mov byte [esp + 0x98], bl
jbe 0x4096a2
mov ecx, dword [0x5540a8]
lea eax, [esp + 0x48]
push eax
call fcn.004fa550
or ebx, 0xffffffff
cmp ax, bx
je 0x40aeee
lea ecx, [esp + 0x18]
call fcn.004f5840
lea ecx, [esp + 0x24]
mov byte [esp + 0x13c], 2
call fcn.004f5840
movsx eax, word [esp + 0x4c]
cmp eax, 0x14
mov byte [esp + 0x13c], 3
ja case.default.0x409733
xor ecx, ecx
mov cl, byte [eax + 0x40af38]
jmp dword [ecx*4 + 0x40af1c]
mov dword [esp + 0x90], ebp
mov word [esp + 0x94], bx
mov word [esp + 0x96], di
mov byte [esp + 0x13c], 4
mov edx, dword [esp + 0x4c]
lea ecx, [esp + 0x20]
push edx
push 5
call fcn.004f5c80
push ecx
lea eax, [esp + 0x24]
mov ecx, esp
mov dword [esp + 0x20], esp
push eax
call fcn.004f5850
mov ecx, dword [0x5540a8]
call fcn.004fa1d0
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push 6
push 0x548728
call fcn.004f58e0
mov ecx, dword [0x5540a8]
call fcn.004fa410
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push 6
push 0x548720
call fcn.004f58e0
mov ecx, dword [0x5540a8]
call fcn.004fa410
lea ecx, [esp + 0x90]
push ecx
mov ecx, dword [0x5540a8]
call fcn.004fa550
cmp ax, 0xffff
je 0x409946
push 8
push 0x548330
lea ecx, [esp + 0x20]
mov byte [esp + 0x70], 1
mov byte [esp + 0x71], 2
mov byte [esp + 0x72], 3
mov byte [esp + 0x73], 6
mov byte [esp + 0x74], 8
mov byte [esp + 0x75], 9
call fcn.004f5de0
movsx edx, word [esp + 0x4c]
lea ecx, [esp + 0x18]
mov al, byte [esp + edx + 0x68]
push eax
push 4
call fcn.004f5c80
cmp word [esp + 0x94], di
setne cl
dec ecx
and ecx, 0xff
push ecx
push 6
lea ecx, [esp + 0x20]
call fcn.004f5c80
lea edx, [esp + 0x18]
push edx
call fcn.00473820
add esp, 4
push edi
push edi
push ecx
mov ecx, esp
mov dword [esp + 0x28], esp
push 6
push 0x548208
call fcn.004f58e0
push ecx
mov byte [esp + 0x14c], 5
mov ecx, esp
mov dword [esp + 0x60], esp
push 6
push 0x548718
call fcn.004f58e0
mov ecx, 0x5540a8
mov byte [esp + 0x14c], 4
call fcn.004f91a0
push ecx
mov ecx, esp
mov dword [esp + 0x54], esp
push edi
call fcn.004f5870
lea eax, [esp + 0x28]
lea edx, [esp + 0x1c]
push eax
push ecx
mov ecx, esp
mov dword [esp + 0x28], esp
push edx
mov byte [esp + 0x14c], 6
call fcn.004f5850
mov byte [esp + 0x148], 4
call fcn.00473d20
add esp, 0xc
mov bl, al
push 0x320
call esi
push edi
push 1
push ecx
test bl, bl
mov ecx, esp
jne 0x40991e
mov dword [esp + 0x5c], esp
push 6
push 0x548208
call fcn.004f58e0
push ecx
mov byte [esp + 0x14c], 7
mov ecx, esp
mov dword [esp + 0x2c], esp
push 6
push 0x548710
call fcn.004f58e0
mov ecx, 0x5540a8
mov byte [esp + 0x14c], 4
call fcn.004f91a0
jmp 0x409759
mov dword [esp + 0x5c], esp
push 6
push 0x548208
call fcn.004f58e0
push ecx
mov byte [esp + 0x14c], 8
mov ecx, esp
mov dword [esp + 0x2c], esp
push 6
push 0x548708
jmp 0x409902
mov dword [esp + 0x90], ebp
jmp case.default.0x409733
mov eax, dword [esp + 0x4c]
lea ecx, [esp + 0x20]
push eax
push 5
call fcn.004f5c80
lea ecx, [esp + 0x54]
call fcn.004f8480
mov cl, byte [esp + 0x2e]
sub esp, 0x10
mov ebx, esp
xor eax, eax
mov dword [esp + 0x60], esp
push 1
mov byte [ebx], cl
mov dword [ebx + 4], edi
mov dword [ebx + 8], edi
mov dword [ebx + 0xc], edi
mov edi, 0x54832c
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov byte [esp + 0x150], 9
mov ebp, ecx
mov ecx, ebx
push ebp
call fcn.004016f0
test al, al
je 0x4099cd
mov edi, dword [ebx + 4]
mov ecx, ebp
mov edx, ecx
mov esi, 0x54832c
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [ebx + 8], ebp
mov ebx, dword [ebx + 4]
add ebx, ebp
mov byte [ebx], 0
sub esp, 0x10
lea eax, [esp + 0x4e]
mov ecx, esp
mov dword [esp + 0x3c], esp
push eax
push 0x548328
mov byte [esp + 0x164], 0xa
call fcn.00401030
sub esp, 0x10
lea edx, [esp + 0xaf]
mov ecx, esp
mov dword [esp + 0xd8], esp
push edx
push 0x548324
mov byte [esp + 0x174], 0xb
call fcn.00401030
sub esp, 0x10
lea eax, [esp + 0x6f]
mov ecx, esp
mov dword [esp + 0xe4], esp
push eax
push 0x554048
mov byte [esp + 0x184], 0xc
call fcn.00401030
push ecx
lea edx, [esp + 0x64]
mov ecx, esp
mov dword [esp + 0x58], esp
push edx
mov byte [esp + 0x184], 0xd
call fcn.004f5850
push ecx
mov byte [esp + 0x184], 0xe
mov ecx, esp
mov dword [esp + 0x58], esp
push 6
push 0x548700
call fcn.004f58e0
lea eax, [esp + 0x154]
mov ecx, 0x5540a8
push eax
mov byte [esp + 0x188], 9
call fcn.004f9710
mov cx, word [eax]
lea esi, [eax + 4]
mov word [esp + 0x54], cx
mov ecx, dword [0x530168]
mov eax, dword [esi + 8]
mov byte [esp + 0x13c], 0xf
mov ebx, eax
cmp ecx, ebx
jae 0x409aa8
mov ebx, ecx
lea edx, [esp + 0x58]
cmp edx, esi
jne 0x409acd
push ecx
push ebx
lea ecx, [esp + 0x60]
call fcn.004015b0
xor ebp, ebp
lea ecx, [esp + 0x58]
push ebp
push ebp
call fcn.004015b0
jmp 0x409b58
xor ebp, ebp
cmp ebx, ebp
jbe 0x409b1c
cmp ebx, eax
jne 0x409b1c
mov eax, dword [esi + 4]
cmp eax, ebp
jne 0x409ae3
mov eax, 0x530164
cmp byte [eax - 1], 0xfe
jae 0x409b1c
push 1
lea ecx, [esp + 0x5c]
call fcn.004013e0
mov eax, dword [esi + 4]
cmp eax, ebp
jne 0x409b00
mov eax, 0x530164
mov dword [esp + 0x5c], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x60], ecx
mov esi, dword [esi + 0xc]
mov dword [esp + 0x64], esi
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x409b58
push 1
push ebx
lea ecx, [esp + 0x60]
call fcn.004016f0
test al, al
je 0x409b58
mov esi, dword [esi + 4]
cmp esi, ebp
jne 0x409b38
mov esi, 0x530164
mov edi, dword [esp + 0x5c]
mov ecx, ebx
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x60], ebx
mov byte [ecx + ebx], 0
mov eax, dword [esp + 0x114]
mov byte [esp + 0x13c], 9
cmp eax, ebp
je 0x409b88
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x409b7f
cmp al, 0xff
je 0x409b7f
dec al
mov byte [ecx], al
jmp 0x409b88
push ecx
call fcn.00514140
add esp, 4
lea ecx, [esp + 0x54]
mov dword [esp + 0x114], ebp
mov dword [esp + 0x118], ebp
mov dword [esp + 0x11c], ebp
call fcn.004f86d0
cmp ax, 2
jne 0x409bd7
mov eax, dword [esp + 0x5c]
cmp eax, ebp
je 0x409f4f
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x409f46
cmp al, 0xff
je 0x409f46
dec al
mov byte [ecx], al
jmp 0x409f4f
lea edx, [esp + 0xbc]
lea ecx, [esp + 0x54]
push edx
call fcn.004f86e0
mov ecx, dword [eax + 8]
mov byte [esp + 0x13c], 0x10
cmp ecx, 3
ja 0x409c52
lea eax, [esp + 0xdc]
lea ecx, [esp + 0x54]
push eax
call fcn.004f86e0
mov edx, dword [eax + 8]
mov eax, dword [esp + 0xe0]
cmp edx, ebp
sete bl
cmp eax, ebp
je 0x409c39
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x409c30
cmp al, 0xff
je 0x409c30
dec al
mov byte [ecx], al
jmp 0x409c39
push ecx
call fcn.00514140
add esp, 4
test bl, bl
mov dword [esp + 0xe0], ebp
mov dword [esp + 0xe4], ebp
mov dword [esp + 0xe8], ebp
je 0x409c54
mov bl, 1
mov eax, dword [esp + 0xc0]
mov byte [esp + 0x13c], 9
cmp eax, ebp
je 0x409c84
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x409c7b
cmp al, 0xff
je 0x409c7b
dec al
mov byte [ecx], al
jmp 0x409c84
push ecx
call fcn.00514140
add esp, 4
test bl, bl
mov dword [esp + 0xc0], ebp
mov dword [esp + 0xc4], ebp
mov dword [esp + 0xc8], ebp
je 0x409ce5
push ebp
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push 6
push 0x548208
call fcn.004f58e0
push ecx
mov byte [esp + 0x14c], 0x11
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x5486f8
call fcn.004f58e0
mov ecx, 0x5540a8
mov byte [esp + 0x14c], 9
call fcn.004f91a0
jmp 0x409bac
push 8
push 0x548330
lea ecx, [esp + 0x20]
mov byte [esp + 0x78], 0x80
mov byte [esp + 0x79], 0x81
mov byte [esp + 0x7a], 0x82
mov byte [esp + 0x7b], 0x89
mov byte [esp + 0x7c], 0x83
mov byte [esp + 0x7d], 0x84
mov byte [esp + 0x7e], 0x85
mov byte [esp + 0x7f], 0x86
mov byte [esp + 0x80], 0x87
mov byte [esp + 0x81], 0x88
call fcn.004f5de0
movsx ecx, word [esp + 0x4c]
mov dl, byte [esp + ecx + 0x6a]
lea ecx, [esp + 0x18]
push edx
push 4
call fcn.004f5c80
lea eax, [esp + 0xac]
lea ecx, [esp + 0x54]
push eax
call fcn.004f86e0
mov eax, dword [eax + 4]
cmp eax, ebp
jne 0x409d5f
mov eax, 0x530164
push eax
call fcn.00514a57
mov ebx, eax
mov eax, dword [esp + 0xb4]
add esp, 4
cmp eax, ebp
mov dword [esp + 0x1c], ebx
je 0x409d96
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x409d8d
cmp al, 0xff
je 0x409d8d
dec al
mov byte [ecx], al
jmp 0x409d96
push ecx
call fcn.00514140
add esp, 4
movsx eax, word [esp + 0x4c]
add eax, 0xfffffffa
mov dword [esp + 0xb0], ebp
cmp eax, 9
mov dword [esp + 0xb4], ebp
mov dword [esp + 0xb8], ebp
mov byte [esp + 0x28], 0
ja case.default.0x409dbd
jmp dword [eax*4 + 0x40af50]
fild dword [esp + 0x1c]
fmul qword [0x5301b8]
jmp 0x409e0b
add ebx, 0xffffff80
mov dword [esp + 0x1c], ebx
fild dword [esp + 0x1c]
fmul qword [0x5301b0]
jmp 0x409e0b
fild dword [esp + 0x1c]
fmul qword [0x530170]
jmp 0x409e0b
fild dword [esp + 0x1c]
fmul qword [0x530178]
jmp 0x409e0b
mov byte [esp + 0x28], bl
jmp case.default.0x409dbd
fild dword [esp + 0x1c]
fmul qword [0x5301a8]
call fcn.00514a64
mov byte [esp + 0x28], al
mov ecx, dword [esp + 0x28]
push ecx
push 6
lea ecx, [esp + 0x20]
call fcn.004f5c80
lea edx, [esp + 0x18]
push edx
call fcn.00473820
add esp, 4
push ebp
push ebp
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push 6
push 0x548208
call fcn.004f58e0
push ecx
mov byte [esp + 0x14c], 0x12
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x548718
call fcn.004f58e0
mov ecx, 0x5540a8
mov byte [esp + 0x14c], 9
call fcn.004f91a0
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push ebp
call fcn.004f5870
lea eax, [esp + 0x28]
lea edx, [esp + 0x1c]
push eax
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push edx
mov byte [esp + 0x14c], 0x13
call fcn.004f5850
mov byte [esp + 0x148], 9
call fcn.00473d20
add esp, 0xc
mov bl, al
push 0x320
call dword [sym.imp.KERNEL32.dll_Sleep]
push ebp
push 1
push ecx
test bl, bl
mov ecx, esp
jne 0x409eed
mov dword [esp + 0x1c], esp
push 6
push 0x548208
call fcn.004f58e0
push ecx
mov byte [esp + 0x14c], 0x14
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x548710
jmp 0x409f13
mov dword [esp + 0x1c], esp
push 6
push 0x548208
call fcn.004f58e0
push ecx
mov byte [esp + 0x14c], 0x15
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x548708
call fcn.004f58e0
mov ecx, 0x5540a8
mov byte [esp + 0x14c], 9
call fcn.004f91a0
mov eax, dword [esp + 0x5c]
cmp eax, ebp
je 0x409f4f
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x409f46
cmp al, 0xff
je 0x409f46
dec al
mov byte [ecx], al
jmp 0x409f4f
push ecx
call fcn.00514140
add esp, 4
mov esi, dword [sym.imp.KERNEL32.dll_Sleep]
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x60], ebp
mov dword [esp + 0x64], ebp
mov ebp, 0x530160
xor edi, edi
jmp case.default.0x409733
push edi
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push 6
push 0x548208
call fcn.004f58e0
push ecx
mov byte [esp + 0x14c], 0x16
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x5486f0
call fcn.004f58e0
mov ecx, 0x5540a8
mov byte [esp + 0x14c], 3
call fcn.004f91a0
mov dword [esp + 0x80], ebp
mov word [esp + 0x84], bx
mov word [esp + 0x86], di
mov byte [esp + 0x13c], 0x17
mov eax, dword [esp + 0x4c]
lea ecx, [esp + 0x20]
push eax
push 5
call fcn.004f5c80
push ecx
lea edx, [esp + 0x24]
mov ecx, esp
mov dword [esp + 0x14], esp
push edx
call fcn.004f5850
mov ecx, dword [0x5540a8]
call fcn.004fa1d0
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push 6
push 0x5486e8
call fcn.004f58e0
mov ecx, dword [0x5540a8]
call fcn.004fa410
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push 6
push 0x5486e0
call fcn.004f58e0
mov ecx, dword [0x5540a8]
call fcn.004fa410
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push 6
push 0x5486d8
call fcn.004f58e0
mov ecx, dword [0x5540a8]
call fcn.004fa410
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push 6
push 0x5486d0
call fcn.004f58e0
mov ecx, dword [0x5540a8]
call fcn.004fa410
mov ecx, dword [0x5540a8]
lea eax, [esp + 0x80]
push eax
call fcn.004fa550
cmp ax, 0xffff
je 0x40a1bc
push 8
push 0x548310
lea ecx, [esp + 0x20]
call fcn.004f5de0
mov cl, byte [esp + 0x84]
inc cl
push ecx
push 6
lea ecx, [esp + 0x20]
call fcn.004f5c80
lea edx, [esp + 0x18]
push edx
call fcn.00473820
add esp, 4
push edi
push edi
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push 6
push 0x548208
call fcn.004f58e0
push ecx
mov byte [esp + 0x14c], 0x18
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x548718
call fcn.004f58e0
mov ecx, 0x5540a8
mov byte [esp + 0x14c], 0x17
call fcn.004f91a0
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push edi
call fcn.004f5870
lea eax, [esp + 0x28]
lea edx, [esp + 0x1c]
push eax
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push edx
mov byte [esp + 0x14c], 0x19
call fcn.004f5850
mov byte [esp + 0x148], 0x17
call fcn.00473d20
add esp, 0xc
mov bl, al
push 0x320
call esi
push edi
push 1
push ecx
test bl, bl
mov ecx, esp
jne 0x40a194
mov dword [esp + 0x1c], esp
push 6
push 0x548208
call fcn.004f58e0
push ecx
mov byte [esp + 0x14c], 0x1a
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x548710
call fcn.004f58e0
mov ecx, 0x5540a8
mov byte [esp + 0x14c], 0x17
call fcn.004f91a0
jmp 0x409fcf
mov dword [esp + 0x1c], esp
push 6
push 0x548208
call fcn.004f58e0
push ecx
mov byte [esp + 0x14c], 0x1b
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x548708
jmp 0x40a178
mov dword [esp + 0x80], ebp
jmp case.default.0x409733
push edi
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push 6
push 0x548208
call fcn.004f58e0
push ecx
mov byte [esp + 0x14c], 0x1c
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x5486c8
call fcn.004f58e0
mov ecx, 0x5540a8
mov byte [esp + 0x14c], 3
call fcn.004f91a0
mov dword [esp + 0x9c], ebp
mov word [esp + 0xa0], bx
mov word [esp + 0xa2], di
mov byte [esp + 0x13c], 0x1d
mov eax, dword [esp + 0x4c]
lea ecx, [esp + 0x20]
push eax
push 5
call fcn.004f5c80
push ecx
lea edx, [esp + 0x24]
mov ecx, esp
mov dword [esp + 0x14], esp
push edx
call fcn.004f5850
mov ecx, dword [0x5540a8]
call fcn.004fa1d0
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push 6
push 0x5486c0
call fcn.004f58e0
mov ecx, dword [0x5540a8]
call fcn.004fa410
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push 6
push 0x5486b8
call fcn.004f58e0
mov ecx, dword [0x5540a8]
call fcn.004fa410
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push 6
push 0x5486b0
call fcn.004f58e0
mov ecx, dword [0x5540a8]
call fcn.004fa410
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push 6
push 0x5486a8
call fcn.004f58e0
mov ecx, dword [0x5540a8]
call fcn.004fa410
mov ecx, dword [0x5540a8]
lea eax, [esp + 0x9c]
push eax
call fcn.004fa550
cmp ax, 0xffff
je 0x40a417
push 8
push 0x548304
lea ecx, [esp + 0x20]
call fcn.004f5de0
mov cl, byte [esp + 0xa0]
inc cl
push ecx
push 6
lea ecx, [esp + 0x20]
call fcn.004f5c80
lea edx, [esp + 0x18]
push edx
call fcn.00473820
add esp, 4
push edi
push edi
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push 6
push 0x548208
call fcn.004f58e0
push ecx
mov byte [esp + 0x14c], 0x1e
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x548718
call fcn.004f58e0
mov ecx, 0x5540a8
mov byte [esp + 0x14c], 0x1d
call fcn.004f91a0
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push edi
call fcn.004f5870
lea eax, [esp + 0x28]
lea edx, [esp + 0x1c]
push eax
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push edx
mov byte [esp + 0x14c], 0x1f
call fcn.004f5850
mov byte [esp + 0x148], 0x1d
call fcn.00473d20
add esp, 0xc
mov bl, al
push 0x320
call esi
push edi
push 1
push ecx
test bl, bl
mov ecx, esp
jne 0x40a3ef
mov dword [esp + 0x1c], esp
push 6
push 0x548208
call fcn.004f58e0
push ecx
mov byte [esp + 0x14c], 0x20
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x548710
call fcn.004f58e0
mov ecx, 0x5540a8
mov byte [esp + 0x14c], 0x1d
call fcn.004f91a0
jmp 0x40a22a
mov dword [esp + 0x1c], esp
push 6
push 0x548208
call fcn.004f58e0
push ecx
mov byte [esp + 0x14c], 0x21
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x548708
jmp 0x40a3d3
mov dword [esp + 0x9c], ebp
jmp case.default.0x409733
push edi
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push 6
push 0x548208
call fcn.004f58e0
push ecx
mov byte [esp + 0x14c], 0x22
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x5486a0
call fcn.004f58e0
mov ecx, 0x5540a8
mov byte [esp + 0x14c], 3
call fcn.004f91a0
push 7
push 0x548698
lea ecx, [esp + 0x20]
call fcn.004f5de0
lea eax, [esp + 0x18]
push eax
call fcn.00473820
add esp, 4
push edi
push edi
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push 6
push 0x548208
call fcn.004f58e0
push ecx
mov byte [esp + 0x14c], 0x23
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x548718
call fcn.004f58e0
mov ecx, 0x5540a8
mov byte [esp + 0x14c], 3
call fcn.004f91a0
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push edi
call fcn.004f5870
lea ecx, [esp + 0x28]
lea edx, [esp + 0x1c]
push ecx
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push edx
mov byte [esp + 0x14c], 0x24
call fcn.004f5850
mov byte [esp + 0x148], 3
call fcn.00473d20
add esp, 0xc
mov bl, al
push 0x320
call esi
push edi
push 1
push ecx
test bl, bl
mov ecx, esp
jne 0x40a555
mov dword [esp + 0x1c], esp
push 6
push 0x548208
call fcn.004f58e0
push ecx
mov byte [esp + 0x14c], 0x25
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x548710
call fcn.004f58e0
mov ecx, 0x5540a8
mov byte [esp + 0x14c], 3
call fcn.004f91a0
jmp case.default.0x409733
mov dword [esp + 0x1c], esp
push 6
push 0x548208
call fcn.004f58e0
push ecx
mov byte [esp + 0x14c], 0x26
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x548708
jmp 0x40a696
push edi
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push 6
push 0x548208
call fcn.004f58e0
push ecx
mov byte [esp + 0x14c], 0x27
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x548690
call fcn.004f58e0
mov ecx, 0x5540a8
mov byte [esp + 0x14c], 3
call fcn.004f91a0
push 7
push 0x548688
lea ecx, [esp + 0x20]
call fcn.004f5de0
lea eax, [esp + 0x18]
push eax
call fcn.00473820
add esp, 4
push edi
push edi
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push 6
push 0x548208
call fcn.004f58e0
push ecx
mov byte [esp + 0x14c], 0x28
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x548718
call fcn.004f58e0
mov ecx, 0x5540a8
mov byte [esp + 0x14c], 3
call fcn.004f91a0
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push edi
call fcn.004f5870
lea ecx, [esp + 0x28]
lea edx, [esp + 0x1c]
push ecx
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push edx
mov byte [esp + 0x14c], 0x29
call fcn.004f5850
mov byte [esp + 0x148], 3
call fcn.00473d20
add esp, 0xc
mov bl, al
push 0x320
call esi
push edi
push 1
push ecx
test bl, bl
mov ecx, esp
jne 0x40a6b2
mov dword [esp + 0x1c], esp
push 6
push 0x548208
call fcn.004f58e0
push ecx
mov byte [esp + 0x14c], 0x2a
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x548710
call fcn.004f58e0
mov ecx, 0x5540a8
mov byte [esp + 0x14c], 3
call fcn.004f91a0
jmp case.default.0x409733
mov dword [esp + 0x1c], esp
push 6
push 0x548208
call fcn.004f58e0
push ecx
mov byte [esp + 0x14c], 0x2b
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x548708
jmp 0x40a696
push edi
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push 6
push 0x548208
call fcn.004f58e0
push ecx
mov byte [esp + 0x14c], 0x2c
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x548680
call fcn.004f58e0
mov ecx, 0x5540a8
mov byte [esp + 0x14c], 3
call fcn.004f91a0
mov dword [esp + 0x88], ebp
mov word [esp + 0x8c], bx
mov word [esp + 0x8e], di
mov byte [esp + 0x13c], 0x2d
mov eax, dword [esp + 0x4c]
lea ecx, [esp + 0x20]
push eax
push 5
call fcn.004f5c80
push ecx
lea edx, [esp + 0x24]
mov ecx, esp
mov dword [esp + 0x14], esp
push edx
call fcn.004f5850
mov ecx, dword [0x5540a8]
call fcn.004fa1d0
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push 6
push 0x548678
call fcn.004f58e0
mov ecx, dword [0x5540a8]
call fcn.004fa410
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push 6
push 0x548670
call fcn.004f58e0
mov ecx, dword [0x5540a8]
call fcn.004fa410
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push 6
push 0x548668
call fcn.004f58e0
mov ecx, dword [0x5540a8]
call fcn.004fa410
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push 6
push 0x548660
call fcn.004f58e0
mov ecx, dword [0x5540a8]
call fcn.004fa410
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push 6
push 0x548658
call fcn.004f58e0
mov ecx, dword [0x5540a8]
call fcn.004fa410
mov ecx, dword [0x5540a8]
lea eax, [esp + 0x88]
push eax
call fcn.004fa550
cmp ax, 0xffff
je 0x40ae9e
mov ecx, dword [esp + 0x4c]
push ecx
push 5
lea ecx, [esp + 0x28]
call fcn.004f5c80
lea ecx, [esp + 0x30]
call fcn.004f8480
mov dl, byte [esp + 0x2f]
sub esp, 0x10
mov ebp, esp
xor esi, esi
mov edi, 0x54832c
or ecx, 0xffffffff
xor eax, eax
mov byte [ebp], dl
mov dword [ebp + 4], esi
mov dword [ebp + 8], esi
mov dword [ebp + 0xc], esi
mov byte [esp + 0x14c], 0x2e
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x20], esp
mov ebx, ecx
cmp ebx, 0xfffffffd
jbe 0x40a872
call fcn.0051414b
mov ecx, dword [ebp + 4]
cmp ecx, esi
je 0x40a897
mov al, byte [ecx - 1]
test al, al
je 0x40a897
cmp al, 0xff
je 0x40a897
cmp ebx, esi
jne 0x40a8bb
dec al
push esi
mov byte [ecx - 1], al
mov ecx, ebp
call fcn.004013e0
jmp 0x40a8e8
cmp ebx, esi
jne 0x40a8a6
push 1
mov ecx, ebp
call fcn.004013e0
jmp 0x40a8e8
mov eax, dword [ebp + 0xc]
cmp eax, 0x1f
ja 0x40a8b2
cmp eax, ebx
jae 0x40a8c3
push 1
mov ecx, ebp
call fcn.004013e0
push ebx
mov ecx, ebp
call fcn.00401a80
mov edi, dword [ebp + 4]
mov ecx, ebx
mov eax, ecx
mov esi, 0x54832c
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebp + 4]
mov dword [ebp + 8], ebx
add ebx, eax
xor esi, esi
mov byte [ebx], 0
sub esp, 0x10
lea edx, [esp + 0x9c]
mov ecx, esp
mov dword [esp + 0x34], esp
push edx
push 0x548328
mov byte [esp + 0x164], 0x2f
call fcn.00401030
sub esp, 0x10
lea eax, [esp + 0xae]
mov ecx, esp
mov dword [esp + 0xd4], esp
push eax
push 0x548324
mov byte [esp + 0x174], 0x30
call fcn.00401030
sub esp, 0x10
lea edx, [esp + 0xbd]
mov ecx, esp
mov dword [esp + 0xe8], esp
push edx
push 0x554048
mov byte [esp + 0x184], 0x31
call fcn.00401030
push ecx
lea eax, [esp + 0x64]
mov ecx, esp
mov dword [esp + 0x94], esp
push eax
mov byte [esp + 0x184], 0x32
call fcn.004f5850
push ecx
mov byte [esp + 0x184], 0x33
mov ecx, esp
mov dword [esp + 0x64], esp
push 6
push 0x548700
call fcn.004f58e0
lea ecx, [esp + 0x168]
mov byte [esp + 0x184], 0x2e
push ecx
mov ecx, 0x5540a8
call fcn.004f9710
mov dx, word [eax]
mov ebp, dword [0x530168]
lea edi, [eax + 4]
mov word [esp + 0x30], dx
mov byte [esp + 0x13c], 0x34
mov eax, dword [edi + 8]
mov ebx, eax
cmp ebp, ebx
jae 0x40a9cc
mov ebx, ebp
lea ecx, [esp + 0x34]
cmp ecx, edi
jne 0x40aa3c
cmp dword [esp + 0x3c], ebx
jae 0x40a9df
call fcn.00514377
lea ecx, [esp + 0x34]
call fcn.00401b90
mov eax, dword [esp + 0x3c]
sub eax, ebx
cmp eax, ebp
jae 0x40a9f4
mov ebp, eax
cmp ebp, esi
jbe 0x40aa2e
mov edx, dword [esp + 0x38]
sub eax, ebp
push eax
lea ecx, [ebx + edx]
lea edx, [ecx + ebp]
push edx
push ecx
call fcn.00514aa0
mov edi, dword [esp + 0x48]
add esp, 0xc
sub edi, ebp
lea ecx, [esp + 0x34]
push esi
push edi
call fcn.004016f0
test al, al
je 0x40aa2e
push edi
lea ecx, [esp + 0x38]
call fcn.004016d0
lea ecx, [esp + 0x34]
call fcn.00401b90
jmp 0x40aaed
cmp ebx, esi
jbe 0x40aaaf
cmp ebx, eax
jne 0x40aaaf
mov eax, dword [edi + 4]
cmp eax, esi
jne 0x40aa50
mov eax, 0x530164
cmp byte [eax - 1], 0xfe
jae 0x40aaaf
mov eax, dword [esp + 0x38]
cmp eax, esi
je 0x40aa7b
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x40aa72
cmp al, 0xff
je 0x40aa72
dec al
mov byte [ecx], al
jmp 0x40aa7b
push ecx
call fcn.00514140
add esp, 4
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x40], esi
mov eax, dword [edi + 4]
cmp eax, esi
jne 0x40aa93
mov eax, 0x530164
mov dword [esp + 0x38], eax
mov ecx, dword [edi + 8]
mov dword [esp + 0x3c], ecx
mov edi, dword [edi + 0xc]
mov dword [esp + 0x40], edi
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x40aaed
push 1
push ebx
lea ecx, [esp + 0x3c]
call fcn.004016f0
test al, al
je 0x40aaed
mov edi, dword [edi + 4]
cmp edi, esi
mov esi, 0x530164
je 0x40aacd
mov esi, edi
mov edi, dword [esp + 0x38]
mov ecx, ebx
mov eax, ecx
push ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x38]
call fcn.004016d0
xor esi, esi
mov eax, dword [esp + 0x128]
mov byte [esp + 0x13c], 0x2e
cmp eax, esi
je 0x40ab1d
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x40ab14
cmp al, 0xff
je 0x40ab14
dec al
mov byte [ecx], al
jmp 0x40ab1d
push ecx
call fcn.00514140
add esp, 4
lea ecx, [esp + 0x30]
mov dword [esp + 0x128], esi
mov dword [esp + 0x12c], esi
mov dword [esp + 0x130], esi
call fcn.004f86d0
cmp ax, 2
je 0x40ae6d
lea ecx, [esp + 0xfc]
push ecx
lea ecx, [esp + 0x34]
call fcn.004f86e0
mov ecx, dword [eax + 8]
mov byte [esp + 0x13c], 0x35
cmp ecx, 3
ja 0x40abc0
lea edx, [esp + 0xcc]
lea ecx, [esp + 0x30]
push edx
call fcn.004f86e0
mov edx, dword [eax + 8]
mov eax, dword [esp + 0xd0]
cmp edx, esi
sete bl
cmp eax, esi
je 0x40aba7
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x40ab9e
cmp al, 0xff
je 0x40ab9e
dec al
mov byte [ecx], al
jmp 0x40aba7
push ecx
call fcn.00514140
add esp, 4
test bl, bl
mov dword [esp + 0xd0], esi
mov dword [esp + 0xd4], esi
mov dword [esp + 0xd8], esi
je 0x40abc2
mov bl, 1
mov eax, dword [esp + 0x100]
mov byte [esp + 0x13c], 0x2e
cmp eax, esi
je 0x40abf2
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x40abe9
cmp al, 0xff
je 0x40abe9
dec al
mov byte [ecx], al
jmp 0x40abf2
push ecx
call fcn.00514140
add esp, 4
test bl, bl
mov dword [esp + 0x100], esi
mov dword [esp + 0x104], esi
mov dword [esp + 0x108], esi
jne 0x40ae2a
push 8
push 0x54864c
lea ecx, [esp + 0x20]
call fcn.004f5de0
lea eax, [esp + 0xec]
lea ecx, [esp + 0x30]
push eax
call fcn.004f86e0
mov eax, dword [eax + 4]
cmp eax, esi
jne 0x40ac3c
mov eax, 0x530164
push eax
call fcn.00514a57
mov ebx, eax
mov eax, dword [esp + 0xf4]
add esp, 4
cmp eax, esi
mov dword [esp + 0x1c], ebx
je 0x40ac73
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x40ac6a
cmp al, 0xff
je 0x40ac6a
dec al
mov byte [ecx], al
jmp 0x40ac73
push ecx
call fcn.00514140
add esp, 4
movsx eax, word [esp + 0x8c]
cmp eax, 4
mov dword [esp + 0xf0], esi
mov dword [esp + 0xf4], esi
mov dword [esp + 0xf8], esi
mov byte [esp + 0x44], 0
ja case.default.0x40ac9a
jmp dword [eax*4 + 0x40af78]
fild dword [esp + 0x1c]
fmul qword [0x5301b8]
call fcn.00514a64
mov byte [esp + 0x44], al
jmp case.default.0x40ac9a
add ebx, 0xffffff80
mov dword [esp + 0x1c], ebx
fild dword [esp + 0x1c]
fmul qword [0x530250]
call fcn.00514a64
mov byte [esp + 0x44], al
jmp case.default.0x40ac9a
mov byte [esp + 0x44], bl
mov ecx, dword [esp + 0x44]
push ecx
push 6
lea ecx, [esp + 0x20]
call fcn.004f5c80
lea edx, [esp + 0x18]
push edx
call fcn.00473820
add esp, 4
push esi
push esi
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push 6
push 0x548208
call fcn.004f58e0
push ecx
mov byte [esp + 0x14c], 0x37
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x548718
call fcn.004f58e0
mov ecx, 0x5540a8
mov byte [esp + 0x14c], 0x2e
call fcn.004f91a0
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push esi
call fcn.004f5870
lea eax, [esp + 0x28]
lea edx, [esp + 0x1c]
push eax
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push edx
mov byte [esp + 0x14c], 0x38
call fcn.004f5850
mov byte [esp + 0x148], 0x2e
call fcn.00473d20
add esp, 0xc
mov bl, al
push 0x320
call dword [sym.imp.KERNEL32.dll_Sleep]
push esi
push 1
push ecx
test bl, bl
mov ecx, esp
jne 0x40adaf
mov dword [esp + 0x1c], esp
push 6
push 0x548208
call fcn.004f58e0
push ecx
mov byte [esp + 0x14c], 0x39
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x548710
jmp 0x40add5
mov dword [esp + 0x1c], esp
push 6
push 0x548208
call fcn.004f58e0
push ecx
mov byte [esp + 0x14c], 0x3a
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x548708
call fcn.004f58e0
mov ecx, 0x5540a8
mov byte [esp + 0x14c], 0x2e
call fcn.004f91a0
mov eax, dword [esp + 0x38]
mov byte [esp + 0x13c], 0x2d
cmp eax, esi
je 0x40ae19
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x40ae10
cmp al, 0xff
je 0x40ae10
dec al
mov byte [ecx], al
jmp 0x40ae19
push ecx
call fcn.00514140
add esp, 4
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x40], esi
jmp 0x40a73c
push esi
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push 6
push 0x548208
call fcn.004f58e0
push ecx
mov byte [esp + 0x14c], 0x36
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x54831c
call fcn.004f58e0
mov ecx, 0x5540a8
mov byte [esp + 0x14c], 0x2e
call fcn.004f91a0
mov eax, dword [esp + 0x38]
cmp eax, esi
je 0x40ae92
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x40ae89
cmp al, 0xff
je 0x40ae89
dec al
mov byte [ecx], al
jmp 0x40ae92
push ecx
call fcn.00514140
add esp, 4
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x40], esi
mov esi, dword [sym.imp.KERNEL32.dll_Sleep]
mov dword [esp + 0x88], 0x530160
xor edi, edi
mov ebp, 0x530160
lea ecx, [esp + 0x24]
mov byte [esp + 0x13c], 2
call fcn.004f5980
lea ecx, [esp + 0x18]
mov byte [esp + 0x13c], 1
call fcn.004f5980
lea ecx, [esp + 0x20]
mov byte [esp + 0x13c], 0
call fcn.004f5980
jmp 0x409663
lea ecx, [esp + 0x20]
mov byte [esp + 0x13c], 0
call fcn.004f5980
mov ecx, dword [esp + 0x134]
pop edi
pop esi
pop ebp
xor ax, ax
mov dword fs:[0], ecx
pop ebx
add esp, 0x130
ret