Function at 0x516110
Capabilities:
Check os version
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x6b6cfd
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x218
push ebx
push ebp
push esi
push edi
mov esi, ecx
xor ebx, ebx
xor edi, edi
lea ecx, [esp + 0x180]
mov dword [esp + 0x230], ebx
mov dword [esp + 0x38], edi
mov byte [esp + 0x27], 1
mov byte [esp + 0x13], bl
mov dword [esp + 0x40], 1
call fcn.0060d180
lea ecx, [esp + 0x30]
mov byte [esp + 0x230], 1
call fcn.0060fe70
push 0x7e2
lea ecx, [esp + 0x1b8]
mov byte [esp + 0x234], 2
call fcn.00541680
mov al, byte [esp + 0x37]
mov dword [esp + 0x18], ebx
mov byte [esp + 0x14], al
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
mov cl, 0xae
mov al, 0x30
mov dl, 0xa0
mov byte [esp + 0x230], 4
mov byte [esp + 0x78], 8
mov byte [esp + 0x79], 7
mov byte [esp + 0x7a], cl
mov byte [esp + 0x7b], al
mov byte [esp + 0x7c], bl
mov byte [esp + 0x7d], bl
mov byte [esp + 0x7e], bl
mov byte [esp + 0x7f], bl
mov byte [esp + 0x80], bl
mov byte [esp + 0x81], bl
mov byte [esp + 0x82], 8
mov byte [esp + 0x83], 7
mov byte [esp + 0x84], cl
mov byte [esp + 0x85], al
mov byte [esp + 0x86], 6
mov byte [esp + 0x87], bl
mov byte [esp + 0x88], bl
mov byte [esp + 0x89], bl
mov byte [esp + 0x8a], bl
mov byte [esp + 0x8b], bl
mov byte [esp + 0x8c], 8
mov byte [esp + 0x8d], 7
mov byte [esp + 0x8e], cl
mov byte [esp + 0x8f], al
mov byte [esp + 0x90], 4
mov byte [esp + 0x91], bl
mov byte [esp + 0x92], bl
mov byte [esp + 0x93], bl
mov byte [esp + 0x94], bl
mov byte [esp + 0x95], bl
mov byte [esp + 0x96], 8
mov byte [esp + 0x97], 7
mov byte [esp + 0x98], cl
mov byte [esp + 0x99], al
mov byte [esp + 0x9a], 0x90
mov byte [esp + 0x9b], bl
mov byte [esp + 0x9c], bl
mov byte [esp + 0x9d], bl
mov byte [esp + 0x9e], bl
mov byte [esp + 0x9f], bl
mov byte [esp + 0xa0], 8
mov byte [esp + 0xa1], 7
mov byte [esp + 0xa2], cl
mov byte [esp + 0xa3], al
mov byte [esp + 0xa4], dl
mov byte [esp + 0xa5], bl
mov byte [esp + 0xa6], bl
mov byte [esp + 0xa7], bl
mov byte [esp + 0xa8], bl
mov byte [esp + 0xa9], bl
mov byte [esp + 0xaa], 8
mov byte [esp + 0xab], 7
mov byte [esp + 0xac], cl
mov byte [esp + 0xad], al
mov byte [esp + 0xae], 0xb0
mov byte [esp + 0xaf], bl
mov byte [esp + 0xb0], bl
mov byte [esp + 0xb1], bl
mov byte [esp + 0xb2], bl
mov byte [esp + 0xb3], bl
mov byte [esp + 0xb4], 8
mov byte [esp + 0xb5], 7
mov byte [esp + 0xb6], cl
mov byte [esp + 0xb7], al
mov byte [esp + 0xb8], dl
mov byte [esp + 0xb9], bl
mov byte [esp + 0xba], bl
mov byte [esp + 0xbb], bl
mov byte [esp + 0xbc], bl
mov byte [esp + 0xbd], bl
mov byte [esp + 0xbe], 8
mov byte [esp + 0xbf], 7
mov byte [esp + 0xc0], cl
mov byte [esp + 0xc1], al
mov byte [esp + 0xc2], bl
mov byte [esp + 0xc3], bl
mov byte [esp + 0xc4], bl
mov byte [esp + 0xc5], bl
mov byte [esp + 0xc6], bl
mov byte [esp + 0xc7], bl
mov byte [esp + 0xc8], 8
mov byte [esp + 0xc9], 7
mov byte [esp + 0xca], cl
mov byte [esp + 0xcb], al
mov byte [esp + 0xcc], bl
mov byte [esp + 0xcd], bl
mov byte [esp + 0xce], bl
mov byte [esp + 0xcf], bl
mov byte [esp + 0xd0], bl
mov byte [esp + 0xd1], bl
mov byte [esp + 0xd2], 8
mov byte [esp + 0xd3], 7
mov byte [esp + 0xd4], cl
mov byte [esp + 0xd5], al
mov byte [esp + 0xd6], 8
mov byte [esp + 0xd7], bl
mov byte [esp + 0xd8], bl
mov byte [esp + 0xd9], bl
mov byte [esp + 0xda], bl
mov byte [esp + 0xdb], bl
mov byte [esp + 0xdc], 8
mov byte [esp + 0xdd], 7
mov byte [esp + 0xde], cl
mov byte [esp + 0xdf], al
mov byte [esp + 0xe0], 8
mov byte [esp + 0xe1], bl
mov byte [esp + 0xe2], bl
mov byte [esp + 0xe3], bl
mov byte [esp + 0xe4], bl
mov byte [esp + 0xe5], bl
mov byte [esp + 0xe6], 8
mov byte [esp + 0xe7], 7
mov byte [esp + 0xe8], cl
mov byte [esp + 0xe9], al
mov byte [esp + 0xea], bl
mov byte [esp + 0xeb], bl
mov byte [esp + 0xec], al
mov byte [esp + 0xed], bl
mov byte [esp + 0xee], bl
mov byte [esp + 0xef], bl
mov byte [esp + 0xf0], 8
mov byte [esp + 0xf1], 7
mov byte [esp + 0xf2], cl
mov byte [esp + 0xf3], al
mov byte [esp + 0xf4], bl
mov byte [esp + 0xf5], bl
mov byte [esp + 0xf6], 0x20
mov byte [esp + 0xf7], bl
mov byte [esp + 0xf8], bl
mov byte [esp + 0xf9], bl
mov byte [esp + 0xfa], 8
mov byte [esp + 0xfb], 7
mov byte [esp + 0xfc], cl
mov byte [esp + 0xfd], al
mov byte [esp + 0xfe], bl
mov byte [esp + 0xff], bl
mov byte [esp + 0x100], 0x80
mov byte [esp + 0x101], bl
mov byte [esp + 0x102], bl
mov byte [esp + 0x103], bl
mov byte [esp + 0x44], 8
mov byte [esp + 0x45], 7
mov byte [esp + 0x46], cl
mov byte [esp + 0x47], al
mov byte [esp + 0x48], bl
mov byte [esp + 0x49], bl
mov byte [esp + 0x4a], bl
mov byte [esp + 0x4b], bl
mov byte [esp + 0x4c], bl
mov byte [esp + 0x4d], bl
mov byte [esp + 0x4e], 8
mov byte [esp + 0x4f], 7
mov byte [esp + 0x50], cl
mov byte [esp + 0x51], al
mov byte [esp + 0x52], 0x90
mov byte [esp + 0x53], bl
mov byte [esp + 0x54], bl
mov byte [esp + 0x55], bl
mov byte [esp + 0x56], bl
mov byte [esp + 0x57], bl
mov byte [esp + 0x58], 8
mov byte [esp + 0x59], 7
mov byte [esp + 0x5a], cl
mov byte [esp + 0x5b], al
mov byte [esp + 0x5c], dl
mov byte [esp + 0x5d], bl
mov byte [esp + 0x5e], bl
mov byte [esp + 0x5f], bl
mov byte [esp + 0x60], bl
mov byte [esp + 0x61], bl
mov byte [esp + 0x62], 8
mov byte [esp + 0x63], 7
mov byte [esp + 0x64], cl
mov byte [esp + 0x65], al
mov byte [esp + 0x66], 0xb0
mov byte [esp + 0x67], bl
mov byte [esp + 0x68], bl
mov byte [esp + 0x69], bl
mov byte [esp + 0x6a], bl
mov byte [esp + 0x6b], bl
mov byte [esp + 0x6c], 8
mov byte [esp + 0x6d], 7
mov byte [esp + 0x6e], cl
mov byte [esp + 0x6f], al
mov byte [esp + 0x70], 0xc0
mov byte [esp + 0x71], bl
mov byte [esp + 0x72], bl
mov byte [esp + 0x73], bl
mov byte [esp + 0x74], bl
mov byte [esp + 0x75], bl
mov byte [esp + 0x104], 8
mov byte [esp + 0x105], 7
mov byte [esp + 0x106], cl
mov byte [esp + 0x107], al
mov byte [esp + 0x108], bl
mov byte [esp + 0x109], bl
mov byte [esp + 0x10a], bl
mov byte [esp + 0x10b], bl
mov byte [esp + 0x10c], bl
mov byte [esp + 0x10d], bl
mov byte [esp + 0x10e], 8
mov byte [esp + 0x10f], 7
mov byte [esp + 0x110], cl
mov byte [esp + 0x111], al
mov byte [esp + 0x112], 8
mov byte [esp + 0x113], 0x14
mov byte [esp + 0x114], bl
mov byte [esp + 0x115], bl
mov byte [esp + 0x116], bl
mov byte [esp + 0x117], bl
mov byte [esp + 0x118], 8
mov byte [esp + 0x119], 7
mov byte [esp + 0x11a], cl
mov byte [esp + 0x11b], al
mov byte [esp + 0x11c], 8
mov byte [esp + 0x11d], 0x28
mov byte [esp + 0x11e], bl
mov byte [esp + 0x11f], bl
mov byte [esp + 0x120], bl
mov byte [esp + 0x121], bl
mov byte [esp + 0x122], 8
mov byte [esp + 0x123], 7
mov byte [esp + 0x124], cl
mov byte [esp + 0x125], al
mov byte [esp + 0x126], 8
mov byte [esp + 0x127], 0x3d
mov byte [esp + 0x128], bl
mov byte [esp + 0x129], bl
mov byte [esp + 0x12a], bl
mov byte [esp + 0x12b], bl
mov byte [esp + 0x12c], 8
mov byte [esp + 0x12d], 7
mov byte [esp + 0x12e], cl
mov byte [esp + 0x12f], al
mov byte [esp + 0x130], 8
mov byte [esp + 0x131], 0x51
mov byte [esp + 0x132], bl
mov byte [esp + 0x133], bl
mov byte [esp + 0x134], bl
mov byte [esp + 0x135], bl
mov byte [esp + 0x136], 8
mov byte [esp + 0x137], 7
mov byte [esp + 0x138], cl
mov byte [esp + 0x139], al
mov byte [esp + 0x13a], 8
mov byte [esp + 0x13b], 0x66
mov byte [esp + 0x13c], bl
mov byte [esp + 0x13d], bl
mov byte [esp + 0x13e], bl
mov byte [esp + 0x13f], bl
mov byte [esp + 0x140], 8
mov byte [esp + 0x141], 7
mov byte [esp + 0x142], cl
mov byte [esp + 0x143], al
mov byte [esp + 0x144], 8
mov byte [esp + 0x145], 0x7a
mov byte [esp + 0x146], bl
mov byte [esp + 0x147], bl
mov byte [esp + 0x148], bl
mov byte [esp + 0x149], bl
mov byte [esp + 0x14a], 8
mov byte [esp + 0x14b], 7
mov byte [esp + 0x14c], cl
mov byte [esp + 0x14d], al
mov byte [esp + 0x14e], 8
mov byte [esp + 0x14f], 0x8f
mov byte [esp + 0x150], bl
mov byte [esp + 0x151], bl
mov byte [esp + 0x152], bl
mov byte [esp + 0x153], bl
mov byte [esp + 0x154], 8
mov byte [esp + 0x155], 7
mov byte [esp + 0x156], cl
mov byte [esp + 0x157], al
mov byte [esp + 0x158], 8
mov byte [esp + 0x159], 0xa3
mov byte [esp + 0x15a], bl
mov byte [esp + 0x15b], bl
mov byte [esp + 0x15c], bl
mov byte [esp + 0x15d], bl
mov byte [esp + 0x15e], 8
mov byte [esp + 0x15f], 7
mov byte [esp + 0x160], cl
mov byte [esp + 0x161], al
mov byte [esp + 0x162], 8
mov byte [esp + 0x163], 0xb8
mov byte [esp + 0x164], bl
mov byte [esp + 0x165], bl
mov byte [esp + 0x166], bl
mov edx, dword [esi]
mov byte [esp + 0x16a], cl
mov ecx, esi
mov byte [esp + 0x167], bl
mov byte [esp + 0x168], 8
mov byte [esp + 0x169], 7
mov byte [esp + 0x16b], al
mov byte [esp + 0x16c], 8
mov byte [esp + 0x16d], 0xcc
mov byte [esp + 0x16e], bl
mov byte [esp + 0x16f], bl
mov byte [esp + 0x170], bl
mov byte [esp + 0x171], bl
call dword [edx + 0x18]
test ax, ax
je 0x517e45
push 5
lea ecx, [esp + 0x23c]
call fcn.00610190
push ecx
mov byte [esp + 0x2c], al
mov ecx, esp
mov dword [esp + 0x40], esp
sub al, 0x20
push 6
push 0x703764
mov byte [esp + 0x43], al
call fcn.0060ff10
lea eax, [esp + 0x1a8]
push eax
call fcn.0060f170
add esp, 8
mov esi, eax
mov eax, dword [esi + 8]
mov ecx, dword [0x6ce1fc]
mov ebp, eax
mov byte [esp + 0x230], 5
cmp ecx, ebp
jae 0x5169f0
mov ebp, ecx
lea edx, [esp + 0x14]
cmp edx, esi
jne 0x516a13
push ecx
push ebp
lea ecx, [esp + 0x1c]
call fcn.004140d0
push ebx
push ebx
lea ecx, [esp + 0x1c]
call fcn.004140d0
jmp 0x516a9f
cmp ebp, ebx
jbe 0x516a60
cmp ebp, eax
jne 0x516a60
mov eax, dword [esi + 4]
cmp eax, ebx
jne 0x516a27
mov eax, 0x6ce1f8
cmp byte [eax - 1], 0xfe
jae 0x516a60
push 1
lea ecx, [esp + 0x18]
call fcn.004138a0
mov eax, dword [esi + 4]
cmp eax, ebx
jne 0x516a44
mov eax, 0x6ce1f8
mov dword [esp + 0x18], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x1c], ecx
mov esi, dword [esi + 0xc]
mov dword [esp + 0x20], esi
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x516a9f
push 1
push ebp
lea ecx, [esp + 0x1c]
call fcn.00414210
test al, al
je 0x516a9f
mov esi, dword [esi + 4]
cmp esi, ebx
jne 0x516a7c
mov esi, 0x6ce1f8
mov edi, dword [esp + 0x18]
mov ecx, ebp
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 + 0x18]
mov edi, dword [esp + 0x38]
mov dword [esp + 0x1c], ebp
mov byte [ecx + ebp], bl
mov eax, dword [esp + 0x1a8]
mov byte [esp + 0x230], 4
cmp eax, ebx
je 0x516acf
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x516ac6
cmp al, 0xff
je 0x516ac6
dec al
mov byte [ecx], al
jmp 0x516acf
push ecx
call fcn.00697880
add esp, 4
mov edx, dword [esp + 0x28]
and edx, 0xff
lea eax, [edx - 0x20]
cmp eax, 6
ja case.default.0x516ae5
jmp dword [eax*4 + 0x518300]
mov byte [esp + 0x26], 1
push ecx
lea eax, [esp + 0x23c]
mov ecx, esp
mov dword [esp + 0x2c], esp
push eax
call fcn.0060fe80
mov ecx, dword [0x71b93c]
call fcn.006206f0
cmp di, bx
je 0x516f8f
cmp byte [0x71bb5c], bl
je 0x516b36
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push 4
push str.1234
call fcn.0060ff10
jmp 0x516b83
mov eax, dword [esp + 0x3c]
sub esp, 0x24
and eax, 0xff
mov ecx, esp
mov dword [esp + 0x4c], esp
push ebx
lea edx, [eax + eax*4]
push 1
lea eax, [esp + edx*2 + 0xa4]
push eax
push ecx
lea ecx, [esp + 0x1e8]
call fcn.005436d0
lea ecx, [esp + 0x1a4]
call fcn.0060d330
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push ecx
lea ecx, [esp + 0x188]
call fcn.0060d6b0
lea ecx, [esp + 0x34]
call fcn.006101a0
lea ecx, [esp + 0x30]
call fcn.00610330
test ax, ax
jle 0x5170a6
cmp di, 1
jne 0x516cf7
push ecx
mov byte [esp + 0x2a], bl
mov ecx, esp
mov dword [esp + 0x2c], esp
push 6
push 0x703784
call fcn.0060ff10
lea edx, [esp + 0x1dc]
push edx
call fcn.0060f170
add esp, 8
mov esi, eax
mov eax, dword [esi + 8]
mov ecx, dword [0x6ce1fc]
mov ebp, eax
mov byte [esp + 0x230], 6
cmp ecx, ebp
jae 0x516bea
mov ebp, ecx
lea edx, [esp + 0x14]
cmp edx, esi
jne 0x516c0d
push ecx
push ebp
lea ecx, [esp + 0x1c]
call fcn.004140d0
push ebx
push ebx
lea ecx, [esp + 0x1c]
call fcn.004140d0
jmp 0x516c95
cmp ebp, ebx
jbe 0x516c5a
cmp ebp, eax
jne 0x516c5a
mov eax, dword [esi + 4]
cmp eax, ebx
jne 0x516c21
mov eax, 0x6ce1f8
cmp byte [eax - 1], 0xfe
jae 0x516c5a
push 1
lea ecx, [esp + 0x18]
call fcn.004138a0
mov eax, dword [esi + 4]
cmp eax, ebx
jne 0x516c3e
mov eax, 0x6ce1f8
mov dword [esp + 0x18], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x1c], ecx
mov esi, dword [esi + 0xc]
mov dword [esp + 0x20], esi
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x516c95
push 1
push ebp
lea ecx, [esp + 0x1c]
call fcn.00414210
test al, al
je 0x516c95
mov esi, dword [esi + 4]
cmp esi, ebx
jne 0x516c76
mov esi, 0x6ce1f8
mov edi, dword [esp + 0x18]
mov ecx, ebp
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 + 0x18]
mov dword [esp + 0x1c], ebp
mov byte [ecx + ebp], bl
mov eax, dword [esp + 0x1dc]
mov byte [esp + 0x230], 4
cmp eax, ebx
je 0x516cdd
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x516cd4
cmp al, 0xff
je 0x516cd4
dec al
mov byte [ecx], al
mov dword [esp + 0x1dc], ebx
mov dword [esp + 0x1e0], ebx
mov dword [esp + 0x1e4], ebx
jmp 0x516f8d
push ecx
call fcn.00697880
add esp, 4
mov dword [esp + 0x1dc], ebx
mov dword [esp + 0x1e0], ebx
mov dword [esp + 0x1e4], ebx
jmp 0x516f8d
cmp di, 2
jne 0x516e50
push ecx
mov byte [esp + 0x2a], bl
mov ecx, esp
mov dword [esp + 0x2c], esp
push 6
push 0x70377c
call fcn.0060ff10
lea edx, [esp + 0x1ec]
push edx
call fcn.0060f170
add esp, 8
mov esi, eax
mov eax, dword [esi + 8]
mov ecx, dword [0x6ce1fc]
mov ebp, eax
mov byte [esp + 0x230], 7
cmp ecx, ebp
jae 0x516d43
mov ebp, ecx
lea edx, [esp + 0x14]
cmp edx, esi
jne 0x516d66
push ecx
push ebp
lea ecx, [esp + 0x1c]
call fcn.004140d0
push ebx
push ebx
lea ecx, [esp + 0x1c]
call fcn.004140d0
jmp 0x516dee
cmp ebp, ebx
jbe 0x516db3
cmp ebp, eax
jne 0x516db3
mov eax, dword [esi + 4]
cmp eax, ebx
jne 0x516d7a
mov eax, 0x6ce1f8
cmp byte [eax - 1], 0xfe
jae 0x516db3
push 1
lea ecx, [esp + 0x18]
call fcn.004138a0
mov eax, dword [esi + 4]
cmp eax, ebx
jne 0x516d97
mov eax, 0x6ce1f8
mov dword [esp + 0x18], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x1c], ecx
mov esi, dword [esi + 0xc]
mov dword [esp + 0x20], esi
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x516dee
push 1
push ebp
lea ecx, [esp + 0x1c]
call fcn.00414210
test al, al
je 0x516dee
mov esi, dword [esi + 4]
cmp esi, ebx
jne 0x516dcf
mov esi, 0x6ce1f8
mov edi, dword [esp + 0x18]
mov ecx, ebp
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 + 0x18]
mov dword [esp + 0x1c], ebp
mov byte [ecx + ebp], bl
mov eax, dword [esp + 0x1ec]
mov byte [esp + 0x230], 4
cmp eax, ebx
je 0x516e36
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x516e2d
cmp al, 0xff
je 0x516e2d
dec al
mov byte [ecx], al
mov dword [esp + 0x1ec], ebx
mov dword [esp + 0x1f0], ebx
mov dword [esp + 0x1f4], ebx
jmp 0x516f8d
push ecx
call fcn.00697880
add esp, 4
mov dword [esp + 0x1ec], ebx
mov dword [esp + 0x1f0], ebx
mov dword [esp + 0x1f4], ebx
jmp 0x516f8d
cmp di, 3
jne 0x516f8d
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push 6
push 0x703764
call fcn.0060ff10
lea edx, [esp + 0x1fc]
push edx
call fcn.0060f170
add esp, 8
mov esi, eax
mov eax, dword [esi + 8]
mov ecx, dword [0x6ce1fc]
mov ebp, eax
mov byte [esp + 0x230], 8
cmp ecx, ebp
jae 0x516e98
mov ebp, ecx
lea edx, [esp + 0x14]
cmp edx, esi
jne 0x516ebb
push ecx
push ebp
lea ecx, [esp + 0x1c]
call fcn.004140d0
push ebx
push ebx
lea ecx, [esp + 0x1c]
call fcn.004140d0
jmp 0x516f43
cmp ebp, ebx
jbe 0x516f08
cmp ebp, eax
jne 0x516f08
mov eax, dword [esi + 4]
cmp eax, ebx
jne 0x516ecf
mov eax, 0x6ce1f8
cmp byte [eax - 1], 0xfe
jae 0x516f08
push 1
lea ecx, [esp + 0x18]
call fcn.004138a0
mov eax, dword [esi + 4]
cmp eax, ebx
jne 0x516eec
mov eax, 0x6ce1f8
mov dword [esp + 0x18], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x1c], ecx
mov esi, dword [esi + 0xc]
mov dword [esp + 0x20], esi
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x516f43
push 1
push ebp
lea ecx, [esp + 0x1c]
call fcn.00414210
test al, al
je 0x516f43
mov esi, dword [esi + 4]
cmp esi, ebx
jne 0x516f24
mov esi, 0x6ce1f8
mov edi, dword [esp + 0x18]
mov ecx, ebp
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 + 0x18]
mov dword [esp + 0x1c], ebp
mov byte [ecx + ebp], bl
mov eax, dword [esp + 0x1fc]
mov byte [esp + 0x230], 4
cmp eax, ebx
je 0x516f73
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x516f6a
cmp al, 0xff
je 0x516f6a
dec al
mov byte [ecx], al
jmp 0x516f73
push ecx
call fcn.00697880
add esp, 4
mov dword [esp + 0x1fc], ebx
mov dword [esp + 0x200], ebx
mov dword [esp + 0x204], ebx
mov byte [esp + 0x26], 1
xor edi, edi
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push 6
push 0x703784
call fcn.0060ff10
mov ecx, dword [0x71b93c]
call fcn.00620870
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push 6
push 0x70377c
call fcn.0060ff10
mov ecx, dword [0x71b93c]
call fcn.00620870
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push 6
push 0x703774
call fcn.0060ff10
mov ecx, dword [0x71b93c]
call fcn.00620870
mov dl, byte [esp + 0x14]
sub esp, 0x10
mov ecx, esp
mov dword [esp + 0x38], esp
mov byte [ecx], dl
mov dword [ecx + 4], ebx
mov dword [ecx + 8], ebx
mov dword [ecx + 0xc], ebx
mov eax, dword [0x6ce1fc]
lea edx, [esp + 0x24]
push eax
push ebx
push edx
call fcn.004136a0
push ecx
mov byte [esp + 0x244], 0xa
mov ecx, esp
mov dword [esp + 0x54], esp
push 6
push 0x70379c
call fcn.0060ff10
mov ecx, dword [0x71b93c]
mov byte [esp + 0x244], 4
call fcn.006208f0
mov ecx, dword [0x71b93c]
call fcn.00620cd0
movsx eax, ax
sub eax, ebx
je 0x517090
dec eax
je 0x51707a
dec eax
jne 0x516af1
cmp byte [esp + 0x26], bl
jne 0x517114
mov edi, 3
mov byte [esp + 0x3c], bl
jmp 0x516af1
mov al, byte [esp + 0x37]
mov edi, 2
inc al
shl al, 1
mov byte [esp + 0x3c], al
jmp 0x516af1
mov cl, byte [esp + 0x37]
mov edi, 1
shl cl, 1
inc cl
mov byte [esp + 0x3c], cl
jmp 0x516af1
push ebx
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push 6
push 0x7037f4
call fcn.0060ff10
push ecx
mov byte [esp + 0x240], 9
mov ecx, esp
mov dword [esp + 0x4c], esp
push 6
push 0x703840
call fcn.0060ff10
mov ecx, 0x71b930
mov byte [esp + 0x240], 4
call fcn.006115e0
mov eax, dword [esp + 0x18]
cmp eax, ebx
je 0x517e6a
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x517e61
cmp al, 0xff
je 0x517e61
dec al
mov byte [ecx], al
jmp 0x517e6a
mov eax, dword [esp + 0x18]
cmp eax, ebx
je 0x517ef2
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x517ee9
cmp al, 0xff
je 0x517ee9
dec al
mov byte [ecx], al
jmp 0x517ef2
mov byte [esp + 0x26], 1
push ecx
lea edx, [esp + 0x23c]
mov ecx, esp
mov dword [esp + 0x2c], esp
push edx
call fcn.0060fe80
mov ecx, dword [0x71b93c]
call fcn.006206f0
mov esi, dword [esp + 0x38]
cmp si, bx
je 0x5171ff
cmp byte [0x71bb5c], bl
je 0x51718d
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push 4
push str.1234
call fcn.0060ff10
jmp 0x5171d7
mov eax, dword [esp + 0x3c]
sub esp, 0x24
and eax, 0xff
mov ecx, esp
mov dword [esp + 0x4c], esp
push ebx
lea edx, [eax + eax*4]
push 1
lea eax, [esp + edx*2 + 0x70]
push eax
push ecx
lea ecx, [esp + 0x1e8]
call fcn.005436d0
lea ecx, [esp + 0x1a4]
call fcn.0060d330
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push ecx
lea ecx, [esp + 0x188]
call fcn.0060d6b0
lea ecx, [esp + 0x34]
call fcn.006101a0
lea ecx, [esp + 0x30]
call fcn.00610330
test ax, ax
jle 0x517761
cmp si, 3
mov dword [esp + 0x38], ebx
sete byte [esp + 0x26]
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push 6
push 0x7051c0
call fcn.0060ff10
mov ecx, dword [0x71b93c]
call fcn.00620870
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push 6
push 0x7051c8
call fcn.0060ff10
mov ecx, dword [0x71b93c]
call fcn.00620870
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push 6
push 0x703774
call fcn.0060ff10
mov ecx, dword [0x71b93c]
call fcn.00620870
cmp byte [esp + 0x27], bl
je 0x5174d1
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push 6
push 0x703764
call fcn.0060ff10
lea edx, [esp + 0x20c]
push edx
call fcn.0060f170
add esp, 8
mov esi, eax
mov eax, dword [esi + 8]
mov edi, dword [0x6ce1fc]
mov ebp, eax
mov byte [esp + 0x230], 0xc
cmp edi, ebp
jae 0x5172a7
mov ebp, edi
lea ecx, [esp + 0x14]
cmp ecx, esi
jne 0x517319
cmp dword [esp + 0x1c], ebp
jae 0x5172ba
call fcn.00697ab7
lea ecx, [esp + 0x14]
call fcn.00414980
mov eax, dword [esp + 0x1c]
sub eax, ebp
cmp eax, edi
jae 0x5172cf
mov edi, eax
cmp edi, ebx
jbe 0x517309
mov edx, dword [esp + 0x18]
sub eax, edi
push eax
lea ecx, [edx + ebp]
lea edx, [edi + ecx]
push edx
push ecx
call fcn.00698020
mov esi, dword [esp + 0x28]
add esp, 0xc
sub esi, edi
lea ecx, [esp + 0x14]
push ebx
push esi
call fcn.00414210
test al, al
je 0x517309
push esi
lea ecx, [esp + 0x18]
call fcn.004141f0
push ebx
push ebx
lea ecx, [esp + 0x1c]
call fcn.004140d0
jmp 0x5173a0
cmp ebp, ebx
jbe 0x517366
cmp ebp, eax
jne 0x517366
mov eax, dword [esi + 4]
cmp eax, ebx
jne 0x51732d
mov eax, 0x6ce1f8
cmp byte [eax - 1], 0xfe
jae 0x517366
push 1
lea ecx, [esp + 0x18]
call fcn.004138a0
mov eax, dword [esi + 4]
cmp eax, ebx
jne 0x51734a
mov eax, 0x6ce1f8
mov dword [esp + 0x18], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x1c], ecx
mov esi, dword [esi + 0xc]
mov dword [esp + 0x20], esi
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x5173a0
push 1
push ebp
lea ecx, [esp + 0x1c]
call fcn.00414210
test al, al
je 0x5173a0
mov esi, dword [esi + 4]
cmp esi, ebx
jne 0x517382
mov esi, 0x6ce1f8
mov edi, dword [esp + 0x18]
mov ecx, ebp
mov eax, ecx
push ebp
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 + 0x18]
call fcn.004141f0
mov eax, dword [esp + 0x20c]
mov byte [esp + 0x230], 4
cmp eax, ebx
je 0x5173d0
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x5173c7
cmp al, 0xff
je 0x5173c7
dec al
mov byte [ecx], al
jmp 0x5173d0
push ecx
call fcn.00697880
add esp, 4
mov cl, byte [esp + 0x14]
sub esp, 0x10
mov ebp, esp
mov dword [esp + 0x21c], ebx
mov dword [esp + 0x220], ebx
mov dword [esp + 0x224], ebx
mov byte [ebp], cl
mov dword [ebp + 4], ebx
mov dword [ebp + 8], ebx
mov dword [ebp + 0xc], ebx
mov edx, dword [esp + 0x2c]
mov ecx, dword [0x6ce1fc]
mov eax, edx
mov dword [esp + 0x3c], esp
cmp ecx, eax
mov dword [esp + 0x38], eax
jae 0x517418
mov eax, ecx
mov dword [esp + 0x38], eax
lea esi, [esp + 0x24]
cmp ebp, esi
jne 0x517437
push ecx
push eax
mov ecx, ebp
call fcn.004140d0
push ebx
push ebx
mov ecx, ebp
call fcn.004140d0
jmp 0x5174bd
cmp eax, ebx
jbe 0x517483
cmp eax, edx
jne 0x517483
mov ecx, dword [esp + 0x28]
cmp ecx, ebx
jne 0x51744c
mov ecx, 0x6ce1f8
cmp byte [ecx - 1], 0xfe
jae 0x517483
push 1
mov ecx, ebp
call fcn.004138a0
mov eax, dword [esp + 0x28]
cmp eax, ebx
jne 0x517468
mov eax, 0x6ce1f8
mov dword [ebp + 4], eax
mov edx, dword [esp + 0x2c]
mov dword [ebp + 8], edx
mov ecx, dword [esp + 0x30]
mov dword [ebp + 0xc], ecx
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x5174bd
push 1
push eax
mov ecx, ebp
call fcn.00414210
test al, al
je 0x5174bd
mov esi, dword [esp + 0x28]
cmp esi, ebx
jne 0x51749e
mov esi, 0x6ce1f8
mov eax, dword [esp + 0x38]
mov edi, dword [ebp + 4]
mov ecx, eax
push eax
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, ebp
call fcn.004141f0
push ecx
mov byte [esp + 0x244], 0xd
mov ecx, esp
mov dword [esp + 0x3c], esp
jmp 0x517670
mov eax, dword [esp + 0x40]
lea ecx, [esp + 0x174]
push eax
push 0x70db3c
push ecx
call fcn.00698355
lea edi, [esp + 0x180]
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebp, ecx
cmp ebp, 0xfffffffd
jbe 0x517508
call fcn.0069788b
mov edi, dword [esp + 0x18]
cmp edi, ebx
je 0x517530
mov al, byte [edi - 1]
cmp al, bl
je 0x517530
cmp al, 0xff
je 0x517530
cmp ebp, ebx
jne 0x517559
dec al
push ebx
lea ecx, [esp + 0x18]
mov byte [edi - 1], al
call fcn.004138a0
jmp 0x517589
cmp ebp, ebx
jne 0x517541
push 1
lea ecx, [esp + 0x18]
call fcn.004138a0
jmp 0x517589
mov eax, dword [esp + 0x20]
cmp eax, 0x1f
ja 0x51754e
cmp eax, ebp
jae 0x517567
push 1
lea ecx, [esp + 0x18]
call fcn.004138a0
push ebp
lea ecx, [esp + 0x18]
call fcn.00414870
mov edi, dword [esp + 0x18]
mov ecx, ebp
lea esi, [esp + 0x174]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x1c], ebp
mov byte [eax + ebp], bl
mov cl, byte [esp + 0x14]
sub esp, 0x10
mov ebp, esp
mov dword [esp + 0x3c], esp
mov byte [ebp], cl
mov dword [ebp + 4], ebx
mov dword [ebp + 8], ebx
mov dword [ebp + 0xc], ebx
mov edx, dword [esp + 0x2c]
mov ecx, dword [0x6ce1fc]
mov eax, edx
cmp ecx, eax
mov dword [esp + 0x38], eax
jae 0x5175bc
mov eax, ecx
mov dword [esp + 0x38], eax
lea esi, [esp + 0x24]
cmp ebp, esi
jne 0x5175db
push ecx
push eax
mov ecx, ebp
call fcn.004140d0
push ebx
push ebx
mov ecx, ebp
call fcn.004140d0
jmp 0x517661
cmp eax, ebx
jbe 0x517627
cmp eax, edx
jne 0x517627
mov ecx, dword [esp + 0x28]
cmp ecx, ebx
jne 0x5175f0
mov ecx, 0x6ce1f8
cmp byte [ecx - 1], 0xfe
jae 0x517627
push 1
mov ecx, ebp
call fcn.004138a0
mov eax, dword [esp + 0x28]
cmp eax, ebx
jne 0x51760c
mov eax, 0x6ce1f8
mov dword [ebp + 4], eax
mov edx, dword [esp + 0x2c]
mov dword [ebp + 8], edx
mov ecx, dword [esp + 0x30]
mov dword [ebp + 0xc], ecx
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x517661
push 1
push eax
mov ecx, ebp
call fcn.00414210
test al, al
je 0x517661
mov esi, dword [esp + 0x28]
cmp esi, ebx
jne 0x517642
mov esi, 0x6ce1f8
mov eax, dword [esp + 0x38]
mov edi, dword [ebp + 4]
mov ecx, eax
push eax
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, ebp
call fcn.004141f0
push ecx
mov byte [esp + 0x244], 0xe
mov ecx, esp
mov dword [esp + 0x3c], esp
push 6
push 0x70db34
call fcn.0060ff10
mov ecx, dword [0x71b93c]
mov byte [esp + 0x244], 4
call fcn.006208f0
mov ecx, dword [0x71b93c]
call fcn.00620cd0
movsx eax, ax
sub eax, ebx
je 0x517717
dec eax
je 0x5176cd
dec eax
jne 0x517144
mov al, byte [esp + 0x26]
mov byte [esp + 0x27], 1
cmp al, bl
jne 0x517114
mov dword [esp + 0x38], 3
mov byte [esp + 0x3c], bl
jmp 0x517144
mov eax, dword [esp + 0x40]
mov byte [esp + 0x27], bl
dec eax
cmp eax, 1
mov dword [esp + 0x40], eax
jge 0x5176f1
mov dword [esp + 0x40], 1
mov byte [esp + 0x13], 1
jmp 0x517144
mov byte [esp + 0x3c], al
mov al, byte [esp + 0x13]
cmp al, bl
je 0x51770a
mov byte [esp + 0x13], bl
mov dword [esp + 0x38], ebx
jmp 0x517144
mov dword [esp + 0x38], 2
jmp 0x517144
mov eax, dword [esp + 0x40]
mov byte [esp + 0x27], bl
inc eax
cmp eax, 4
mov dword [esp + 0x40], eax
jle 0x51773b
mov dword [esp + 0x40], 4
mov byte [esp + 0x13], 1
jmp 0x517144
mov byte [esp + 0x3c], al
mov al, byte [esp + 0x13]
cmp al, bl
je 0x517754
mov byte [esp + 0x13], bl
mov dword [esp + 0x38], ebx
jmp 0x517144
mov dword [esp + 0x38], 1
jmp 0x517144
push ebx
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x38], esp
push 6
push 0x7037f4
call fcn.0060ff10
push ecx
mov byte [esp + 0x240], 0xb
mov ecx, esp
mov dword [esp + 0x38], esp
push 6
push 0x703840
call fcn.0060ff10
mov ecx, 0x71b930
mov byte [esp + 0x240], 4
call fcn.006115e0
mov eax, dword [esp + 0x18]
cmp eax, ebx
je 0x517e6a
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x517e61
cmp al, 0xff
je 0x517e61
dec al
mov byte [ecx], al
jmp 0x517e6a
mov byte [esp + 0x26], 1
push ecx
lea eax, [esp + 0x23c]
mov ecx, esp
mov dword [esp + 0x30], esp
push eax
call fcn.0060fe80
mov ecx, dword [0x71b93c]
call fcn.006206f0
mov esi, dword [esp + 0x38]
cmp si, bx
je 0x517892
cmp byte [0x71bb5c], bl
je 0x51781d
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push 4
push str.1234
call fcn.0060ff10
jmp 0x51786a
mov eax, dword [esp + 0x3c]
sub esp, 0x24
and eax, 0xff
mov ecx, esp
mov dword [esp + 0x50], esp
push ebx
lea edx, [eax + eax*4]
push 1
lea eax, [esp + edx*2 + 0x130]
push eax
push ecx
lea ecx, [esp + 0x1e8]
call fcn.005436d0
lea ecx, [esp + 0x1a4]
call fcn.0060d330
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push ecx
lea ecx, [esp + 0x188]
call fcn.0060d6b0
lea ecx, [esp + 0x34]
call fcn.006101a0
lea ecx, [esp + 0x30]
call fcn.00610330
test ax, ax
jle 0x517e02
cmp si, 3
mov dword [esp + 0x38], ebx
sete byte [esp + 0x26]
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push 6
push 0x703794
call fcn.0060ff10
mov ecx, dword [0x71b93c]
call fcn.00620870
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push 6
push 0x70378c
call fcn.0060ff10
mov ecx, dword [0x71b93c]
call fcn.00620870
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push 6
push 0x703774
call fcn.0060ff10
mov ecx, dword [0x71b93c]
call fcn.00620870
cmp byte [esp + 0x27], bl
je 0x517b67
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push 6
push 0x703764
call fcn.0060ff10
lea edx, [esp + 0x1a8]
push edx
call fcn.0060f170
add esp, 8
mov esi, eax
mov eax, dword [esi + 8]
mov edi, dword [0x6ce1fc]
mov ebp, eax
mov byte [esp + 0x230], 0x10
cmp edi, ebp
jae 0x51793a
mov ebp, edi
lea ecx, [esp + 0x14]
cmp ecx, esi
jne 0x5179ac
cmp dword [esp + 0x1c], ebp
jae 0x51794d
call fcn.00697ab7
lea ecx, [esp + 0x14]
call fcn.00414980
mov eax, dword [esp + 0x1c]
sub eax, ebp
cmp eax, edi
jae 0x517962
mov edi, eax
cmp edi, ebx
jbe 0x51799c
mov edx, dword [esp + 0x18]
sub eax, edi
push eax
lea ecx, [edx + ebp]
lea edx, [edi + ecx]
push edx
push ecx
call fcn.00698020
mov esi, dword [esp + 0x28]
add esp, 0xc
sub esi, edi
lea ecx, [esp + 0x14]
push ebx
push esi
call fcn.00414210
test al, al
je 0x51799c
push esi
lea ecx, [esp + 0x18]
call fcn.004141f0
push ebx
push ebx
lea ecx, [esp + 0x1c]
call fcn.004140d0
jmp 0x517a34
cmp ebp, ebx
jbe 0x5179f9
cmp ebp, eax
jne 0x5179f9
mov eax, dword [esi + 4]
cmp eax, ebx
jne 0x5179c0
mov eax, 0x6ce1f8
cmp byte [eax - 1], 0xfe
jae 0x5179f9
push 1
lea ecx, [esp + 0x18]
call fcn.004138a0
mov eax, dword [esi + 4]
cmp eax, ebx
jne 0x5179dd
mov eax, 0x6ce1f8
mov dword [esp + 0x18], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x1c], ecx
mov esi, dword [esi + 0xc]
mov dword [esp + 0x20], esi
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x517a34
push 1
push ebp
lea ecx, [esp + 0x1c]
call fcn.00414210
test al, al
je 0x517a34
mov esi, dword [esi + 4]
cmp esi, ebx
jne 0x517a15
mov esi, 0x6ce1f8
mov edi, dword [esp + 0x18]
mov ecx, ebp
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 + 0x18]
mov dword [esp + 0x1c], ebp
mov byte [ecx + ebp], bl
mov eax, dword [esp + 0x1a8]
mov byte [esp + 0x230], 4
cmp eax, ebx
je 0x517a64
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x517a5b
cmp al, 0xff
je 0x517a5b
dec al
mov byte [ecx], al
jmp 0x517a64
push ecx
call fcn.00697880
add esp, 4
mov dl, byte [esp + 0x14]
sub esp, 0x10
mov ebp, esp
mov dword [esp + 0x1b8], ebx
mov dword [esp + 0x1bc], ebx
mov dword [esp + 0x1c0], ebx
mov byte [ebp], dl
mov dword [ebp + 4], ebx
mov dword [ebp + 8], ebx
mov dword [ebp + 0xc], ebx
mov edx, dword [esp + 0x2c]
mov ecx, dword [0x6ce1fc]
mov eax, edx
mov dword [esp + 0x3c], esp
cmp ecx, eax
mov dword [esp + 0x38], eax
jae 0x517aac
mov eax, ecx
mov dword [esp + 0x38], eax
lea esi, [esp + 0x24]
cmp ebp, esi
jne 0x517acb
push ecx
push eax
mov ecx, ebp
call fcn.004140d0
push ebx
push ebx
mov ecx, ebp
call fcn.004140d0
jmp 0x517b53
cmp eax, ebx
jbe 0x517b17
cmp eax, edx
jne 0x517b17
mov ecx, dword [esp + 0x28]
cmp ecx, ebx
jne 0x517ae0
mov ecx, 0x6ce1f8
cmp byte [ecx - 1], 0xfe
jae 0x517b17
push 1
mov ecx, ebp
call fcn.004138a0
mov eax, dword [esp + 0x28]
cmp eax, ebx
jne 0x517afc
mov eax, 0x6ce1f8
mov dword [ebp + 4], eax
mov ecx, dword [esp + 0x2c]
mov dword [ebp + 8], ecx
mov edx, dword [esp + 0x30]
mov dword [ebp + 0xc], edx
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x517b53
push 1
push eax
mov ecx, ebp
call fcn.00414210
test al, al
je 0x517b53
mov esi, dword [esp + 0x28]
cmp esi, ebx
jne 0x517b32
mov esi, 0x6ce1f8
mov eax, dword [esp + 0x38]
mov edi, dword [ebp + 4]
mov ecx, eax
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp + 4]
mov dword [ebp + 8], eax
add eax, ecx
mov byte [eax], bl
push ecx
mov byte [esp + 0x244], 0x11
mov ecx, esp
mov dword [esp + 0x3c], esp
jmp 0x517d11
fild dword [esp + 0x40]
sub esp, 8
lea eax, [esp + 0x17c]
fmul qword [0x6ce240]
fstp qword [esp]
push str._.1f_
push eax
call fcn.00698355
lea edi, [esp + 0x184]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x10
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebp, ecx
cmp ebp, 0xfffffffd
jbe 0x517ba9
call fcn.0069788b
mov edi, dword [esp + 0x18]
cmp edi, ebx
je 0x517bd1
mov al, byte [edi - 1]
cmp al, bl
je 0x517bd1
cmp al, 0xff
je 0x517bd1
cmp ebp, ebx
jne 0x517bfa
dec al
push ebx
lea ecx, [esp + 0x18]
mov byte [edi - 1], al
call fcn.004138a0
jmp 0x517c2a
cmp ebp, ebx
jne 0x517be2
push 1
lea ecx, [esp + 0x18]
call fcn.004138a0
jmp 0x517c2a
mov eax, dword [esp + 0x20]
cmp eax, 0x1f
ja 0x517bef
cmp eax, ebp
jae 0x517c08
push 1
lea ecx, [esp + 0x18]
call fcn.004138a0
push ebp
lea ecx, [esp + 0x18]
call fcn.00414870
mov edi, dword [esp + 0x18]
mov ecx, ebp
lea esi, [esp + 0x174]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x1c], ebp
mov byte [eax + ebp], bl
mov cl, byte [esp + 0x14]
sub esp, 0x10
mov ebp, esp
mov dword [esp + 0x3c], esp
mov byte [ebp], cl
mov dword [ebp + 4], ebx
mov dword [ebp + 8], ebx
mov dword [ebp + 0xc], ebx
mov edx, dword [esp + 0x2c]
mov ecx, dword [0x6ce1fc]
mov eax, edx
cmp ecx, eax
mov dword [esp + 0x38], eax
jae 0x517c5d
mov eax, ecx
mov dword [esp + 0x38], eax
lea esi, [esp + 0x24]
cmp ebp, esi
jne 0x517c7c
push ecx
push eax
mov ecx, ebp
call fcn.004140d0
push ebx
push ebx
mov ecx, ebp
call fcn.004140d0
jmp 0x517d02
cmp eax, ebx
jbe 0x517cc8
cmp eax, edx
jne 0x517cc8
mov ecx, dword [esp + 0x28]
cmp ecx, ebx
jne 0x517c91
mov ecx, 0x6ce1f8
cmp byte [ecx - 1], 0xfe
jae 0x517cc8
mov dword [ebp + 4], ebx
mov dword [ebp + 8], ebx
mov dword [ebp + 0xc], ebx
mov eax, dword [esp + 0x28]
cmp eax, ebx
jne 0x517cad
mov eax, 0x6ce1f8
mov dword [ebp + 4], eax
mov edx, dword [esp + 0x2c]
mov dword [ebp + 8], edx
mov ecx, dword [esp + 0x30]
mov dword [ebp + 0xc], ecx
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x517d02
push 1
push eax
mov ecx, ebp
call fcn.00414210
test al, al
je 0x517d02
mov esi, dword [esp + 0x28]
cmp esi, ebx
jne 0x517ce3
mov esi, 0x6ce1f8
mov eax, dword [esp + 0x38]
mov edi, dword [ebp + 4]
mov ecx, eax
push eax
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, ebp
call fcn.004141f0
push ecx
mov byte [esp + 0x244], 0x12
mov ecx, esp
mov dword [esp + 0x3c], esp
push 6
push 0x70db24
call fcn.0060ff10
mov ecx, dword [0x71b93c]
mov byte [esp + 0x244], 4
call fcn.006208f0
mov ecx, dword [0x71b93c]
call fcn.00620cd0
movsx eax, ax
sub eax, ebx
je 0x517db8
dec eax
je 0x517d6e
dec eax
jne 0x5177d4
mov al, byte [esp + 0x26]
mov byte [esp + 0x27], 1
cmp al, bl
jne 0x517ecd
mov dword [esp + 0x38], 3
mov byte [esp + 0x3c], bl
jmp 0x5177d4
mov eax, dword [esp + 0x40]
mov byte [esp + 0x27], bl
dec eax
cmp eax, 1
mov dword [esp + 0x40], eax
jge 0x517d92
mov dword [esp + 0x40], 1
mov byte [esp + 0x13], 1
jmp 0x5177d4
mov byte [esp + 0x3c], al
mov al, byte [esp + 0x13]
cmp al, bl
je 0x517dab
mov byte [esp + 0x13], bl
mov dword [esp + 0x38], ebx
jmp 0x5177d4
mov dword [esp + 0x38], 2
jmp 0x5177d4
mov eax, dword [esp + 0x40]
mov byte [esp + 0x27], bl
inc eax
cmp eax, 0xa
mov dword [esp + 0x40], eax
jle 0x517ddc
mov dword [esp + 0x40], 0xa
mov byte [esp + 0x13], 1
jmp 0x5177d4
mov byte [esp + 0x3c], al
mov al, byte [esp + 0x13]
cmp al, bl
je 0x517df5
mov byte [esp + 0x13], bl
mov dword [esp + 0x38], ebx
jmp 0x5177d4
mov dword [esp + 0x38], 1
jmp 0x5177d4
push ebx
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x38], esp
push 6
push 0x7037f4
call fcn.0060ff10
push ecx
mov byte [esp + 0x240], 0xf
mov ecx, esp
mov dword [esp + 0x38], esp
push 6
push 0x703840
call fcn.0060ff10
mov ecx, 0x71b930
mov byte [esp + 0x240], 4
call fcn.006115e0
mov eax, dword [esp + 0x18]
cmp eax, ebx
je 0x517e6a
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x517e61
cmp al, 0xff
je 0x517e61
dec al
mov byte [ecx], al
jmp 0x517e6a
push ecx
call fcn.00697880
add esp, 4
lea ecx, [esp + 0x1b4]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
mov byte [esp + 0x230], 2
call fcn.005416b0
lea ecx, [esp + 0x30]
mov byte [esp + 0x230], 1
call fcn.0060ffb0
lea ecx, [esp + 0x180]
mov byte [esp + 0x230], bl
call fcn.0060d280
lea ecx, [esp + 0x238]
mov dword [esp + 0x230], 0xffffffff
call fcn.0060ffb0
xor ax, ax
jmp 0x5182e5
mov eax, dword [esp + 0x18]
cmp eax, ebx
je 0x517ef2
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x517ee9
cmp al, 0xff
je 0x517ee9
dec al
mov byte [ecx], al
jmp 0x517ef2
push ecx
call fcn.00697880
add esp, 4
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
jmp 0x518292
push ecx
lea eax, [esp + 0x23c]
mov ecx, esp
mov dword [esp + 0x30], esp
push eax
call fcn.0060fe80
mov ecx, dword [0x71b93c]
call fcn.006206f0
cmp di, bx
je 0x51811b
cmp byte [0x71bb5c], bl
je 0x517f48
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push 4
push str.1234
call fcn.0060ff10
jmp 0x517f95
mov eax, dword [esp + 0x3c]
sub esp, 0x24
and eax, 0xff
mov ecx, esp
mov dword [esp + 0x50], esp
push ebx
lea edx, [eax + eax*4]
push 1
lea eax, [esp + edx*2 + 0xa4]
push eax
push ecx
lea ecx, [esp + 0x1e8]
call fcn.005436d0
lea ecx, [esp + 0x1a4]
call fcn.0060d330
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push ecx
lea ecx, [esp + 0x188]
call fcn.0060d6b0
lea ecx, [esp + 0x34]
call fcn.006101a0
lea ecx, [esp + 0x30]
call fcn.00610330
test ax, ax
jle 0x5181d9
cmp di, 1
jne case.default.0x516ae5
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push 6
push 0x70d99c
call fcn.0060ff10
lea edx, [esp + 0x21c]
push edx
call fcn.0060f170
add esp, 8
mov esi, eax
mov eax, dword [esi + 8]
mov edi, dword [0x6ce1fc]
mov ebp, eax
mov byte [esp + 0x230], 0x13
cmp edi, ebp
jae 0x517ff8
mov ebp, edi
lea ecx, [esp + 0x14]
cmp ecx, esi
jne 0x518068
cmp dword [esp + 0x1c], ebp
jae 0x51800b
call fcn.00697ab7
lea ecx, [esp + 0x14]
call fcn.00414980
mov eax, dword [esp + 0x1c]
sub eax, ebp
cmp eax, edi
jae 0x518020
mov edi, eax
cmp edi, ebx
jbe 0x51805a
mov edx, dword [esp + 0x18]
sub eax, edi
push eax
lea ecx, [edx + ebp]
lea edx, [edi + ecx]
push edx
push ecx
call fcn.00698020
mov esi, dword [esp + 0x28]
add esp, 0xc
sub esi, edi
lea ecx, [esp + 0x14]
push ebx
push esi
call fcn.00414210
test al, al
je 0x51805a
push esi
lea ecx, [esp + 0x18]
call fcn.004141f0
lea ecx, [esp + 0x14]
call fcn.00414980
jmp 0x518101
cmp ebp, ebx
jbe 0x5180b5
cmp ebp, eax
jne 0x5180b5
mov eax, dword [esi + 4]
cmp eax, ebx
jne 0x51807c
mov eax, 0x6ce1f8
cmp byte [eax - 1], 0xfe
jae 0x5180b5
push 1
lea ecx, [esp + 0x18]
call fcn.004138a0
mov eax, dword [esi + 4]
cmp eax, ebx
jne 0x518099
mov eax, 0x6ce1f8
mov dword [esp + 0x18], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x1c], ecx
mov esi, dword [esi + 0xc]
mov dword [esp + 0x20], esi
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x518101
push 1
push ebp
lea ecx, [esp + 0x1c]
call fcn.00414210
test al, al
je 0x518101
mov esi, dword [esi + 4]
cmp esi, ebx
jne 0x5180d1
mov esi, 0x6ce1f8
mov edi, dword [esp + 0x18]
mov ecx, ebp
mov eax, ecx
mov byte [esp + 0x27], bl
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x27]
add edx, ebp
push ecx
push edx
mov dword [esp + 0x24], ebp
call fcn.00518320
add esp, 8
lea ecx, [esp + 0x218]
mov byte [esp + 0x230], 4
call fcn.004131d0
mov dword [esp + 0x38], ebx
mov edi, ebx
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push 6
push 0x70d99c
call fcn.0060ff10
mov ecx, dword [0x71b93c]
call fcn.00620870
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push 6
push 0x703774
call fcn.0060ff10
mov ecx, dword [0x71b93c]
call fcn.00620870
sub esp, 0x10
lea eax, [esp + 0x24]
mov ecx, esp
mov dword [esp + 0x3c], esp
push eax
call fcn.00412ff0
push ecx
mov byte [esp + 0x244], 0x15
mov ecx, esp
mov dword [esp + 0x3c], esp
push 6
push 0x70379c
call fcn.0060ff10
mov ecx, dword [0x71b93c]
mov byte [esp + 0x244], 4
call fcn.006208f0
mov ecx, dword [0x71b93c]
call fcn.00620cd0
movsx eax, ax
sub eax, ebx
je 0x5181c3
dec eax
jne case.0x516ae5.38
mov byte [esp + 0x3c], bl
mov edi, 2
jmp case.0x516ae5.38
mov cl, byte [esp + 0x37]
mov edi, 1
shl cl, 1
inc cl
mov byte [esp + 0x3c], cl
jmp case.0x516ae5.38
push ebx
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x38], esp
push 6
push 0x7037f4
call fcn.0060ff10
push ecx
mov byte [esp + 0x240], 0x14
mov ecx, esp
mov dword [esp + 0x38], esp
push 6
push 0x703840
call fcn.0060ff10
mov ecx, 0x71b930
mov byte [esp + 0x240], 4
call fcn.006115e0
lea ecx, [esp + 0x14]
mov byte [esp + 0x230], 3
call fcn.004131d0
lea ecx, [esp + 0x1b4]
mov byte [esp + 0x230], 2
call fcn.005416b0
lea ecx, [esp + 0x30]
mov byte [esp + 0x230], 1
call fcn.0060ffb0
lea ecx, [esp + 0x180]
mov byte [esp + 0x230], bl
call fcn.0060d280
lea ecx, [esp + 0x238]
mov dword [esp + 0x230], 0xffffffff
call fcn.0060ffb0
xor ax, ax
jmp 0x5182e5
lea ecx, [esp + 0x14]
mov byte [esp + 0x230], 3
call fcn.004131d0
lea ecx, [esp + 0x1b4]
mov byte [esp + 0x230], 2
call fcn.005416b0
lea ecx, [esp + 0x30]
mov byte [esp + 0x230], 1
call fcn.0060ffb0
lea ecx, [esp + 0x180]
mov byte [esp + 0x230], bl
call fcn.0060d280
lea ecx, [esp + 0x238]
mov dword [esp + 0x230], 0xffffffff
call fcn.0060ffb0
mov ax, 1
mov ecx, dword [esp + 0x228]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x224
ret 4