Function at 0x494830
Capabilities:
Check os version
Contain obfuscated stackstrings
Get number of processors
Parse pe header
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x527a43
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x2a4
push ebx
push ebp
push esi
push edi
or edi, 0xffffffff
mov ebp, ecx
xor esi, esi
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x30], 0x530160
mov word [esp + 0x34], di
mov word [esp + 0x36], si
mov dword [esp + 0x2bc], esi
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x54c774
call fcn.004f58e0
mov ecx, dword [0x5540a8]
call fcn.004fa1d0
push 6
push 0x54c76c
lea ecx, [esp + 0x2c]
call fcn.004f58e0
mov bl, 1
mov byte [esp + 0x2bc], 1
mov byte [esp + 0xf4], bl
mov eax, dword [esp + 0xf4]
lea ecx, [esp + 0x24]
push eax
push 5
call fcn.004f5c80
push ecx
lea edx, [esp + 0x28]
mov ecx, esp
mov dword [esp + 0x24], esp
push edx
call fcn.004f5850
mov ecx, dword [0x5540a8]
call fcn.004fa410
inc bl
cmp bl, 0x1a
mov byte [esp + 0xf4], bl
jbe 0x4948b2
mov ecx, dword [0x5540a8]
lea eax, [esp + 0x30]
push eax
call fcn.004fa550
cmp ax, di
je 0x496ed6
push 8
push 0x54b19c
lea ecx, [esp + 0x20]
call fcn.004f58e0
push esi
lea ecx, [esp + 0x3c]
mov byte [esp + 0x2c0], 2
call fcn.004f5870
push 8
push 0x54c760
lea ecx, [esp + 0x24]
mov byte [esp + 0x2c4], 3
call fcn.004f58e0
movsx eax, word [esp + 0x34]
cmp eax, 0x19
mov byte [esp + 0x2bc], 4
mov byte [esp + 0x48], 0x10
mov byte [esp + 0x49], 0x12
mov byte [esp + 0x4a], 0x13
mov byte [esp + 0x4b], 0x14
mov byte [esp + 0x4c], 0x15
mov byte [esp + 0x4d], 0x2c
mov byte [esp + 0x4e], 0x31
mov byte [esp + 0x4f], 0x32
mov byte [esp + 0x50], 0x35
mov byte [esp + 0x51], 0x37
mov byte [esp + 0x52], 0x38
mov byte [esp + 0x53], 0x42
mov byte [esp + 0x54], 0x50
mov byte [esp + 0x55], 0x40
mov byte [esp + 0x56], 0x62
mov byte [esp + 0x57], 0x11
mov byte [esp + 0x58], 0x19
mov byte [esp + 0x59], 0x39
mov byte [esp + 0x5a], 0x52
mov byte [esp + 0x5b], 0x66
mov byte [esp + 0x5c], 0x68
mov byte [esp + 0x5d], 0x23
mov byte [esp + 0x5e], 0x83
mov byte [esp + 0x5f], 0x3a
mov byte [esp + 0x60], 0x65
mov byte [esp + 0x61], 0x67
ja case.default.0x4949e2
xor ecx, ecx
mov cl, byte [eax + 0x496f38]
jmp dword [ecx*4 + 0x496f14]
mov eax, 0x530160
mov word [esp + 0x104], di
mov dword [esp + 0x100], eax
mov word [esp + 0x106], si
mov dword [esp + 0xf8], eax
mov word [esp + 0xfc], di
mov word [esp + 0xfe], si
mov dl, byte [esp + 0x34]
lea ecx, [esp + 0x24]
inc dl
mov byte [esp + 0x2bc], 6
push edx
push 5
call fcn.004f5c80
push ecx
lea eax, [esp + 0x28]
mov ecx, esp
mov dword [esp + 0x24], esp
push eax
call fcn.004f5850
mov ecx, dword [0x5540a8]
call fcn.004fa1d0
push 6
push 0x54c758
lea ecx, [esp + 0x8c]
call fcn.004f58e0
mov byte [esp + 0x2bc], 7
xor ebx, ebx
mov cl, bl
add cl, 0x1b
push ecx
push 5
lea ecx, [esp + 0x8c]
call fcn.004f5c80
push ecx
lea edx, [esp + 0x88]
mov ecx, esp
mov dword [esp + 0x24], esp
push edx
call fcn.004f5850
mov ecx, dword [0x5540a8]
call fcn.004fa410
inc ebx
cmp ebx, 4
jl 0x494a6f
mov ecx, dword [0x5540a8]
lea eax, [esp + 0x100]
push eax
call fcn.004fa550
movsx ebx, ax
cmp ebx, edi
je 0x494cfd
push 9
push 0x549c7c
lea ecx, [esp + 0x4c]
call fcn.004f58e0
push 8
push 0x54c74c
lea ecx, [esp + 0x88]
mov byte [esp + 0x2c4], 8
call fcn.004f58e0
push ecx
lea edx, [esp + 0x28]
mov ecx, esp
mov dword [esp + 0x24], esp
push edx
mov byte [esp + 0x2c4], 9
call fcn.004f5850
mov ecx, dword [0x5540a8]
call fcn.004fa1d0
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x54c744
call fcn.004f58e0
mov ecx, dword [0x5540a8]
call fcn.004fa410
mov ecx, dword [0x5540a8]
push 0x10
call fcn.004fa310
mov ecx, dword [0x5540a8]
lea eax, [esp + 0xf8]
push eax
call fcn.004fa550
movsx eax, ax
cmp eax, edi
je 0x494cbf
cmp eax, esi
setne cl
dec ecx
and ecx, 0xff
push ecx
push 6
lea ecx, [esp + 0x4c]
call fcn.004f5c80
mov dl, bl
lea ecx, [esp + 0x44]
inc dl
push edx
push 7
call fcn.004f5c80
lea eax, [esp + 0x44]
mov ecx, ebp
push eax
call fcn.004d3100
lea ecx, [esp + 0x80]
push ecx
mov ecx, ebp
call fcn.004d3100
push esi
push esi
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push 6
push 0x548208
call fcn.004f58e0
push ecx
mov byte [esp + 0x2cc], 0xa
mov ecx, esp
mov dword [esp + 0x38], esp
push 6
push 0x548aac
call fcn.004f58e0
mov ecx, 0x5540a8
mov byte [esp + 0x2cc], 9
call fcn.004f91a0
push 1
push ecx
lea edx, [esp + 0x88]
mov ecx, esp
mov dword [esp + 0x30], esp
push edx
call fcn.004f5850
lea eax, [esp + 0x40]
lea edx, [esp + 0x4c]
push eax
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push edx
mov byte [esp + 0x2d0], 0xb
call fcn.004f5850
mov ecx, ebp
mov byte [esp + 0x2cc], 9
call fcn.0049d480
push esi
push 1
push ecx
test al, al
mov ecx, esp
je 0x494c58
mov dword [esp + 0x34], esp
push 6
push 0x548208
call fcn.004f58e0
push ecx
mov byte [esp + 0x2cc], 0xc
mov ecx, esp
mov dword [esp + 0x30], esp
push 6
push 0x54c73c
jmp 0x494c7e
mov dword [esp + 0x34], esp
push 6
push 0x548208
call fcn.004f58e0
push ecx
mov byte [esp + 0x2cc], 0xd
mov ecx, esp
mov dword [esp + 0x30], esp
push 6
push 0x54c734
call fcn.004f58e0
mov ecx, 0x5540a8
mov byte [esp + 0x2cc], 9
call fcn.004f91a0
lea ecx, [esp + 0x80]
mov byte [esp + 0x2bc], 8
call fcn.004f5980
lea ecx, [esp + 0x44]
mov byte [esp + 0x2bc], 7
call fcn.004f5980
jmp 0x494ac6
lea ecx, [esp + 0x80]
mov byte [esp + 0x2bc], 8
call fcn.004f5980
lea ecx, [esp + 0x44]
mov byte [esp + 0x2bc], 7
call fcn.004f5980
lea ecx, [esp + 0x84]
mov byte [esp + 0x2bc], 6
call fcn.004f5980
jmp case.0x4949e2.1
lea ecx, [esp + 0x84]
mov byte [esp + 0x2bc], 6
call fcn.004f5980
mov eax, 0x530160
mov dword [esp + 0xf8], eax
mov dword [esp + 0x100], eax
jmp case.default.0x4949e2
mov ebx, 0x530160
mov dword [esp + 0xec], ebx
mov word [esp + 0xf0], di
mov word [esp + 0xf2], si
mov al, byte [esp + 0x34]
lea ecx, [esp + 0x24]
inc al
mov byte [esp + 0x2bc], 0xe
push eax
push 5
call fcn.004f5c80
push ecx
lea edx, [esp + 0x28]
mov ecx, esp
mov dword [esp + 0x2c], esp
push edx
call fcn.004f5850
mov ecx, dword [0x5540a8]
call fcn.004fa1d0
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push 6
push 0x54c744
call fcn.004f58e0
mov ecx, dword [0x5540a8]
call fcn.004fa410
cmp word [esp + 0x34], 0xb
je 0x494dbf
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push 6
push 0x54c72c
call fcn.004f58e0
mov ecx, dword [0x5540a8]
call fcn.004fa410
mov ecx, dword [0x5540a8]
push 0x10
call fcn.004fa310
mov ecx, dword [0x5540a8]
lea eax, [esp + 0xec]
push eax
call fcn.004fa550
cmp ax, di
je 0x494f3d
movsx ecx, word [esp + 0x34]
mov dl, byte [esp + ecx + 0x48]
lea ecx, [esp + 0x18]
push edx
push 4
call fcn.004f5c80
cmp word [esp + 0xf0], si
lea ecx, [esp + 0x18]
setne al
dec eax
and eax, 0xff
push eax
push 6
call fcn.004f5c80
movsx ecx, word [esp + 0x34]
mov dl, byte [esp + ecx + 0x48]
lea ecx, [esp + 0x1c]
push edx
push 4
call fcn.004f5c80
lea eax, [esp + 0x18]
mov ecx, ebp
push eax
call fcn.004d3100
lea ecx, [esp + 0x1c]
push ecx
mov ecx, ebp
call fcn.004d3100
push esi
push esi
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push 6
push 0x548208
call fcn.004f58e0
push ecx
mov byte [esp + 0x2cc], 0xf
mov ecx, esp
mov dword [esp + 0x30], esp
push 6
push 0x548aac
call fcn.004f58e0
mov ecx, 0x5540a8
mov byte [esp + 0x2cc], 0xe
call fcn.004f91a0
push 1
push ecx
lea edx, [esp + 0x24]
mov ecx, esp
mov dword [esp + 0x30], esp
push edx
call fcn.004f5850
lea eax, [esp + 0x40]
lea edx, [esp + 0x20]
push eax
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push edx
mov byte [esp + 0x2d0], 0x10
call fcn.004f5850
mov ecx, ebp
mov byte [esp + 0x2cc], 0xe
call fcn.0049d480
push esi
push 1
push ecx
test al, al
mov ecx, esp
jne 0x494f15
mov dword [esp + 0x34], esp
push 6
push 0x548208
call fcn.004f58e0
push ecx
mov byte [esp + 0x2cc], 0x11
mov ecx, esp
mov dword [esp + 0x30], esp
push 6
push 0x54c734
call fcn.004f58e0
mov ecx, 0x5540a8
mov byte [esp + 0x2cc], 0xe
call fcn.004f91a0
jmp 0x494d2e
mov dword [esp + 0x34], esp
push 6
push 0x548208
call fcn.004f58e0
push ecx
mov byte [esp + 0x2cc], 0x12
mov ecx, esp
mov dword [esp + 0x30], esp
push 6
push 0x54c73c
jmp 0x494ef9
mov dword [esp + 0xec], ebx
jmp case.default.0x4949e2
push esi
push esi
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push 6
push 0x548208
call fcn.004f58e0
push ecx
mov byte [esp + 0x2cc], 0x13
mov ecx, esp
mov dword [esp + 0x30], esp
push 6
push 0x548aac
call fcn.004f58e0
mov ecx, 0x5540a8
mov byte [esp + 0x2cc], 4
call fcn.004f91a0
movsx eax, word [esp + 0x34]
mov cl, byte [esp + eax + 0x48]
push ecx
push 4
lea ecx, [esp + 0x20]
call fcn.004f5c80
push 0xff
push 6
lea ecx, [esp + 0x20]
call fcn.004f5c80
movsx edx, word [esp + 0x34]
lea ecx, [esp + 0x1c]
mov al, byte [esp + edx + 0x48]
push eax
push 4
call fcn.004f5c80
lea ecx, [esp + 0x18]
push ecx
mov ecx, ebp
call fcn.004d3100
lea edx, [esp + 0x1c]
mov ecx, ebp
push edx
call fcn.004d3100
push 1
push ecx
lea eax, [esp + 0x24]
mov ecx, esp
mov dword [esp + 0x30], esp
push eax
call fcn.004f5850
lea ecx, [esp + 0x40]
lea edx, [esp + 0x20]
push ecx
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push edx
mov byte [esp + 0x2d0], 0x14
call fcn.004f5850
mov ecx, ebp
mov byte [esp + 0x2cc], 4
call fcn.0049d480
push esi
push 1
push ecx
test al, al
mov ecx, esp
jne 0x495069
mov dword [esp + 0x34], esp
push 6
push 0x548208
call fcn.004f58e0
push ecx
mov byte [esp + 0x2cc], 0x15
mov ecx, esp
mov dword [esp + 0x30], esp
push 6
push 0x54c734
call fcn.004f58e0
mov ecx, 0x5540a8
mov byte [esp + 0x2cc], 4
call fcn.004f91a0
jmp case.default.0x4949e2
mov dword [esp + 0x34], esp
push 6
push 0x548208
call fcn.004f58e0
push ecx
mov byte [esp + 0x2cc], 0x16
mov ecx, esp
mov dword [esp + 0x30], esp
push 6
push 0x54c73c
jmp 0x49504d
mov al, byte [esp + 0x34]
lea ecx, [esp + 0x24]
inc al
push eax
push 5
call fcn.004f5c80
lea ecx, [esp + 0xc4]
call fcn.004f8480
mov cl, byte [esp + 0x42]
sub esp, 0x10
mov edx, esp
mov edi, 0x5491f0
xor eax, eax
mov dword [esp + 0x38], esp
mov byte [edx], cl
or ecx, 0xffffffff
mov dword [edx + 4], esi
mov dword [edx + 8], esi
mov dword [edx + 0xc], esi
mov byte [esp + 0x2cc], 0x17
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x5491f0
mov ecx, edx
call fcn.00401510
sub esp, 0x10
lea edx, [esp + 0x62]
mov ecx, esp
mov dword [esp + 0x40], esp
push edx
push 0x548328
mov byte [esp + 0x2e4], 0x18
call fcn.00401030
sub esp, 0x10
lea eax, [esp + 0xd3]
mov ecx, esp
mov dword [esp + 0x98], esp
push eax
push 0x548324
mov byte [esp + 0x2f4], 0x19
call fcn.00401030
sub esp, 0x10
lea edx, [esp + 0x7f]
mov ecx, esp
mov dword [esp + 0xa4], esp
push edx
push 0x554048
mov byte [esp + 0x304], 0x1a
call fcn.00401030
push ecx
lea eax, [esp + 0x68]
mov ecx, esp
mov dword [esp + 0x58], esp
push eax
mov byte [esp + 0x304], 0x1b
call fcn.004f5850
push ecx
mov byte [esp + 0x304], 0x1c
mov ecx, esp
mov dword [esp + 0x58], esp
push 6
push 0x54c724
call fcn.004f58e0
lea ecx, [esp + 0x244]
mov byte [esp + 0x304], 0x17
push ecx
mov ecx, 0x5540a8
call fcn.004f9710
mov dx, word [eax]
mov ecx, dword [0x530168]
mov byte [esp + 0x2bc], 0x1d
mov word [esp + 0xc4], dx
push ecx
add eax, 4
push esi
push eax
lea ecx, [esp + 0xd4]
call fcn.004011e0
mov eax, dword [esp + 0x204]
mov byte [esp + 0x2bc], 0x17
cmp eax, esi
je 0x4951fd
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x4951f4
cmp al, 0xff
je 0x4951f4
dec al
mov byte [ecx], al
jmp 0x4951fd
push ecx
call fcn.00514140
add esp, 4
lea ecx, [esp + 0xc4]
mov dword [esp + 0x204], esi
mov dword [esp + 0x208], esi
mov dword [esp + 0x20c], esi
call fcn.004f86d0
cmp ax, 2
jne 0x495252
mov eax, dword [esp + 0xcc]
cmp eax, esi
je 0x495542
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x495539
cmp al, 0xff
je 0x495539
dec al
mov byte [ecx], al
jmp 0x495542
lea edx, [esp + 0x12c]
lea ecx, [esp + 0xc4]
push edx
call fcn.004f86e0
mov ecx, dword [eax + 8]
mov byte [esp + 0x2bc], 0x1e
cmp ecx, 3
ja 0x4952d3
lea eax, [esp + 0x1ec]
lea ecx, [esp + 0xc4]
push eax
call fcn.004f86e0
mov edx, dword [eax + 8]
mov eax, dword [esp + 0x1f0]
cmp edx, esi
sete bl
cmp eax, esi
je 0x4952ba
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x4952b1
cmp al, 0xff
je 0x4952b1
dec al
mov byte [ecx], al
jmp 0x4952ba
push ecx
call fcn.00514140
add esp, 4
test bl, bl
mov dword [esp + 0x1f0], esi
mov dword [esp + 0x1f4], esi
mov dword [esp + 0x1f8], esi
je 0x4952d5
mov bl, 1
mov eax, dword [esp + 0x130]
mov byte [esp + 0x2bc], 0x17
cmp eax, esi
je 0x495305
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x4952fc
cmp al, 0xff
je 0x4952fc
dec al
mov byte [ecx], al
jmp 0x495305
push ecx
call fcn.00514140
add esp, 4
test bl, bl
mov dword [esp + 0x130], esi
mov dword [esp + 0x134], esi
mov dword [esp + 0x138], esi
push esi
je 0x495366
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push 6
push 0x548208
call fcn.004f58e0
push ecx
mov byte [esp + 0x2cc], 0x1f
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x54c71c
call fcn.004f58e0
mov ecx, 0x5540a8
mov byte [esp + 0x2cc], 0x17
call fcn.004f91a0
jmp 0x495224
push esi
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push 6
push 0x548208
call fcn.004f58e0
push ecx
mov byte [esp + 0x2cc], 0x20
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x548aac
call fcn.004f58e0
mov ecx, 0x5540a8
mov byte [esp + 0x2cc], 0x17
call fcn.004f91a0
movsx ecx, word [esp + 0x34]
mov dl, byte [esp + ecx + 0x48]
lea ecx, [esp + 0x18]
push edx
push 4
call fcn.004f5c80
lea eax, [esp + 0x14c]
lea ecx, [esp + 0xc4]
push eax
call fcn.004f86e0
mov eax, dword [eax + 4]
mov byte [esp + 0x2bc], 0x21
cmp eax, esi
jne 0x4953e4
mov eax, 0x530164
push eax
call fcn.00514a57
add esp, 4
lea ecx, [esp + 0x18]
push eax
push 6
call fcn.004f5c80
mov eax, dword [esp + 0x150]
mov byte [esp + 0x2bc], 0x17
cmp eax, esi
je 0x495429
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x495420
cmp al, 0xff
je 0x495420
dec al
mov byte [ecx], al
jmp 0x495429
push ecx
call fcn.00514140
add esp, 4
movsx ecx, word [esp + 0x34]
mov dword [esp + 0x150], esi
mov dword [esp + 0x154], esi
mov dl, byte [esp + ecx + 0x48]
lea ecx, [esp + 0x1c]
push edx
push 4
mov dword [esp + 0x160], esi
call fcn.004f5c80
lea eax, [esp + 0x18]
mov ecx, ebp
push eax
call fcn.004d3100
lea ecx, [esp + 0x1c]
push ecx
mov ecx, ebp
call fcn.004d3100
push 1
push ecx
lea edx, [esp + 0x24]
mov ecx, esp
mov dword [esp + 0x18], esp
push edx
call fcn.004f5850
lea eax, [esp + 0x40]
lea edx, [esp + 0x20]
push eax
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push edx
mov byte [esp + 0x2d0], 0x22
call fcn.004f5850
mov ecx, ebp
mov byte [esp + 0x2cc], 0x17
call fcn.0049d480
push esi
push 1
push ecx
test al, al
mov ecx, esp
jne 0x4954dd
mov dword [esp + 0x1c], esp
push 6
push 0x548208
call fcn.004f58e0
push ecx
mov byte [esp + 0x2cc], 0x23
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x54c734
jmp 0x495503
mov dword [esp + 0x1c], esp
push 6
push 0x548208
call fcn.004f58e0
push ecx
mov byte [esp + 0x2cc], 0x24
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x54c73c
call fcn.004f58e0
mov ecx, 0x5540a8
mov byte [esp + 0x2cc], 0x17
call fcn.004f91a0
mov eax, dword [esp + 0xcc]
cmp eax, esi
je 0x495542
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x495539
cmp al, 0xff
je 0x495539
dec al
mov byte [ecx], al
jmp 0x495542
push ecx
call fcn.00514140
add esp, 4
mov dword [esp + 0xcc], esi
mov dword [esp + 0xd0], esi
mov dword [esp + 0xd4], esi
jmp case.default.0x4949e2
mov al, byte [esp + 0x34]
lea ecx, [esp + 0x24]
inc al
push eax
push 5
call fcn.004f5c80
lea ecx, [esp + 0xd8]
call fcn.004f8480
mov cl, byte [esp + 0x3f]
sub esp, 0x10
mov ebp, esp
mov edi, 0x54832c
xor eax, eax
mov dword [esp + 0x20], esp
mov byte [ebp], cl
or ecx, 0xffffffff
mov dword [ebp + 4], esi
mov dword [ebp + 8], esi
mov dword [ebp + 0xc], esi
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov byte [esp + 0x2d0], 0x25
mov ebx, ecx
mov ecx, ebp
push ebx
call fcn.004016f0
test al, al
je 0x4955dc
mov edi, dword [ebp + 4]
mov ecx, ebx
mov edx, ecx
mov esi, 0x54832c
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, ebp
call fcn.004016d0
xor esi, esi
sub esp, 0x10
lea eax, [esp + 0xcb]
mov ecx, esp
mov dword [esp + 0x34], esp
push eax
push 0x548328
mov byte [esp + 0x2e4], 0x26
call fcn.00401030
sub esp, 0x10
lea edx, [esp + 0xd2]
mov ecx, esp
mov dword [esp + 0x94], esp
push edx
push 0x548324
mov byte [esp + 0x2f4], 0x27
call fcn.00401030
sub esp, 0x10
lea eax, [esp + 0x80]
mov ecx, esp
mov dword [esp + 0xa8], esp
push eax
push 0x554048
mov byte [esp + 0x304], 0x28
call fcn.00401030
push ecx
lea edx, [esp + 0x68]
mov ecx, esp
mov dword [esp + 0x6c], esp
push edx
mov byte [esp + 0x304], 0x29
call fcn.004f5850
push ecx
mov byte [esp + 0x304], 0x2a
mov ecx, esp
mov dword [esp + 0x68], esp
push 6
push 0x54c714
call fcn.004f58e0
lea eax, [esp + 0x280]
mov ecx, 0x5540a8
push eax
mov byte [esp + 0x308], 0x25
call fcn.004f9710
mov edx, dword [0x530168]
mov cx, word [eax]
push edx
add eax, 4
mov word [esp + 0xdc], cx
push esi
push eax
lea ecx, [esp + 0xe8]
mov byte [esp + 0x2c8], 0x2b
call fcn.004011e0
mov eax, dword [esp + 0x240]
mov byte [esp + 0x2bc], 0x25
cmp eax, esi
je 0x4956f4
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x4956eb
cmp al, 0xff
je 0x4956eb
dec al
mov byte [ecx], al
jmp 0x4956f4
push ecx
call fcn.00514140
add esp, 4
lea ecx, [esp + 0xd8]
mov dword [esp + 0x240], esi
mov dword [esp + 0x244], esi
mov dword [esp + 0x248], esi
call fcn.004f86d0
cmp ax, 2
jne 0x495761
mov eax, dword [esp + 0xe0]
cmp eax, esi
je 0x495743
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x49573a
cmp al, 0xff
je 0x49573a
dec al
mov byte [ecx], al
jmp 0x495743
push ecx
call fcn.00514140
add esp, 4
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0xe0], esi
mov dword [esp + 0xe4], esi
mov dword [esp + 0xe8], esi
jmp case.default.0x4949e2
lea eax, [esp + 0x18c]
lea ecx, [esp + 0xd8]
push eax
call fcn.004f86e0
mov ecx, dword [eax + 8]
mov byte [esp + 0x2bc], 0x2c
cmp ecx, 3
ja 0x4957e2
lea ecx, [esp + 0x16c]
push ecx
lea ecx, [esp + 0xdc]
call fcn.004f86e0
mov edx, dword [eax + 8]
mov eax, dword [esp + 0x170]
cmp edx, esi
sete bl
cmp eax, esi
je 0x4957c9
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x4957c0
cmp al, 0xff
je 0x4957c0
dec al
mov byte [ecx], al
jmp 0x4957c9
push ecx
call fcn.00514140
add esp, 4
test bl, bl
mov dword [esp + 0x170], esi
mov dword [esp + 0x174], esi
mov dword [esp + 0x178], esi
je 0x4957e4
mov bl, 1
mov eax, dword [esp + 0x190]
mov byte [esp + 0x2bc], 0x25
cmp eax, esi
je 0x495814
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x49580b
cmp al, 0xff
je 0x49580b
dec al
mov byte [ecx], al
jmp 0x495814
push ecx
call fcn.00514140
add esp, 4
test bl, bl
mov dword [esp + 0x190], esi
mov dword [esp + 0x194], esi
mov dword [esp + 0x198], esi
push esi
je 0x495875
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push 6
push 0x548208
call fcn.004f58e0
push ecx
mov byte [esp + 0x2cc], 0x2d
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x54c71c
call fcn.004f58e0
mov ecx, 0x5540a8
mov byte [esp + 0x2cc], 0x25
call fcn.004f91a0
jmp 0x495b10
push esi
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push 6
push 0x548208
call fcn.004f58e0
push ecx
mov byte [esp + 0x2cc], 0x2e
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x548aac
call fcn.004f58e0
mov ecx, 0x5540a8
mov byte [esp + 0x2cc], 0x25
call fcn.004f91a0
movsx edx, word [esp + 0x34]
lea ecx, [esp + 0x18]
mov al, byte [esp + edx + 0x48]
push eax
push 4
call fcn.004f5c80
lea ecx, [esp + 0x19c]
push ecx
lea ecx, [esp + 0xdc]
call fcn.004f86e0
mov eax, dword [eax + 4]
mov byte [esp + 0x2bc], 0x2f
cmp eax, esi
jne 0x4958f3
mov eax, 0x530164
push eax
call fcn.00514a57
add esp, 4
lea ecx, [esp + 0x18]
push eax
push 6
call fcn.004f5c80
mov eax, dword [esp + 0x1a0]
mov byte [esp + 0x2bc], 0x25
cmp eax, esi
je 0x495938
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x49592f
cmp al, 0xff
je 0x49592f
dec al
mov byte [ecx], al
jmp 0x495938
push ecx
call fcn.00514140
add esp, 4
movsx edx, word [esp + 0x34]
lea ecx, [esp + 0x1c]
mov dword [esp + 0x1a0], esi
mov al, byte [esp + edx + 0x48]
mov dword [esp + 0x1a4], esi
push eax
push 4
mov dword [esp + 0x1b0], esi
call fcn.004f5c80
mov edi, dword [esp + 0x2c]
lea ecx, [esp + 0x18]
push ecx
mov ecx, edi
call fcn.004d3100
lea edx, [esp + 0x1c]
mov ecx, edi
push edx
call fcn.004d3100
push 8
push 0x54c708
lea ecx, [esp + 0xa4]
call fcn.004f58e0
lea eax, [esp + 0x9c]
mov ecx, edi
push eax
mov byte [esp + 0x2c0], 0x30
call fcn.004d3100
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push esi
call fcn.004f5870
lea ecx, [esp + 0x40]
lea edx, [esp + 0x20]
push ecx
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push edx
mov byte [esp + 0x2d0], 0x31
call fcn.004f5850
mov ecx, edi
mov byte [esp + 0x2cc], 0x30
call fcn.0049d480
test al, al
je 0x495ab9
lea ecx, [esp + 0x38]
call fcn.004f5d00
cmp ax, 6
jl 0x495ab9
push 3
lea ecx, [esp + 0x3c]
call fcn.004f5b60
cmp al, 0x70
jne 0x495ab9
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x38]
push eax
call fcn.004f5c20
test al, al
je 0x495a55
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 + 0x2cc], 0x33
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x54c73c
jmp 0x495ae5
lea ecx, [esp + 0x9c]
push ecx
lea ecx, [esp + 0x3c]
call fcn.004f5c20
push esi
push 1
push ecx
test al, al
mov ecx, esp
je 0x495a98
mov dword [esp + 0x1c], esp
push 6
push 0x548208
call fcn.004f58e0
push ecx
mov byte [esp + 0x2cc], 0x34
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x54c700
jmp 0x495ae5
mov dword [esp + 0x1c], esp
push 6
push 0x548208
call fcn.004f58e0
push ecx
mov byte [esp + 0x2cc], 0x35
mov ecx, esp
mov dword [esp + 0x24], esp
jmp 0x495ade
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 + 0x2cc], 0x32
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x54c734
call fcn.004f58e0
mov ecx, 0x5540a8
mov byte [esp + 0x2cc], 0x30
call fcn.004f91a0
lea ecx, [esp + 0x9c]
mov byte [esp + 0x2bc], 0x25
call fcn.004f5980
mov eax, dword [esp + 0xe0]
cmp eax, esi
je 0x495743
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x49573a
cmp al, 0xff
je 0x49573a
dec al
mov byte [ecx], al
jmp 0x495743
mov dl, byte [esp + 0x34]
lea ecx, [esp + 0x24]
inc dl
push edx
push 5
call fcn.004f5c80
lea ecx, [esp + 0xb0]
call fcn.004f8480
mov al, byte [esp + 0x40]
sub esp, 0x10
mov ebp, esp
mov edi, 0x54832c
or ecx, 0xffffffff
mov dword [esp + 0x20], esp
mov byte [ebp], al
xor eax, eax
mov dword [ebp + 4], esi
mov dword [ebp + 8], esi
mov dword [ebp + 0xc], esi
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov byte [esp + 0x2d0], 0x36
mov ebx, ecx
mov ecx, ebp
push ebx
call fcn.004016f0
test al, al
je 0x495bbe
mov edi, dword [ebp + 4]
mov ecx, ebx
mov edx, ecx
mov esi, 0x54832c
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, ebp
call fcn.004016d0
xor esi, esi
sub esp, 0x10
lea eax, [esp + 0xc7]
mov ecx, esp
mov dword [esp + 0x34], esp
push eax
push 0x548328
mov byte [esp + 0x2e4], 0x37
call fcn.00401030
sub esp, 0x10
lea edx, [esp + 0xdd]
mov ecx, esp
mov dword [esp + 0x94], esp
push edx
push 0x548324
mov byte [esp + 0x2f4], 0x38
call fcn.00401030
sub esp, 0x10
lea eax, [esp + 0x83]
mov ecx, esp
mov dword [esp + 0xa8], esp
push eax
push 0x554048
mov byte [esp + 0x304], 0x39
call fcn.00401030
push ecx
lea edx, [esp + 0x68]
mov ecx, esp
mov dword [esp + 0x6c], esp
push edx
mov byte [esp + 0x304], 0x3a
call fcn.004f5850
push ecx
mov byte [esp + 0x304], 0x3b
mov ecx, esp
mov dword [esp + 0x68], esp
push 6
push 0x54c6f8
call fcn.004f58e0
lea eax, [esp + 0x258]
mov ecx, 0x5540a8
push eax
mov byte [esp + 0x308], 0x36
call fcn.004f9710
mov edx, dword [0x530168]
mov cx, word [eax]
push edx
add eax, 4
mov word [esp + 0xb4], cx
push esi
push eax
lea ecx, [esp + 0xc0]
mov byte [esp + 0x2c8], 0x3c
call fcn.004011e0
mov eax, dword [esp + 0x218]
mov byte [esp + 0x2bc], 0x36
cmp eax, esi
je 0x495cd6
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x495ccd
cmp al, 0xff
je 0x495ccd
dec al
mov byte [ecx], al
jmp 0x495cd6
push ecx
call fcn.00514140
add esp, 4
lea ecx, [esp + 0xb0]
mov dword [esp + 0x218], esi
mov dword [esp + 0x21c], esi
mov dword [esp + 0x220], esi
call fcn.004f86d0
cmp ax, 2
jne 0x495d43
mov eax, dword [esp + 0xb8]
cmp eax, esi
je 0x495d25
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x495d1c
cmp al, 0xff
je 0x495d1c
dec al
mov byte [ecx], al
jmp 0x495d25
push ecx
call fcn.00514140
add esp, 4
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0xb8], esi
mov dword [esp + 0xbc], esi
mov dword [esp + 0xc0], esi
jmp case.default.0x4949e2
lea eax, [esp + 0x13c]
lea ecx, [esp + 0xb0]
push eax
call fcn.004f86e0
mov ecx, dword [eax + 8]
mov byte [esp + 0x2bc], 0x3d
cmp ecx, 3
ja 0x495dc4
lea ecx, [esp + 0x1ac]
push ecx
lea ecx, [esp + 0xb4]
call fcn.004f86e0
mov edx, dword [eax + 8]
mov eax, dword [esp + 0x1b0]
cmp edx, esi
sete bl
cmp eax, esi
je 0x495dab
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x495da2
cmp al, 0xff
je 0x495da2
dec al
mov byte [ecx], al
jmp 0x495dab
push ecx
call fcn.00514140
add esp, 4
test bl, bl
mov dword [esp + 0x1b0], esi
mov dword [esp + 0x1b4], esi
mov dword [esp + 0x1b8], esi
je 0x495dc6
mov bl, 1
mov eax, dword [esp + 0x140]
mov byte [esp + 0x2bc], 0x36
cmp eax, esi
je 0x495df6
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x495ded
cmp al, 0xff
je 0x495ded
dec al
mov byte [ecx], al
jmp 0x495df6
push ecx
call fcn.00514140
add esp, 4
test bl, bl
mov dword [esp + 0x140], esi
mov dword [esp + 0x144], esi
mov dword [esp + 0x148], esi
push esi
je 0x495e40
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push 6
push 0x548208
call fcn.004f58e0
push ecx
mov byte [esp + 0x2cc], 0x3e
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x54c71c
jmp 0x495fe1
push esi
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push 6
push 0x548208
call fcn.004f58e0
push ecx
mov byte [esp + 0x2cc], 0x3f
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x548aac
call fcn.004f58e0
mov ecx, 0x5540a8
mov byte [esp + 0x2cc], 0x36
call fcn.004f91a0
movsx edx, word [esp + 0x34]
lea ecx, [esp + 0x18]
mov al, byte [esp + edx + 0x48]
push eax
push 4
call fcn.004f5c80
lea ecx, [esp + 0x1dc]
push ecx
lea ecx, [esp + 0xb4]
call fcn.004f86e0
mov eax, dword [eax + 4]
mov byte [esp + 0x2bc], 0x40
cmp eax, esi
jne 0x495ebe
mov eax, 0x530164
push eax
call fcn.00514a57
add esp, 4
lea ecx, [esp + 0x18]
push eax
push 6
call fcn.004f5c80
mov eax, dword [esp + 0x1e0]
mov byte [esp + 0x2bc], 0x36
cmp eax, esi
je 0x495f03
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x495efa
cmp al, 0xff
je 0x495efa
dec al
mov byte [ecx], al
jmp 0x495f03
push ecx
call fcn.00514140
add esp, 4
movsx edx, word [esp + 0x34]
lea ecx, [esp + 0x1c]
mov dword [esp + 0x1e0], esi
mov al, byte [esp + edx + 0x48]
mov dword [esp + 0x1e4], esi
push eax
push 4
mov dword [esp + 0x1f0], esi
call fcn.004f5c80
mov edi, dword [esp + 0x2c]
lea ecx, [esp + 0x18]
push ecx
mov ecx, edi
call fcn.004d3100
lea edx, [esp + 0x1c]
mov ecx, edi
push edx
call fcn.004d3100
push 1
push ecx
lea eax, [esp + 0x24]
mov ecx, esp
mov dword [esp + 0x18], esp
push eax
call fcn.004f5850
lea ecx, [esp + 0x40]
lea edx, [esp + 0x20]
push ecx
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push edx
mov byte [esp + 0x2d0], 0x41
call fcn.004f5850
mov ecx, edi
mov byte [esp + 0x2cc], 0x36
call fcn.0049d480
push esi
push 1
push ecx
test al, al
mov ecx, esp
jne 0x495fbb
mov dword [esp + 0x1c], esp
push 6
push 0x548208
call fcn.004f58e0
push ecx
mov byte [esp + 0x2cc], 0x42
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x54c734
jmp 0x495fe1
mov dword [esp + 0x1c], esp
push 6
push 0x548208
call fcn.004f58e0
push ecx
mov byte [esp + 0x2cc], 0x43
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x54c73c
call fcn.004f58e0
mov ecx, 0x5540a8
mov byte [esp + 0x2cc], 0x36
call fcn.004f91a0
mov eax, dword [esp + 0xb8]
cmp eax, esi
je 0x495d25
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x495d1c
cmp al, 0xff
je 0x495d1c
dec al
mov byte [ecx], al
jmp 0x495d25
mov al, byte [esp + 0x34]
lea ecx, [esp + 0x24]
inc al
push eax
push 5
call fcn.004f5c80
lea ecx, [esp + 0x6c]
call fcn.004f8480
mov cl, byte [esp + 0x43]
sub esp, 0x10
mov ebp, esp
mov edi, 0x54c6f4
xor eax, eax
mov dword [esp + 0x20], esp
mov byte [ebp], cl
or ecx, 0xffffffff
mov dword [ebp + 4], esi
mov dword [ebp + 8], esi
mov dword [ebp + 0xc], esi
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov byte [esp + 0x2d0], 0x44
mov ebx, ecx
mov ecx, ebp
push ebx
call fcn.004016f0
test al, al
je 0x4960a7
mov edi, dword [ebp + 4]
mov ecx, ebx
mov edx, ecx
mov esi, 0x54c6f4
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 [ebp + 8], ebx
mov ebp, dword [ebp + 4]
add ebp, ebx
xor esi, esi
mov byte [ebp], 0
sub esp, 0x10
lea eax, [esp + 0xca]
mov ecx, esp
mov dword [esp + 0x34], esp
push eax
push 0x54c6f0
mov byte [esp + 0x2e4], 0x45
call fcn.00401030
sub esp, 0x10
lea edx, [esp + 0xdf]
mov ecx, esp
mov dword [esp + 0x94], esp
push edx
push 0x548324
mov byte [esp + 0x2f4], 0x46
call fcn.00401030
sub esp, 0x10
lea eax, [esp + 0x81]
mov ecx, esp
mov dword [esp + 0xa8], esp
push eax
push 0x554048
mov byte [esp + 0x304], 0x47
call fcn.00401030
push ecx
lea edx, [esp + 0x68]
mov ecx, esp
mov dword [esp + 0x6c], esp
push edx
mov byte [esp + 0x304], 0x48
call fcn.004f5850
push ecx
mov byte [esp + 0x304], 0x49
mov ecx, esp
mov dword [esp + 0x68], esp
push 6
push 0x54c6e8
call fcn.004f58e0
lea eax, [esp + 0x26c]
mov ecx, 0x5540a8
push eax
mov byte [esp + 0x308], 0x44
call fcn.004f9710
mov cx, word [eax]
lea edi, [eax + 4]
mov word [esp + 0x6c], cx
mov ecx, dword [0x530168]
mov eax, dword [edi + 8]
mov byte [esp + 0x2bc], 0x4a
mov ebx, eax
cmp ecx, ebx
jae 0x496188
mov ebx, ecx
lea edx, [esp + 0x70]
cmp edx, edi
jne 0x4961ab
push ecx
push ebx
lea ecx, [esp + 0x78]
call fcn.004015b0
push esi
push esi
lea ecx, [esp + 0x78]
call fcn.004015b0
jmp 0x496236
cmp ebx, esi
jbe 0x4961f8
cmp ebx, eax
jne 0x4961f8
mov eax, dword [edi + 4]
cmp eax, esi
jne 0x4961bf
mov eax, 0x530164
cmp byte [eax - 1], 0xfe
jae 0x4961f8
push 1
lea ecx, [esp + 0x74]
call fcn.004013e0
mov eax, dword [edi + 4]
cmp eax, esi
jne 0x4961dc
mov eax, 0x530164
mov dword [esp + 0x74], eax
mov ecx, dword [edi + 8]
mov dword [esp + 0x78], ecx
mov edi, dword [edi + 0xc]
mov dword [esp + 0x7c], edi
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x496236
push 1
push ebx
lea ecx, [esp + 0x78]
call fcn.004016f0
test al, al
je 0x496236
mov edi, dword [edi + 4]
cmp edi, esi
mov esi, 0x530164
je 0x496216
mov esi, edi
mov edi, dword [esp + 0x74]
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 + 0x74]
call fcn.004016d0
xor esi, esi
mov eax, dword [esp + 0x22c]
mov byte [esp + 0x2bc], 0x44
cmp eax, esi
je 0x496266
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x49625d
cmp al, 0xff
je 0x49625d
dec al
mov byte [ecx], al
jmp 0x496266
push ecx
call fcn.00514140
add esp, 4
lea ecx, [esp + 0x6c]
mov dword [esp + 0x22c], esi
mov dword [esp + 0x230], esi
mov dword [esp + 0x234], esi
call fcn.004f86d0
cmp ax, 2
jne 0x4962c4
mov eax, dword [esp + 0x74]
cmp eax, esi
je 0x4962af
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x4962a6
cmp al, 0xff
je 0x4962a6
dec al
mov byte [ecx], al
jmp 0x4962af
push ecx
call fcn.00514140
add esp, 4
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x74], esi
mov dword [esp + 0x78], esi
mov dword [esp + 0x7c], esi
jmp case.default.0x4949e2
lea ecx, [esp + 0x1bc]
push ecx
lea ecx, [esp + 0x70]
call fcn.004f86e0
mov ecx, dword [eax + 8]
mov byte [esp + 0x2bc], 0x4b
cmp ecx, 3
ja 0x49633f
lea edx, [esp + 0x15c]
lea ecx, [esp + 0x6c]
push edx
call fcn.004f86e0
mov edx, dword [eax + 8]
mov eax, dword [esp + 0x160]
cmp edx, esi
sete bl
cmp eax, esi
je 0x496326
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x49631d
cmp al, 0xff
je 0x49631d
dec al
mov byte [ecx], al
jmp 0x496326
push ecx
call fcn.00514140
add esp, 4
test bl, bl
mov dword [esp + 0x160], esi
mov dword [esp + 0x164], esi
mov dword [esp + 0x168], esi
je 0x496341
mov bl, 1
mov eax, dword [esp + 0x1c0]
mov byte [esp + 0x2bc], 0x44
cmp eax, esi
je 0x496371
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x496368
cmp al, 0xff
je 0x496368
dec al
mov byte [ecx], al
jmp 0x496371
push ecx
call fcn.00514140
add esp, 4
test bl, bl
mov dword [esp + 0x1c0], esi
mov dword [esp + 0x1c4], esi
mov dword [esp + 0x1c8], esi
push esi
je 0x4963bb
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push 6
push 0x548208
call fcn.004f58e0
push ecx
mov byte [esp + 0x2cc], 0x4c
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x54c71c
jmp 0x496559
push esi
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push 6
push 0x548208
call fcn.004f58e0
push ecx
mov byte [esp + 0x2cc], 0x4d
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x548aac
call fcn.004f58e0
mov ecx, 0x5540a8
mov byte [esp + 0x2cc], 0x44
call fcn.004f91a0
movsx eax, word [esp + 0x34]
mov cl, byte [esp + eax + 0x48]
push ecx
push 4
lea ecx, [esp + 0x20]
call fcn.004f5c80
lea edx, [esp + 0x17c]
lea ecx, [esp + 0x6c]
push edx
call fcn.004f86e0
mov eax, dword [eax + 4]
mov byte [esp + 0x2bc], 0x4e
cmp eax, esi
jne 0x496436
mov eax, 0x530164
push eax
call fcn.00514a57
add esp, 4
lea ecx, [esp + 0x18]
push eax
push 6
call fcn.004f5c80
mov eax, dword [esp + 0x180]
mov byte [esp + 0x2bc], 0x44
cmp eax, esi
je 0x49647b
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x496472
cmp al, 0xff
je 0x496472
dec al
mov byte [ecx], al
jmp 0x49647b
push ecx
call fcn.00514140
add esp, 4
movsx eax, word [esp + 0x34]
mov dword [esp + 0x180], esi
mov dword [esp + 0x184], esi
mov cl, byte [esp + eax + 0x48]
mov dword [esp + 0x188], esi
push ecx
push 4
lea ecx, [esp + 0x24]
call fcn.004f5c80
mov edi, dword [esp + 0x2c]
lea edx, [esp + 0x18]
push edx
mov ecx, edi
call fcn.004d3100
lea eax, [esp + 0x1c]
mov ecx, edi
push eax
call fcn.004d3100
push 1
push ecx
lea edx, [esp + 0x24]
mov ecx, esp
mov dword [esp + 0x18], esp
push edx
call fcn.004f5850
lea eax, [esp + 0x40]
lea edx, [esp + 0x20]
push eax
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push edx
mov byte [esp + 0x2d0], 0x4f
call fcn.004f5850
mov ecx, edi
mov byte [esp + 0x2cc], 0x44
call fcn.0049d480
push esi
push 1
push ecx
test al, al
mov ecx, esp
jne 0x496533
mov dword [esp + 0x1c], esp
push 6
push 0x548208
call fcn.004f58e0
push ecx
mov byte [esp + 0x2cc], 0x50
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x54c734
jmp 0x496559
mov dword [esp + 0x1c], esp
push 6
push 0x548208
call fcn.004f58e0
push ecx
mov byte [esp + 0x2cc], 0x51
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x54c73c
call fcn.004f58e0
mov ecx, 0x5540a8
mov byte [esp + 0x2cc], 0x44
call fcn.004f91a0
mov eax, dword [esp + 0x74]
cmp eax, esi
je 0x4962af
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x4962a6
cmp al, 0xff
je 0x4962a6
dec al
mov byte [ecx], al
jmp 0x4962af
mov al, byte [esp + 0x34]
lea ecx, [esp + 0x24]
inc al
push eax
push 5
call fcn.004f5c80
lea ecx, [esp + 0x88]
call fcn.004f8480
mov cl, byte [esp + 0x41]
sub esp, 0x10
mov ebp, esp
mov edi, 0x54c6e4
xor eax, eax
mov dword [esp + 0x20], esp
mov byte [ebp], cl
or ecx, 0xffffffff
mov dword [ebp + 4], esi
mov dword [ebp + 8], esi
mov dword [ebp + 0xc], esi
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov byte [esp + 0x2d0], 0x52
mov ebx, ecx
mov ecx, ebp
push ebx
call fcn.004016f0
test al, al
je 0x49661f
mov edi, dword [ebp + 4]
mov ecx, ebx
mov edx, ecx
mov esi, 0x54c6e4
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 [ebp + 8], ebx
mov ebp, dword [ebp + 4]
add ebp, ebx
xor esi, esi
mov byte [ebp], 0
sub esp, 0x10
lea eax, [esp + 0xcc]
mov ecx, esp
mov dword [esp + 0x34], esp
push eax
push 0x548ec4
mov byte [esp + 0x2e4], 0x53
call fcn.00401030
sub esp, 0x10
lea edx, [esp + 0xde]
mov ecx, esp
mov dword [esp + 0x94], esp
push edx
push 0x548324
mov byte [esp + 0x2f4], 0x54
call fcn.00401030
sub esp, 0x10
lea eax, [esp + 0xe5]
mov ecx, esp
mov dword [esp + 0xa8], esp
push eax
push 0x554048
mov byte [esp + 0x304], 0x55
call fcn.00401030
push ecx
lea edx, [esp + 0x68]
mov ecx, esp
mov dword [esp + 0x6c], esp
push edx
mov byte [esp + 0x304], 0x56
call fcn.004f5850
push ecx
mov byte [esp + 0x304], 0x57
mov ecx, esp
mov dword [esp + 0x68], esp
push 6
push 0x54c6dc
call fcn.004f58e0
lea eax, [esp + 0x294]
mov ecx, 0x5540a8
push eax
mov byte [esp + 0x308], 0x52
call fcn.004f9710
mov cx, word [eax]
lea edi, [eax + 4]
mov word [esp + 0x88], cx
mov ecx, dword [0x530168]
mov eax, dword [edi + 8]
mov byte [esp + 0x2bc], 0x58
mov ebx, eax
cmp ecx, ebx
jae 0x496703
mov ebx, ecx
lea edx, [esp + 0x8c]
cmp edx, edi
jne 0x49672f
push ecx
push ebx
lea ecx, [esp + 0x94]
call fcn.004015b0
push esi
push esi
lea ecx, [esp + 0x94]
call fcn.004015b0
jmp 0x4967d4
cmp ebx, esi
jbe 0x496788
cmp ebx, eax
jne 0x496788
mov eax, dword [edi + 4]
cmp eax, esi
jne 0x496743
mov eax, 0x530164
cmp byte [eax - 1], 0xfe
jae 0x496788
push 1
lea ecx, [esp + 0x90]
call fcn.004013e0
mov eax, dword [edi + 4]
cmp eax, esi
jne 0x496763
mov eax, 0x530164
mov dword [esp + 0x90], eax
mov ecx, dword [edi + 8]
mov dword [esp + 0x94], ecx
mov edi, dword [edi + 0xc]
mov dword [esp + 0x98], edi
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x4967d4
push 1
push ebx
lea ecx, [esp + 0x94]
call fcn.004016f0
test al, al
je 0x4967d4
mov edi, dword [edi + 4]
cmp edi, esi
mov esi, 0x530164
je 0x4967a9
mov esi, edi
mov edi, dword [esp + 0x90]
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 + 0x90]
mov dword [esp + 0x94], ebx
xor esi, esi
mov byte [ebx + ecx], 0
mov eax, dword [esp + 0x254]
mov byte [esp + 0x2bc], 0x52
cmp eax, esi
je 0x496804
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x4967fb
cmp al, 0xff
je 0x4967fb
dec al
mov byte [ecx], al
jmp 0x496804
push ecx
call fcn.00514140
add esp, 4
lea ecx, [esp + 0x88]
mov dword [esp + 0x254], esi
mov dword [esp + 0x258], esi
mov dword [esp + 0x25c], esi
call fcn.004f86d0
cmp ax, 2
jne 0x496871
mov eax, dword [esp + 0x90]
cmp eax, esi
je 0x496853
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x49684a
cmp al, 0xff
je 0x49684a
dec al
mov byte [ecx], al
jmp 0x496853
push ecx
call fcn.00514140
add esp, 4
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x90], esi
mov dword [esp + 0x94], esi
mov dword [esp + 0x98], esi
jmp case.default.0x4949e2
lea edx, [esp + 0x11c]
lea ecx, [esp + 0x88]
push edx
call fcn.004f86e0
mov ecx, dword [eax + 8]
mov byte [esp + 0x2bc], 0x59
cmp ecx, 2
ja 0x4968f2
lea eax, [esp + 0x1cc]
lea ecx, [esp + 0x88]
push eax
call fcn.004f86e0
mov edx, dword [eax + 8]
mov eax, dword [esp + 0x1d0]
cmp edx, esi
sete bl
cmp eax, esi
je 0x4968d9
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x4968d0
cmp al, 0xff
je 0x4968d0
dec al
mov byte [ecx], al
jmp 0x4968d9
push ecx
call fcn.00514140
add esp, 4
test bl, bl
mov dword [esp + 0x1d0], esi
mov dword [esp + 0x1d4], esi
mov dword [esp + 0x1d8], esi
je 0x4968f4
mov bl, 1
mov edx, dword [esp + 0x120]
mov byte [esp + 0x2bc], 0x52
cmp edx, esi
je 0x49692f
mov al, byte [edx - 1]
lea ecx, [edx - 1]
test al, al
je 0x496926
cmp al, 0xff
je 0x496926
push edx
lea ecx, [esp + 0x120]
call fcn.0040b070
dec byte [eax]
jmp 0x49692f
push ecx
call fcn.00514140
add esp, 4
test bl, bl
mov dword [esp + 0x120], esi
mov dword [esp + 0x124], esi
mov dword [esp + 0x128], esi
push esi
je 0x496979
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push 6
push 0x548208
call fcn.004f58e0
push ecx
mov byte [esp + 0x2cc], 0x5a
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x54c71c
jmp 0x496ae4
push esi
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push 6
push 0x548208
call fcn.004f58e0
push ecx
mov byte [esp + 0x2cc], 0x5b
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x548aac
call fcn.004f58e0
mov ecx, 0x5540a8
mov byte [esp + 0x2cc], 0x52
call fcn.004f91a0
movsx ecx, word [esp + 0x34]
mov dl, byte [esp + ecx + 0x48]
lea ecx, [esp + 0x18]
push edx
push 4
call fcn.004f5c80
lea eax, [esp + 0x260]
lea ecx, [esp + 0x88]
push eax
call fcn.004f86e0
mov ecx, eax
mov byte [esp + 0x2bc], 0x5c
call fcn.0040b060
push eax
call fcn.00514a57
add esp, 4
lea ecx, [esp + 0x18]
push eax
push 6
call fcn.004f5c80
lea ecx, [esp + 0x260]
mov byte [esp + 0x2bc], 0x52
call fcn.004010f0
movsx ecx, word [esp + 0x34]
mov dl, byte [esp + ecx + 0x48]
lea ecx, [esp + 0x1c]
push edx
push 4
call fcn.004f5c80
mov edi, dword [esp + 0x2c]
lea eax, [esp + 0x18]
push eax
mov ecx, edi
call fcn.004d3100
lea ecx, [esp + 0x1c]
push ecx
mov ecx, edi
call fcn.004d3100
push 1
push ecx
lea edx, [esp + 0x24]
mov ecx, esp
mov dword [esp + 0x18], esp
push edx
call fcn.004f5850
lea eax, [esp + 0x40]
lea edx, [esp + 0x20]
push eax
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push edx
mov byte [esp + 0x2d0], 0x5d
call fcn.004f5850
mov ecx, edi
mov byte [esp + 0x2cc], 0x52
call fcn.0049d480
push esi
push 1
test al, al
push ecx
mov ecx, esp
jne 0x496abe
mov dword [esp + 0x1c], esp
push 6
push 0x548208
call fcn.004f58e0
push ecx
mov byte [esp + 0x2cc], 0x5e
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x54c734
jmp 0x496ae4
mov dword [esp + 0x1c], esp
push 6
push 0x548208
call fcn.004f58e0
push ecx
mov byte [esp + 0x2cc], 0x5f
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x54c73c
call fcn.004f58e0
mov ecx, 0x5540a8
mov byte [esp + 0x2cc], 0x52
call fcn.004f91a0
lea ecx, [esp + 0x88]
call fcn.004335b0
mov ebp, dword [esp + 0x2c]
jmp case.default.0x4949e2
mov al, byte [esp + 0x34]
lea ecx, [esp + 0x24]
inc al
push eax
push 5
call fcn.004f5c80
lea ecx, [esp + 0x108]
call fcn.004f8480
sub esp, 0x10
lea edx, [esp + 0xb4]
mov ecx, esp
mov dword [esp + 0x20], esp
push edx
push 0x54c6e4
mov byte [esp + 0x2d4], 0x60
call fcn.00401030
sub esp, 0x10
lea eax, [esp + 0xc6]
mov ecx, esp
mov dword [esp + 0x34], esp
push eax
push 0x548ec4
mov byte [esp + 0x2e4], 0x61
call fcn.00401030
sub esp, 0x10
lea edx, [esp + 0xd8]
mov ecx, esp
mov dword [esp + 0x94], esp
push edx
push 0x548324
mov byte [esp + 0x2f4], 0x62
call fcn.00401030
sub esp, 0x10
lea eax, [esp + 0xe9]
mov ecx, esp
mov dword [esp + 0xa8], esp
push eax
push 0x554048
mov byte [esp + 0x304], 0x63
call fcn.00401030
push ecx
lea edx, [esp + 0x68]
mov ecx, esp
mov dword [esp + 0x6c], esp
push edx
mov byte [esp + 0x304], 0x64
call fcn.004f5850
push ecx
mov byte [esp + 0x304], 0x65
mov ecx, esp
mov dword [esp + 0x68], esp
push 6
push 0x54c6dc
call fcn.004f58e0
lea eax, [esp + 0x2e8]
mov ecx, 0x5540a8
push eax
mov byte [esp + 0x308], 0x60
call fcn.004f9710
push eax
lea ecx, [esp + 0x10c]
mov byte [esp + 0x2c0], 0x66
call fcn.0041d4d0
lea ecx, [esp + 0x2a0]
mov byte [esp + 0x2bc], 0x60
call fcn.004335b0
lea ecx, [esp + 0x108]
call fcn.004f86d0
cmp ax, 2
je 0x496e7e
lea ecx, [esp + 0x280]
push ecx
lea ecx, [esp + 0x10c]
call fcn.004f86e0
mov ecx, eax
mov byte [esp + 0x2bc], 0x67
call fcn.0041fe60
cmp eax, 2
ja 0x496cb5
lea edx, [esp + 0x270]
lea ecx, [esp + 0x108]
push edx
call fcn.004f86e0
mov ecx, eax
mov byte [esp + 0x2bc], 0x68
call fcn.0041fe60
test eax, eax
lea ecx, [esp + 0x270]
mov byte [esp + 0x2bc], 0x67
sete bl
call fcn.004010f0
test bl, bl
je 0x496cb7
mov bl, 1
lea ecx, [esp + 0x280]
mov byte [esp + 0x2bc], 0x60
call fcn.004010f0
test bl, bl
push esi
je 0x496d00
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push 6
push 0x548208
call fcn.004f58e0
push ecx
mov byte [esp + 0x2cc], 0x69
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x54c71c
jmp 0x496e67
push esi
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push 6
push 0x548208
call fcn.004f58e0
push ecx
mov byte [esp + 0x2cc], 0x6a
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x548aac
call fcn.004f58e0
mov ecx, 0x5540a8
mov byte [esp + 0x2cc], 0x60
call fcn.004f91a0
movsx eax, word [esp + 0x34]
mov cl, byte [esp + eax + 0x48]
push ecx
push 4
lea ecx, [esp + 0x20]
call fcn.004f5c80
lea edx, [esp + 0x290]
lea ecx, [esp + 0x108]
push edx
call fcn.004f86e0
mov ecx, eax
mov byte [esp + 0x2bc], 0x6b
call fcn.0040b060
push eax
call fcn.00514a57
add esp, 4
lea ecx, [esp + 0x18]
push eax
push 6
call fcn.004f5c80
lea ecx, [esp + 0x290]
mov byte [esp + 0x2bc], 0x60
call fcn.004010f0
movsx eax, word [esp + 0x34]
mov cl, byte [esp + eax + 0x48]
push ecx
push 4
lea ecx, [esp + 0x24]
call fcn.004f5c80
lea edx, [esp + 0x18]
mov ecx, ebp
push edx
call fcn.004d3100
lea eax, [esp + 0x1c]
mov ecx, ebp
push eax
call fcn.004d3100
push 1
push ecx
lea edx, [esp + 0x24]
mov ecx, esp
mov dword [esp + 0x18], esp
push edx
call fcn.004f5850
lea eax, [esp + 0x40]
lea edx, [esp + 0x20]
push eax
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push edx
mov byte [esp + 0x2d0], 0x6c
call fcn.004f5850
mov ecx, ebp
mov byte [esp + 0x2cc], 0x60
call fcn.0049d480
push esi
push 1
push ecx
test al, al
mov ecx, esp
jne 0x496e41
mov dword [esp + 0x1c], esp
push 6
push 0x548208
call fcn.004f58e0
push ecx
mov byte [esp + 0x2cc], 0x6d
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x54c734
jmp 0x496e67
mov dword [esp + 0x1c], esp
push 6
push 0x548208
call fcn.004f58e0
push ecx
mov byte [esp + 0x2cc], 0x6e
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x54c73c
call fcn.004f58e0
mov ecx, 0x5540a8
mov byte [esp + 0x2cc], 0x60
call fcn.004f91a0
lea ecx, [esp + 0x108]
call fcn.004335b0
lea ecx, [esp + 0x1c]
mov byte [esp + 0x2bc], 3
call fcn.004f5980
lea ecx, [esp + 0x38]
mov byte [esp + 0x2bc], 2
call fcn.004f5980
lea ecx, [esp + 0x18]
mov byte [esp + 0x2bc], 1
call fcn.004f5980
lea ecx, [esp + 0x24]
mov byte [esp + 0x2bc], 0
call fcn.004f5980
or edi, 0xffffffff
jmp 0x494873
lea ecx, [esp + 0x24]
mov byte [esp + 0x2bc], 0
call fcn.004f5980
lea ecx, [esp + 0x30]
mov dword [esp + 0x2bc], edi
call fcn.00401000
mov ecx, dword [esp + 0x2b4]
pop edi
pop esi
pop ebp
xor ax, ax
mov dword fs:[0], ecx
pop ebx
add esp, 0x2b0
ret