Function at 0x593840
Capabilities:
Contain obfuscated stackstrings
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x6be3cc
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x2e4
push ebx
push ebp
push esi
push edi
mov esi, ecx
xor ebx, ebx
lea ecx, [esp + 0x38]
mov dword [esp + 0x2fc], ebx
xor ebp, ebp
call fcn.006107f0
lea ecx, [esp + 0x88]
mov byte [esp + 0x2fc], 1
call fcn.0060d180
lea ecx, [esp + 0x2c]
mov byte [esp + 0x2fc], 2
call fcn.0060fe70
push 0x6c
push 0xf1
push 0x60
lea ecx, [esp + 0x1d4]
mov byte [esp + 0x308], 3
call fcn.00548440
push 0x6c
push 0xf1
push 0x58
lea ecx, [esp + 0x1f8]
mov byte [esp + 0x308], 4
call fcn.00548440
mov al, byte [esp + 0x13]
mov dword [esp + 0x1c], ebx
mov byte [esp + 0x18], al
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
push 6
push 0x70c07c
lea ecx, [esp + 0x3c]
mov byte [esp + 0x304], 6
call fcn.0060ff10
mov al, 0x7f
mov dl, 0xfc
mov byte [esp + 0xb1], al
mov byte [esp + 0xb2], al
mov byte [esp + 0xb3], al
mov byte [esp + 0xb4], al
mov byte [esp + 0xbb], al
mov byte [esp + 0xbd], al
xor eax, eax
mov byte [esp + 0xaf], dl
mov dword [esp + 0xc3], eax
mov byte [esp + 0xb0], dl
mov byte [esp + 0xb9], dl
mov word [esp + 0xc7], ax
mov cl, 0xae
mov dl, 0x3c
mov byte [esp + 0xc9], al
mov byte [esp + 0x2fc], 7
mov byte [esp + 0xac], 8
mov byte [esp + 0xad], cl
mov byte [esp + 0xae], 0x90
mov byte [esp + 0xb5], bl
mov byte [esp + 0xb6], 8
mov byte [esp + 0xb7], cl
mov byte [esp + 0xb8], 0x90
mov byte [esp + 0xba], bl
mov byte [esp + 0xbc], bl
mov byte [esp + 0xbe], bl
mov byte [esp + 0xbf], bl
mov byte [esp + 0xc0], 2
mov byte [esp + 0xc1], dl
mov byte [esp + 0xc2], 8
mov byte [esp + 0xca], 8
mov byte [esp + 0xcb], cl
mov al, 0x80
mov byte [esp + 0xdf], dl
xor edx, edx
mov dword [esp + 0xe1], edx
mov byte [esp + 0xcc], al
mov word [esp + 0xe5], dx
mov byte [esp + 0xcd], 0x10
mov byte [esp + 0xe7], dl
mov dword [esp + 0xff], edx
mov word [esp + 0x103], dx
mov byte [esp + 0xce], bl
mov byte [esp + 0x105], dl
mov dword [esp + 0x11d], edx
mov word [esp + 0x121], dx
mov byte [esp + 0xcf], 0xff
mov byte [esp + 0xd0], bl
mov byte [esp + 0xd1], bl
mov byte [esp + 0xd2], bl
mov byte [esp + 0xd3], bl
mov byte [esp + 0xd4], 8
mov byte [esp + 0xd5], cl
mov byte [esp + 0xd6], al
mov byte [esp + 0xd7], 0x10
mov byte [esp + 0xd8], bl
mov byte [esp + 0xd9], bl
mov byte [esp + 0xda], bl
mov byte [esp + 0xdb], bl
mov byte [esp + 0xdc], bl
mov byte [esp + 0xdd], bl
mov byte [esp + 0xde], 2
mov byte [esp + 0xe0], 8
mov byte [esp + 0xe8], 8
mov byte [esp + 0xe9], cl
mov byte [esp + 0xea], al
mov byte [esp + 0xeb], 0x20
mov byte [esp + 0xec], bl
mov byte [esp + 0xed], 0xff
mov byte [esp + 0xee], bl
mov byte [esp + 0xef], bl
mov byte [esp + 0xf0], bl
mov byte [esp + 0xf1], bl
mov byte [esp + 0xf2], 8
mov byte [esp + 0xf3], cl
mov byte [esp + 0xf4], al
mov byte [esp + 0xf5], 0x20
mov byte [esp + 0xf6], bl
mov byte [esp + 0xf7], bl
mov byte [esp + 0xf8], bl
mov byte [esp + 0xf9], bl
mov byte [esp + 0xfa], bl
mov byte [esp + 0xfb], bl
mov byte [esp + 0xfc], 2
mov byte [esp + 0xfd], 0x3c
mov byte [esp + 0xfe], 8
mov byte [esp + 0x106], 8
mov byte [esp + 0x107], cl
mov byte [esp + 0x108], al
mov byte [esp + 0x109], 8
mov byte [esp + 0x10a], bl
mov byte [esp + 0x10b], 0xff
mov byte [esp + 0x10c], bl
mov byte [esp + 0x10d], bl
mov byte [esp + 0x10e], bl
mov byte [esp + 0x10f], bl
mov byte [esp + 0x110], 8
mov byte [esp + 0x111], cl
mov byte [esp + 0x112], al
mov byte [esp + 0x113], 8
mov byte [esp + 0x114], bl
mov byte [esp + 0x115], bl
mov byte [esp + 0x116], bl
mov byte [esp + 0x117], bl
mov byte [esp + 0x118], bl
mov byte [esp + 0x119], bl
mov byte [esp + 0x11a], 2
mov byte [esp + 0x11b], 0x3c
mov byte [esp + 0x11c], 8
mov byte [esp + 0x123], dl
mov byte [esp + 0x124], 8
mov byte [esp + 0x125], cl
mov byte [esp + 0x126], al
mov byte [esp + 0x127], al
mov dword [esp + 0x13b], edx
mov byte [esp + 0x130], al
mov word [esp + 0x13f], dx
mov byte [esp + 0x131], al
mov byte [esp + 0x141], dl
mov dl, 0x40
mov byte [esp + 0x145], dl
mov byte [esp + 0x14f], dl
mov byte [esp + 0x144], al
mov byte [esp + 0x14e], al
xor edx, edx
mov byte [esp + 0x162], al
mov byte [esp + 0x16c], al
xor eax, eax
mov dword [esp + 0x159], edx
mov dword [esp + 0x177], eax
mov byte [esp + 0x12f], cl
mov byte [esp + 0x143], cl
mov byte [esp + 0x14d], cl
mov byte [esp + 0x161], cl
mov byte [esp + 0x16b], cl
mov word [esp + 0x15d], dx
mov cl, 0x3c
mov word [esp + 0x17b], ax
mov byte [esp + 0x128], 0xff
mov byte [esp + 0x129], bl
mov byte [esp + 0x12a], bl
mov byte [esp + 0x12b], bl
mov byte [esp + 0x12c], bl
mov byte [esp + 0x12d], bl
mov byte [esp + 0x12e], 8
mov byte [esp + 0x132], bl
mov byte [esp + 0x133], bl
mov byte [esp + 0x134], bl
mov byte [esp + 0x135], bl
mov byte [esp + 0x136], bl
mov byte [esp + 0x137], bl
mov byte [esp + 0x138], 2
mov byte [esp + 0x139], 0x3c
mov byte [esp + 0x13a], 8
mov byte [esp + 0x142], 8
mov byte [esp + 0x146], 0xff
mov byte [esp + 0x147], bl
mov byte [esp + 0x148], bl
mov byte [esp + 0x149], bl
mov byte [esp + 0x14a], bl
mov byte [esp + 0x14b], bl
mov byte [esp + 0x14c], 8
mov byte [esp + 0x150], bl
mov byte [esp + 0x151], bl
mov byte [esp + 0x152], bl
mov byte [esp + 0x153], bl
mov byte [esp + 0x154], bl
mov byte [esp + 0x155], bl
mov byte [esp + 0x156], 2
mov byte [esp + 0x157], 0x3c
mov byte [esp + 0x158], 8
mov byte [esp + 0x15f], dl
mov byte [esp + 0x160], 8
mov byte [esp + 0x163], 4
mov byte [esp + 0x164], 0xff
mov byte [esp + 0x165], bl
mov byte [esp + 0x166], bl
mov byte [esp + 0x167], bl
mov byte [esp + 0x168], bl
mov byte [esp + 0x169], bl
mov byte [esp + 0x16a], 8
mov byte [esp + 0x16d], 4
mov byte [esp + 0x16e], bl
mov byte [esp + 0x16f], bl
mov byte [esp + 0x170], bl
mov byte [esp + 0x171], bl
mov byte [esp + 0x172], bl
mov byte [esp + 0x173], bl
mov byte [esp + 0x174], 2
mov byte [esp + 0x175], cl
mov byte [esp + 0x176], 8
mov byte [esp + 0x17d], al
mov byte [esp + 0x180], 2
mov byte [esp + 0x181], cl
mov byte [esp + 0x182], 8
mov dword [esp + 0x183], edx
mov word [esp + 0x191], ax
mov word [esp + 0x187], dx
mov byte [esp + 0x193], al
mov byte [esp + 0x189], dl
mov dword [esp + 0x199], edx
mov byte [esp + 0x19d], dl
mov dword [esp + 0x1a3], edx
mov byte [esp + 0x1a7], dl
mov dword [esp + 0x1ad], edx
mov byte [esp + 0x1b1], dl
mov al, 0x3b
mov dword [esp + 0x1b7], edx
mov byte [esp + 0x195], al
mov byte [esp + 0x1bb], dl
mov byte [esp + 0x69], al
mov byte [esp + 0x70], al
mov byte [esp + 0x77], al
mov eax, dword [esi]
mov dword [esp + 0x1c1], edx
mov byte [esp + 0x5d], cl
mov byte [esp + 0x60], cl
mov byte [esp + 0x63], cl
mov ecx, esi
mov byte [esp + 0x18a], 6
mov byte [esp + 0x18b], 0x2a
mov byte [esp + 0x18c], 0x13
mov byte [esp + 0x18d], 6
mov byte [esp + 0x18e], 0xff
mov byte [esp + 0x18f], 0xff
mov byte [esp + 0x190], 0xff
mov byte [esp + 0x194], 4
mov byte [esp + 0x196], 0x15
mov byte [esp + 0x197], bl
mov byte [esp + 0x198], bl
mov byte [esp + 0x19e], 4
mov byte [esp + 0x19f], 0x19
mov byte [esp + 0x1a0], 0x12
mov byte [esp + 0x1a1], 0xff
mov byte [esp + 0x1a2], bl
mov byte [esp + 0x1a8], 4
mov byte [esp + 0x1a9], 0x19
mov byte [esp + 0x1aa], 0x13
mov byte [esp + 0x1ab], 0xff
mov byte [esp + 0x1ac], 0xc0
mov byte [esp + 0x1b2], 4
mov byte [esp + 0x1b3], 0x19
mov byte [esp + 0x1b4], 0x12
mov byte [esp + 0x1b5], 0xff
mov byte [esp + 0x1b6], bl
mov byte [esp + 0x1bc], 4
mov byte [esp + 0x1bd], 0x19
mov byte [esp + 0x1be], 0x12
mov byte [esp + 0x1bf], 0x41
mov byte [esp + 0x1c0], bl
mov byte [esp + 0x1c5], dl
mov byte [esp + 0x5c], 2
mov byte [esp + 0x5e], 0x1a
mov byte [esp + 0x5f], 2
mov byte [esp + 0x61], 0x1b
mov byte [esp + 0x62], 2
mov byte [esp + 0x64], 0x1c
mov byte [esp + 0x68], 6
mov byte [esp + 0x6a], 0x1a
mov byte [esp + 0x6b], 0x39
mov byte [esp + 0x6c], 0x30
mov byte [esp + 0x6d], 0x59
mov byte [esp + 0x6e], 0x5a
mov byte [esp + 0x6f], 6
mov byte [esp + 0x71], 0x1b
mov byte [esp + 0x72], 0x35
mov byte [esp + 0x73], 0x36
mov byte [esp + 0x74], 0x37
mov byte [esp + 0x75], 0x38
mov byte [esp + 0x76], 6
mov byte [esp + 0x78], 0x1c
mov byte [esp + 0x79], 0x31
mov byte [esp + 0x7a], 0x32
mov byte [esp + 0x7b], 0x33
mov byte [esp + 0x7c], 0x34
call dword [eax + 0x18]
test ax, ax
jne 0x594132
lea ecx, [esp + 0x34]
mov byte [esp + 0x2fc], 6
call fcn.0060ffb0
mov eax, dword [esp + 0x1c]
cmp eax, ebx
je 0x5940a3
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x59409a
cmp al, 0xff
je 0x59409a
dec al
mov byte [ecx], al
jmp 0x5940a3
push ecx
call fcn.00697880
add esp, 4
lea ecx, [esp + 0x1ec]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
mov byte [esp + 0x2fc], 4
call fcn.00548470
lea ecx, [esp + 0x1c8]
mov byte [esp + 0x2fc], 3
call fcn.00548470
lea ecx, [esp + 0x2c]
mov byte [esp + 0x2fc], 2
call fcn.0060ffb0
lea ecx, [esp + 0x88]
mov byte [esp + 0x2fc], 1
call fcn.0060d280
mov eax, dword [esp + 0x40]
cmp eax, ebx
je 0x594121
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x594118
cmp al, 0xff
je 0x594118
dec al
mov byte [ecx], al
jmp 0x594121
push ecx
call fcn.00697880
add esp, 4
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], ebx
jmp 0x595f09
push 5
lea ecx, [esp + 0x308]
call fcn.00610190
push ecx
mov byte [esp + 0x34], al
mov ecx, esp
mov dword [esp + 0x18], esp
push 6
push 0x703764
call fcn.0060ff10
lea ecx, [esp + 0x210]
push ecx
call fcn.0060f170
add esp, 8
mov edx, dword [0x6ce1fc]
lea ecx, [esp + 0x18]
push edx
push ebx
push eax
mov byte [esp + 0x308], 8
call fcn.004136a0
mov eax, dword [esp + 0x210]
mov byte [esp + 0x2fc], 7
cmp eax, ebx
je 0x5941b1
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x5941a8
cmp al, 0xff
je 0x5941a8
dec al
mov byte [ecx], al
jmp 0x5941b1
push ecx
call fcn.00697880
add esp, 4
mov eax, dword [esp + 0x30]
and eax, 0xff
add eax, 0xffffff8d
cmp eax, 8
ja case.default.0x5941c6
jmp dword [eax*4 + 0x595f28]
mov al, byte [esp + 0x30]
mov byte [esp + 0x13], bl
sub al, 0x73
mov byte [esp + 0x30], al
mov esi, dword [esp + 0x30]
push ecx
lea edx, [esp + 0x308]
mov ecx, esp
mov dword [esp + 0x18], esp
push edx
call fcn.0060fe80
mov ecx, dword [0x71b93c]
call fcn.006206f0
cmp bp, bx
je 0x594611
cmp byte [0x71bb5c], bl
je 0x5943e6
cmp bp, 1
jne 0x5942a8
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 6
push 0x703784
call fcn.0060ff10
lea eax, [esp + 0x260]
push eax
call fcn.0060f170
add esp, 8
mov ecx, dword [0x6ce1fc]
mov byte [esp + 0x2fc], 9
push ecx
push ebx
push eax
lea ecx, [esp + 0x24]
call fcn.004136a0
mov eax, dword [esp + 0x260]
mov byte [esp + 0x2fc], 7
cmp eax, ebx
je 0x59428a
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x594281
cmp al, 0xff
je 0x594281
dec al
mov byte [ecx], al
jmp 0x59428a
push ecx
call fcn.00697880
add esp, 4
mov dword [esp + 0x260], ebx
mov dword [esp + 0x264], ebx
mov dword [esp + 0x268], ebx
mov byte [esp + 0x13], bl
jmp 0x59460f
cmp bp, 2
jne 0x59433d
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 6
push 0x70377c
call fcn.0060ff10
lea edx, [esp + 0x230]
push edx
call fcn.0060f170
add esp, 8
mov ecx, dword [0x6ce1fc]
mov byte [esp + 0x2fc], 0xa
push ecx
push ebx
push eax
lea ecx, [esp + 0x24]
call fcn.004136a0
mov eax, dword [esp + 0x230]
mov byte [esp + 0x2fc], 7
cmp eax, ebx
je 0x59431f
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x594316
cmp al, 0xff
je 0x594316
dec al
mov byte [ecx], al
jmp 0x59431f
push ecx
call fcn.00697880
add esp, 4
mov dword [esp + 0x230], ebx
mov dword [esp + 0x234], ebx
mov dword [esp + 0x238], ebx
mov byte [esp + 0x13], bl
jmp 0x59460f
cmp bp, 3
jne 0x59460f
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 6
push 0x703764
call fcn.0060ff10
lea edx, [esp + 0x220]
push edx
call fcn.0060f170
add esp, 8
mov ecx, dword [0x6ce1fc]
mov byte [esp + 0x2fc], 0xb
push ecx
push ebx
push eax
lea ecx, [esp + 0x24]
call fcn.004136a0
mov eax, dword [esp + 0x220]
mov byte [esp + 0x2fc], 7
cmp eax, ebx
je 0x5943cc
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x5943c3
cmp al, 0xff
je 0x5943c3
dec al
mov byte [ecx], al
mov dword [esp + 0x220], ebx
mov dword [esp + 0x224], ebx
mov dword [esp + 0x228], ebx
jmp 0x59460a
push ecx
call fcn.00697880
add esp, 4
mov dword [esp + 0x220], ebx
mov dword [esp + 0x224], ebx
mov dword [esp + 0x228], ebx
jmp 0x59460a
mov eax, esi
sub esp, 0x24
and eax, 0xff
mov edx, esp
movsx ecx, bp
lea eax, [eax + eax*2]
mov dword [esp + 0x38], esp
add eax, ecx
push ebx
push 1
lea eax, [eax + eax*4]
lea ecx, [esp + eax*2 + 0xce]
push ecx
push edx
lea ecx, [esp + 0x1fc]
call fcn.00548ea0
lea ecx, [esp + 0xac]
call fcn.0060d330
push ecx
lea ecx, [esp + 0x8c]
mov edx, esp
mov dword [esp + 0x18], esp
push edx
call fcn.0060d6b0
lea ecx, [esp + 0x30]
call fcn.006101a0
lea ecx, [esp + 0x2c]
call fcn.00610330
test ax, ax
jle 0x59470e
cmp bp, 1
jne 0x5944e9
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 6
push 0x703784
call fcn.0060ff10
lea eax, [esp + 0x280]
push eax
call fcn.0060f170
add esp, 8
mov ecx, dword [0x6ce1fc]
mov byte [esp + 0x2fc], 0xc
push ecx
push ebx
push eax
lea ecx, [esp + 0x24]
call fcn.004136a0
mov eax, dword [esp + 0x280]
mov byte [esp + 0x2fc], 7
cmp eax, ebx
je 0x5944cb
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x5944c2
cmp al, 0xff
je 0x5944c2
dec al
mov byte [ecx], al
jmp 0x5944cb
push ecx
call fcn.00697880
add esp, 4
mov dword [esp + 0x280], ebx
mov dword [esp + 0x284], ebx
mov dword [esp + 0x288], ebx
mov byte [esp + 0x13], bl
jmp 0x59460f
cmp bp, 2
jne 0x59457e
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 6
push 0x70377c
call fcn.0060ff10
lea edx, [esp + 0x2a0]
push edx
call fcn.0060f170
add esp, 8
mov ecx, dword [0x6ce1fc]
mov byte [esp + 0x2fc], 0xd
push ecx
push ebx
push eax
lea ecx, [esp + 0x24]
call fcn.004136a0
mov eax, dword [esp + 0x2a0]
mov byte [esp + 0x2fc], 7
cmp eax, ebx
je 0x594560
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x594557
cmp al, 0xff
je 0x594557
dec al
mov byte [ecx], al
jmp 0x594560
push ecx
call fcn.00697880
add esp, 4
mov dword [esp + 0x2a0], ebx
mov dword [esp + 0x2a4], ebx
mov dword [esp + 0x2a8], ebx
mov byte [esp + 0x13], bl
jmp 0x59460f
cmp bp, 3
jne 0x59460f
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 6
push 0x703764
call fcn.0060ff10
lea edx, [esp + 0x2c0]
push edx
call fcn.0060f170
add esp, 8
mov ecx, dword [0x6ce1fc]
mov byte [esp + 0x2fc], 0xe
push ecx
push ebx
push eax
lea ecx, [esp + 0x24]
call fcn.004136a0
mov eax, dword [esp + 0x2c0]
mov byte [esp + 0x2fc], 7
cmp eax, ebx
je 0x5945f5
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x5945ec
cmp al, 0xff
je 0x5945ec
dec al
mov byte [ecx], al
jmp 0x5945f5
push ecx
call fcn.00697880
add esp, 4
mov dword [esp + 0x2c0], ebx
mov dword [esp + 0x2c4], ebx
mov dword [esp + 0x2c8], ebx
mov byte [esp + 0x13], 1
xor ebp, ebp
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x1c], 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 + 0x1c], 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 + 0x1c], esp
push 6
push 0x703774
call fcn.0060ff10
mov ecx, dword [0x71b93c]
call fcn.00620870
mov dl, byte [esp + 0x18]
sub esp, 0x10
mov ecx, esp
mov dword [esp + 0x24], 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 + 0x28]
push eax
push ebx
push edx
call fcn.004136a0
push ecx
mov byte [esp + 0x310], 0x10
mov ecx, esp
mov dword [esp + 0x44], esp
push 6
push 0x70379c
call fcn.0060ff10
mov ecx, dword [0x71b93c]
mov byte [esp + 0x310], 7
call fcn.006208f0
mov ecx, dword [0x71b93c]
call fcn.00620cd0
movsx eax, ax
sub eax, ebx
je 0x594704
dec eax
je 0x5946fa
dec eax
jne 0x5941df
mov al, byte [esp + 0x13]
mov ebp, 3
cmp al, bl
jne 0x59478d
jmp 0x5941df
mov ebp, 2
jmp 0x5941df
mov ebp, 1
jmp 0x5941df
push ebx
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push 6
push 0x7037f4
call fcn.0060ff10
push ecx
mov byte [esp + 0x30c], 0xf
mov ecx, esp
mov dword [esp + 0x40], esp
push 6
push 0x703840
call fcn.0060ff10
mov ecx, 0x71b930
mov byte [esp + 0x30c], 7
call fcn.006115e0
lea ecx, [esp + 0x34]
mov byte [esp + 0x2fc], 6
call fcn.0060ffb0
mov eax, dword [esp + 0x1c]
cmp eax, ebx
je 0x595750
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x595747
cmp al, 0xff
je 0x595747
dec al
mov byte [ecx], al
jmp 0x595750
lea ecx, [esp + 0x34]
mov byte [esp + 0x2fc], 6
call fcn.0060ffb0
mov eax, dword [esp + 0x1c]
cmp eax, ebx
je 0x5947c3
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x5947ba
cmp al, 0xff
je 0x5947ba
dec al
mov byte [ecx], al
jmp 0x5947c3
push ecx
call fcn.00697880
add esp, 4
lea ecx, [esp + 0x1ec]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
mov byte [esp + 0x2fc], 4
call fcn.00548470
lea ecx, [esp + 0x1c8]
mov byte [esp + 0x2fc], 3
call fcn.00548470
lea ecx, [esp + 0x2c]
mov byte [esp + 0x2fc], 2
call fcn.0060ffb0
lea ecx, [esp + 0x88]
mov byte [esp + 0x2fc], 1
call fcn.0060d280
mov eax, dword [esp + 0x40]
cmp eax, ebx
je 0x5950b4
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x5950ab
cmp al, 0xff
je 0x5950ab
dec al
mov byte [ecx], al
jmp 0x5950b4
mov al, byte [esp + 0x30]
mov byte [esp + 0x13], bl
sub al, 0x73
mov byte [esp + 0x30], al
push ecx
lea eax, [esp + 0x308]
mov ecx, esp
mov dword [esp + 0x18], esp
push eax
call fcn.0060fe80
mov ecx, dword [0x71b93c]
call fcn.006206f0
cmp bp, bx
je 0x594e84
cmp byte [0x71bb5c], bl
je 0x594a5c
cmp bp, 1
jne 0x59491e
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 6
push 0x70c16c
call fcn.0060ff10
lea ecx, [esp + 0x270]
push ecx
call fcn.0060f170
add esp, 8
mov edx, dword [0x6ce1fc]
lea ecx, [esp + 0x18]
push edx
push ebx
push eax
mov byte [esp + 0x308], 0x11
call fcn.004136a0
mov eax, dword [esp + 0x270]
mov byte [esp + 0x2fc], 7
cmp eax, ebx
je 0x594900
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x5948f7
cmp al, 0xff
je 0x5948f7
dec al
mov byte [ecx], al
jmp 0x594900
push ecx
call fcn.00697880
add esp, 4
mov dword [esp + 0x270], ebx
mov dword [esp + 0x274], ebx
mov dword [esp + 0x278], ebx
mov byte [esp + 0x13], bl
jmp 0x594e82
cmp bp, 2
jne 0x5949b3
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 6
push 0x70c164
call fcn.0060ff10
lea eax, [esp + 0x2b0]
push eax
call fcn.0060f170
add esp, 8
mov ecx, dword [0x6ce1fc]
mov byte [esp + 0x2fc], 0x12
push ecx
push ebx
push eax
lea ecx, [esp + 0x24]
call fcn.004136a0
mov eax, dword [esp + 0x2b0]
mov byte [esp + 0x2fc], 7
cmp eax, ebx
je 0x594995
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x59498c
cmp al, 0xff
je 0x59498c
dec al
mov byte [ecx], al
jmp 0x594995
push ecx
call fcn.00697880
add esp, 4
mov dword [esp + 0x2b0], ebx
mov dword [esp + 0x2b4], ebx
mov dword [esp + 0x2b8], ebx
mov byte [esp + 0x13], bl
jmp 0x594e82
cmp bp, 3
jne 0x594e82
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 6
push 0x703764
call fcn.0060ff10
lea edx, [esp + 0x240]
push edx
call fcn.0060f170
add esp, 8
mov ecx, dword [0x6ce1fc]
mov byte [esp + 0x2fc], 0x13
push ecx
push ebx
push eax
lea ecx, [esp + 0x24]
call fcn.004136a0
mov eax, dword [esp + 0x240]
mov byte [esp + 0x2fc], 7
cmp eax, ebx
je 0x594a42
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x594a39
cmp al, 0xff
je 0x594a39
dec al
mov byte [ecx], al
mov dword [esp + 0x240], ebx
mov dword [esp + 0x244], ebx
mov dword [esp + 0x248], ebx
jmp 0x594e7d
push ecx
call fcn.00697880
add esp, 4
mov dword [esp + 0x240], ebx
mov dword [esp + 0x244], ebx
mov dword [esp + 0x248], ebx
jmp 0x594e7d
mov eax, dword [esp + 0x30]
sub esp, 0x24
and eax, 0xff
mov edx, esp
movsx ecx, bp
lea eax, [eax + eax*2]
mov dword [esp + 0x38], esp
add eax, ecx
push ebx
push 1
lea eax, [eax + eax*4]
lea ecx, [esp + eax*2 + 0xce]
push ecx
push edx
lea ecx, [esp + 0x1fc]
call fcn.00548ea0
lea ecx, [esp + 0xac]
call fcn.0060d330
push ecx
lea ecx, [esp + 0x8c]
mov edx, esp
mov dword [esp + 0x18], esp
push edx
call fcn.0060d6b0
lea ecx, [esp + 0x30]
call fcn.006101a0
lea ecx, [esp + 0x2c]
call fcn.00610330
test ax, ax
jle 0x594f81
cmp bp, 1
jne 0x594c0a
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 6
push 0x70c16c
call fcn.0060ff10
lea eax, [esp + 0x250]
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 + 0x2fc], 0x14
cmp ecx, ebp
jae 0x594b14
mov ebp, ecx
lea edx, [esp + 0x18]
cmp edx, esi
jne 0x594b37
push ecx
push ebp
lea ecx, [esp + 0x20]
call fcn.004140d0
push ebx
push ebx
lea ecx, [esp + 0x20]
call fcn.004140d0
jmp 0x594bbe
cmp ebp, ebx
jbe 0x594b84
cmp ebp, eax
jne 0x594b84
mov eax, dword [esi + 4]
cmp eax, ebx
jne 0x594b4b
mov eax, 0x6ce1f8
cmp byte [eax - 1], 0xfe
jae 0x594b84
push 1
lea ecx, [esp + 0x1c]
call fcn.004138a0
mov eax, dword [esi + 4]
cmp eax, ebx
jne 0x594b68
mov eax, 0x6ce1f8
mov dword [esp + 0x1c], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x20], ecx
mov esi, dword [esi + 0xc]
mov dword [esp + 0x24], esi
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x594bbe
push 1
push ebp
lea ecx, [esp + 0x20]
call fcn.00414210
test al, al
je 0x594bbe
mov esi, dword [esi + 4]
cmp esi, ebx
jne 0x594ba0
mov esi, 0x6ce1f8
mov edi, dword [esp + 0x1c]
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 + 0x1c]
call fcn.004141f0
mov ecx, dword [esp + 0x250]
mov byte [esp + 0x2fc], 7
cmp ecx, ebx
je 0x594bec
mov al, byte [ecx - 1]
dec ecx
cmp al, bl
je 0x594be3
cmp al, 0xff
je 0x594be3
dec al
mov byte [ecx], al
jmp 0x594bec
push ecx
call fcn.00697880
add esp, 4
mov dword [esp + 0x250], ebx
mov dword [esp + 0x254], ebx
mov dword [esp + 0x258], ebx
mov byte [esp + 0x13], bl
jmp 0x594e82
cmp bp, 2
jne 0x594d48
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 6
push 0x70c164
call fcn.0060ff10
lea ecx, [esp + 0x290]
push ecx
call fcn.0060f170
add esp, 8
mov esi, eax
mov eax, dword [esi + 8]
mov ecx, dword [0x6ce1fc]
mov ebp, eax
mov byte [esp + 0x2fc], 0x15
cmp ecx, ebp
jae 0x594c52
mov ebp, ecx
lea edx, [esp + 0x18]
cmp edx, esi
jne 0x594c75
push ecx
push ebp
lea ecx, [esp + 0x20]
call fcn.004140d0
push ebx
push ebx
lea ecx, [esp + 0x20]
call fcn.004140d0
jmp 0x594cfc
cmp ebp, ebx
jbe 0x594cc2
cmp ebp, eax
jne 0x594cc2
mov eax, dword [esi + 4]
cmp eax, ebx
jne 0x594c89
mov eax, 0x6ce1f8
cmp byte [eax - 1], 0xfe
jae 0x594cc2
push 1
lea ecx, [esp + 0x1c]
call fcn.004138a0
mov eax, dword [esi + 4]
cmp eax, ebx
jne 0x594ca6
mov eax, 0x6ce1f8
mov dword [esp + 0x1c], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x20], ecx
mov esi, dword [esi + 0xc]
mov dword [esp + 0x24], esi
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x594cfc
push 1
push ebp
lea ecx, [esp + 0x20]
call fcn.00414210
test al, al
je 0x594cfc
mov esi, dword [esi + 4]
cmp esi, ebx
jne 0x594cde
mov esi, 0x6ce1f8
mov edi, dword [esp + 0x1c]
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 + 0x1c]
call fcn.004141f0
mov ecx, dword [esp + 0x290]
mov byte [esp + 0x2fc], 7
cmp ecx, ebx
je 0x594d2a
mov al, byte [ecx - 1]
dec ecx
cmp al, bl
je 0x594d21
cmp al, 0xff
je 0x594d21
dec al
mov byte [ecx], al
jmp 0x594d2a
push ecx
call fcn.00697880
add esp, 4
mov dword [esp + 0x290], ebx
mov dword [esp + 0x294], ebx
mov dword [esp + 0x298], ebx
mov byte [esp + 0x13], bl
jmp 0x594e82
cmp bp, 3
jne 0x594e82
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 6
push 0x703764
call fcn.0060ff10
lea ecx, [esp + 0x210]
push ecx
call fcn.0060f170
add esp, 8
mov esi, eax
mov eax, dword [esi + 8]
mov ecx, dword [0x6ce1fc]
mov ebp, eax
mov byte [esp + 0x2fc], 0x16
cmp ecx, ebp
jae 0x594d90
mov ebp, ecx
lea edx, [esp + 0x18]
cmp edx, esi
jne 0x594db3
push ecx
push ebp
lea ecx, [esp + 0x20]
call fcn.004140d0
push ebx
push ebx
lea ecx, [esp + 0x20]
call fcn.004140d0
jmp 0x594e3a
cmp ebp, ebx
jbe 0x594e00
cmp ebp, eax
jne 0x594e00
mov eax, dword [esi + 4]
cmp eax, ebx
jne 0x594dc7
mov eax, 0x6ce1f8
cmp byte [eax - 1], 0xfe
jae 0x594e00
push 1
lea ecx, [esp + 0x1c]
call fcn.004138a0
mov eax, dword [esi + 4]
cmp eax, ebx
jne 0x594de4
mov eax, 0x6ce1f8
mov dword [esp + 0x1c], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x20], ecx
mov esi, dword [esi + 0xc]
mov dword [esp + 0x24], esi
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x594e3a
push 1
push ebp
lea ecx, [esp + 0x20]
call fcn.00414210
test al, al
je 0x594e3a
mov esi, dword [esi + 4]
cmp esi, ebx
jne 0x594e1c
mov esi, 0x6ce1f8
mov edi, dword [esp + 0x1c]
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 + 0x1c]
call fcn.004141f0
mov ecx, dword [esp + 0x210]
mov byte [esp + 0x2fc], 7
cmp ecx, ebx
je 0x594e68
mov al, byte [ecx - 1]
dec ecx
cmp al, bl
je 0x594e5f
cmp al, 0xff
je 0x594e5f
dec al
mov byte [ecx], al
jmp 0x594e68
push ecx
call fcn.00697880
add esp, 4
mov dword [esp + 0x210], ebx
mov dword [esp + 0x214], ebx
mov dword [esp + 0x218], ebx
mov byte [esp + 0x13], 1
xor ebp, ebp
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push 6
push 0x70c16c
call fcn.0060ff10
mov ecx, dword [0x71b93c]
call fcn.00620870
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push 6
push 0x70c164
call fcn.0060ff10
mov ecx, dword [0x71b93c]
call fcn.00620870
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push 6
push 0x703774
call fcn.0060ff10
mov ecx, dword [0x71b93c]
call fcn.00620870
mov dl, byte [esp + 0x18]
sub esp, 0x10
mov ecx, esp
mov dword [esp + 0x24], 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 + 0x28]
push eax
push ebx
push edx
call fcn.004136a0
push ecx
mov byte [esp + 0x310], 0x18
mov ecx, esp
mov dword [esp + 0x3c], esp
push 6
push 0x70379c
call fcn.0060ff10
mov ecx, dword [0x71b93c]
mov byte [esp + 0x310], 7
call fcn.006208f0
mov ecx, dword [0x71b93c]
call fcn.00620cd0
movsx eax, ax
sub eax, ebx
je 0x594f77
dec eax
je 0x594f6d
dec eax
jne 0x594855
mov al, byte [esp + 0x13]
mov ebp, 3
cmp al, bl
jne 0x595000
jmp 0x594855
mov ebp, 2
jmp 0x594855
mov ebp, 1
jmp 0x594855
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 + 0x30c], 0x17
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x703840
call fcn.0060ff10
mov ecx, 0x71b930
mov byte [esp + 0x30c], 7
call fcn.006115e0
lea ecx, [esp + 0x34]
mov byte [esp + 0x2fc], 6
call fcn.0060ffb0
mov eax, dword [esp + 0x1c]
cmp eax, ebx
je 0x595750
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x595747
cmp al, 0xff
je 0x595747
dec al
mov byte [ecx], al
jmp 0x595750
lea ecx, [esp + 0x34]
mov byte [esp + 0x2fc], 6
call fcn.0060ffb0
mov eax, dword [esp + 0x1c]
cmp eax, ebx
je 0x595036
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x59502d
cmp al, 0xff
je 0x59502d
dec al
mov byte [ecx], al
jmp 0x595036
push ecx
call fcn.00697880
add esp, 4
lea ecx, [esp + 0x1ec]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
mov byte [esp + 0x2fc], 4
call fcn.00548470
lea ecx, [esp + 0x1c8]
mov byte [esp + 0x2fc], 3
call fcn.00548470
lea ecx, [esp + 0x2c]
mov byte [esp + 0x2fc], 2
call fcn.0060ffb0
lea ecx, [esp + 0x88]
mov byte [esp + 0x2fc], 1
call fcn.0060d280
mov eax, dword [esp + 0x40]
cmp eax, ebx
je 0x5950b4
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x5950ab
cmp al, 0xff
je 0x5950ab
dec al
mov byte [ecx], al
jmp 0x5950b4
push ecx
call fcn.00697880
add esp, 4
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], ebx
jmp 0x5953a9
push ebx
push 4
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push 6
push 0x7037f4
call fcn.0060ff10
push ecx
mov byte [esp + 0x30c], 0x19
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x710200
call fcn.0060ff10
mov ecx, 0x71b930
mov byte [esp + 0x30c], 7
call fcn.006115e0
cmp al, 4
jne 0x595148
lea ecx, [esp + 0x34]
mov byte [esp + 0x2fc], 6
call fcn.0060ffb0
mov eax, dword [esp + 0x1c]
cmp eax, ebx
je 0x595750
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x595747
cmp al, 0xff
je 0x595747
dec al
mov byte [ecx], al
jmp 0x595750
push ebx
push ebx
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push 6
push 0x7037f4
call fcn.0060ff10
push ecx
mov byte [esp + 0x30c], 0x1a
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x7101f8
call fcn.0060ff10
mov ecx, 0x71b930
mov byte [esp + 0x30c], 7
call fcn.006115e0
cmp byte [0x71bb5c], bl
je 0x5951a4
push 0x3e8
call fcn.0041ad00
add esp, 4
jmp 0x5952e7
sub esp, 0x24
lea ecx, [esp + 0x1ae]
mov eax, esp
mov dword [esp + 0x4c], esp
push ebx
push 1
push ecx
push eax
lea ecx, [esp + 0x220]
call fcn.00548ea0
lea ecx, [esp + 0xac]
call fcn.0060d330
lea ecx, [esp + 0x88]
call fcn.0060d760
test ax, ax
jne 0x595225
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 + 0x30c], 0x1b
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x70e3d8
call fcn.0060ff10
mov ecx, 0x71b930
mov byte [esp + 0x30c], 7
call fcn.006115e0
push ecx
lea ecx, [esp + 0x8c]
mov edx, esp
mov dword [esp + 0x2c], esp
push edx
call fcn.0060d6b0
lea ecx, [esp + 0x30]
call fcn.006101a0
push 7
lea ecx, [esp + 0x30]
call fcn.00610190
push 8
lea ecx, [esp + 0x30]
mov byte [esp + 0x19b], al
call fcn.00610190
sub esp, 0x24
mov byte [esp + 0x1bc], al
mov eax, esp
mov dword [esp + 0x4c], esp
push ebx
lea ecx, [esp + 0x1bc]
push 1
push ecx
push eax
lea ecx, [esp + 0x1fc]
call fcn.00548ea0
lea ecx, [esp + 0xac]
call fcn.0060d330
lea ecx, [esp + 0x88]
call fcn.0060d760
test ax, ax
jne 0x5952e7
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 + 0x30c], 0x1c
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x70e3d8
call fcn.0060ff10
mov ecx, 0x71b930
mov byte [esp + 0x30c], 7
call fcn.006115e0
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 + 0x30c], 0x1d
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x7101f0
call fcn.0060ff10
mov ecx, 0x71b930
mov byte [esp + 0x30c], 7
call fcn.006115e0
lea ecx, [esp + 0x34]
mov byte [esp + 0x2fc], 6
call fcn.0060ffb0
lea ecx, [esp + 0x18]
mov byte [esp + 0x2fc], 5
call fcn.004131d0
lea ecx, [esp + 0x1ec]
mov byte [esp + 0x2fc], 4
call fcn.00548470
lea ecx, [esp + 0x1c8]
mov byte [esp + 0x2fc], 3
call fcn.00548470
lea ecx, [esp + 0x2c]
mov byte [esp + 0x2fc], 2
call fcn.0060ffb0
lea ecx, [esp + 0x88]
mov byte [esp + 0x2fc], 1
call fcn.0060d280
lea ecx, [esp + 0x38]
mov byte [esp + 0x2fc], bl
call fcn.0065d6a0
lea ecx, [esp + 0x304]
mov dword [esp + 0x2fc], 0xffffffff
call fcn.0060ffb0
mov ax, 1
mov ecx, dword [esp + 0x2f4]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x2f0
ret 4
cmp byte [0x71bb5c], bl
je 0x595490
mov edi, str.52U29S021243
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov esi, ecx
lea ecx, [esp + 0x18]
mov dword [esp + 0x30], esi
call fcn.00414860
cmp eax, esi
jae 0x595412
call fcn.0069788b
mov edi, dword [esp + 0x1c]
cmp edi, ebx
je 0x59542e
mov al, byte [edi - 1]
cmp al, bl
je 0x59542e
cmp al, 0xff
je 0x59542e
cmp esi, ebx
jne 0x59545a
jmp 0x595832
cmp esi, ebx
jne 0x595442
push 1
lea ecx, [esp + 0x1c]
call fcn.004138a0
jmp 0x59589d
mov eax, dword [esp + 0x24]
cmp eax, 0x1f
ja 0x59544f
cmp eax, esi
jae 0x595468
push 1
lea ecx, [esp + 0x1c]
call fcn.004138a0
push esi
lea ecx, [esp + 0x1c]
call fcn.00414870
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x30]
mov esi, str.52U29S021243
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]
lea ecx, [esp + 0x1c]
call fcn.004141f0
jmp 0x59589d
sub esp, 0x24
lea ecx, [esp + 0x80]
mov eax, esp
mov dword [esp + 0x4c], esp
push ebx
push 1
push ecx
push eax
lea ecx, [esp + 0x1fc]
call fcn.00548ea0
lea ecx, [esp + 0xac]
call fcn.0060d330
push ecx
lea ecx, [esp + 0x8c]
mov edx, esp
mov dword [esp + 0x2c], esp
push edx
call fcn.0060d6b0
lea ecx, [esp + 0x30]
call fcn.006101a0
lea ecx, [esp + 0x2c]
call fcn.00610330
cmp ax, 1
jge 0x595568
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 + 0x30c], 0x1e
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x703840
call fcn.0060ff10
mov ecx, 0x71b930
mov byte [esp + 0x30c], 7
call fcn.006115e0
lea ecx, [esp + 0x34]
mov byte [esp + 0x2fc], 6
call fcn.0060ffb0
mov eax, dword [esp + 0x1c]
cmp eax, ebx
je 0x595750
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x595747
cmp al, 0xff
je 0x595747
dec al
mov byte [ecx], al
jmp 0x595750
xor esi, esi
lea edi, [esp + 0x4c]
lea eax, [esi + 5]
lea ecx, [esp + 0x2c]
push eax
call fcn.00610190
mov byte [edi], al
inc esi
inc edi
cmp si, 4
jl 0x59556e
sub esp, 0x24
lea edx, [esp + 0x83]
mov ecx, esp
mov dword [esp + 0x4c], esp
push ebx
push 1
push edx
push ecx
lea ecx, [esp + 0x1fc]
call fcn.00548ea0
lea ecx, [esp + 0xac]
call fcn.0060d330
push ecx
lea ecx, [esp + 0x8c]
mov eax, esp
mov dword [esp + 0x2c], esp
push eax
call fcn.0060d6b0
lea ecx, [esp + 0x30]
call fcn.006101a0
lea ecx, [esp + 0x2c]
call fcn.00610330
cmp ax, 1
jge 0x59565d
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 + 0x30c], 0x1f
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x703840
call fcn.0060ff10
mov ecx, 0x71b930
mov byte [esp + 0x30c], 7
call fcn.006115e0
lea ecx, [esp + 0x34]
mov byte [esp + 0x2fc], 6
call fcn.0060ffb0
mov eax, dword [esp + 0x1c]
cmp eax, ebx
je 0x595750
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x595747
cmp al, 0xff
je 0x595747
dec al
mov byte [ecx], al
jmp 0x595750
xor esi, esi
lea edi, [esp + 0x50]
lea ecx, [esi + 5]
push ecx
lea ecx, [esp + 0x30]
call fcn.00610190
mov byte [edi], al
inc esi
inc edi
cmp si, 4
jl 0x595663
sub esp, 0x24
lea eax, [esp + 0x86]
mov edx, esp
mov dword [esp + 0x4c], esp
push ebx
push 1
push eax
push edx
lea ecx, [esp + 0x1fc]
call fcn.00548ea0
lea ecx, [esp + 0xac]
call fcn.0060d330
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push ecx
lea ecx, [esp + 0x90]
call fcn.0060d6b0
lea ecx, [esp + 0x30]
call fcn.006101a0
lea ecx, [esp + 0x2c]
call fcn.00610330
cmp ax, 1
jge 0x5957d4
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 + 0x30c], 0x20
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x703840
call fcn.0060ff10
mov ecx, 0x71b930
mov byte [esp + 0x30c], 7
call fcn.006115e0
lea ecx, [esp + 0x34]
mov byte [esp + 0x2fc], 6
call fcn.0060ffb0
mov eax, dword [esp + 0x1c]
cmp eax, ebx
je 0x595750
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x595747
cmp al, 0xff
je 0x595747
dec al
mov byte [ecx], al
jmp 0x595750
push ecx
call fcn.00697880
add esp, 4
lea ecx, [esp + 0x1ec]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
mov byte [esp + 0x2fc], 4
call fcn.00548470
lea ecx, [esp + 0x1c8]
mov byte [esp + 0x2fc], 3
call fcn.00548470
lea ecx, [esp + 0x2c]
mov byte [esp + 0x2fc], 2
call fcn.0060ffb0
lea ecx, [esp + 0x88]
mov byte [esp + 0x2fc], 1
call fcn.0060d280
mov eax, dword [esp + 0x40]
cmp eax, ebx
je 0x594121
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x594118
cmp al, 0xff
je 0x594118
dec al
mov byte [ecx], al
jmp 0x594121
xor esi, esi
lea edi, [esp + 0x54]
lea edx, [esi + 5]
lea ecx, [esp + 0x2c]
push edx
call fcn.00610190
mov byte [edi], al
inc esi
inc edi
cmp si, 4
jl 0x5957da
lea edi, [esp + 0x4c]
or ecx, 0xffffffff
xor eax, eax
mov byte [esp + 0x58], bl
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov esi, ecx
lea ecx, [esp + 0x18]
mov dword [esp + 0x30], esi
call fcn.00414860
cmp eax, esi
jae 0x59581b
call fcn.0069788b
mov edi, dword [esp + 0x1c]
cmp edi, ebx
je 0x595843
mov al, byte [edi - 1]
cmp al, bl
je 0x595843
cmp al, 0xff
je 0x595843
cmp esi, ebx
jne 0x59586c
dec al
push ebx
lea ecx, [esp + 0x1c]
mov byte [edi - 1], al
call fcn.004138a0
jmp 0x59589d
cmp esi, ebx
jne 0x595854
push 1
lea ecx, [esp + 0x1c]
call fcn.004138a0
jmp 0x59589d
mov eax, dword [esp + 0x24]
cmp eax, 0x1f
ja 0x595861
cmp eax, esi
jae 0x59587a
push 1
lea ecx, [esp + 0x1c]
call fcn.004138a0
push esi
lea ecx, [esp + 0x1c]
call fcn.00414870
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x30]
lea esi, [esp + 0x4c]
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 [esp + 0x1c]
mov dword [esp + 0x20], eax
mov byte [eax + ecx], bl
push ecx
lea edx, [esp + 0x308]
mov ecx, esp
mov dword [esp + 0x2c], esp
push edx
call fcn.0060fe80
mov ecx, dword [0x71b93c]
call fcn.006206f0
cmp bp, bx
je 0x595ba0
cmp byte [0x71bb5c], bl
je 0x5959dc
push 0x3e8
call fcn.0041ad00
add esp, 4
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 + 0x30c], 0x21
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x70c43c
call fcn.0060ff10
mov ecx, 0x71b930
mov byte [esp + 0x30c], 7
call fcn.006115e0
push ecx
lea eax, [esp + 0x308]
mov ecx, esp
mov dword [esp + 0x2c], esp
push eax
call fcn.0060fe80
mov ecx, dword [0x71b93c]
call fcn.006206f0
lea edi, [esp + 0x4c]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebp, ecx
lea ecx, [esp + 0x18]
call fcn.00414860
cmp eax, ebp
jae 0x595962
call fcn.0069788b
mov edi, dword [esp + 0x1c]
cmp edi, ebx
je 0x59597e
mov al, byte [edi - 1]
cmp al, bl
je 0x59597e
cmp al, 0xff
je 0x59597e
cmp ebp, ebx
jne 0x5959aa
jmp 0x595b37
cmp ebp, ebx
jne 0x595992
push 1
lea ecx, [esp + 0x1c]
call fcn.004138a0
jmp 0x595b9e
mov eax, dword [esp + 0x24]
cmp eax, 0x1f
ja 0x59599f
cmp eax, ebp
jae 0x5959b8
push 1
lea ecx, [esp + 0x1c]
call fcn.004138a0
push ebp
lea ecx, [esp + 0x1c]
call fcn.00414870
mov edi, dword [esp + 0x1c]
mov ecx, ebp
lea esi, [esp + 0x4c]
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 + 0x1c]
mov dword [esp + 0x20], ebp
mov byte [eax + ebp], bl
jmp 0x595b9e
sub esp, 0x24
lea edx, [esp + 0x8c]
mov ecx, esp
mov dword [esp + 0x4c], esp
push ebx
push 1
push edx
push ecx
lea ecx, [esp + 0x1fc]
call fcn.00548ea0
lea ecx, [esp + 0xac]
call fcn.0060d330
sub esp, 0x24
lea ecx, [esp + 0x93]
mov eax, esp
mov dword [esp + 0x4c], esp
push ebx
push 1
push ecx
push eax
lea ecx, [esp + 0x1fc]
call fcn.00548ea0
lea ecx, [esp + 0xac]
call fcn.0060d330
sub esp, 0x24
lea eax, [esp + 0x9a]
mov edx, esp
mov dword [esp + 0x4c], esp
push ebx
push 1
push eax
push edx
lea ecx, [esp + 0x1fc]
call fcn.00548ea0
lea ecx, [esp + 0xac]
call fcn.0060d330
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push ecx
lea ecx, [esp + 0x90]
call fcn.0060d6b0
lea ecx, [esp + 0x30]
call fcn.006101a0
lea ecx, [esp + 0x2c]
call fcn.00610330
test ax, ax
jle 0x595e41
cmp bp, 1
jne 0x595b9e
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 + 0x30c], 0x22
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x70c43c
call fcn.0060ff10
mov ecx, 0x71b930
mov byte [esp + 0x30c], 7
call fcn.006115e0
push ecx
lea edx, [esp + 0x308]
mov ecx, esp
mov dword [esp + 0x2c], esp
push edx
call fcn.0060fe80
mov ecx, dword [0x71b93c]
call fcn.006206f0
lea edi, [esp + 0x4c]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebp, ecx
lea ecx, [esp + 0x18]
call fcn.00414860
cmp eax, ebp
jae 0x595b20
call fcn.0069788b
mov edi, dword [esp + 0x1c]
cmp edi, ebx
je 0x595b48
mov al, byte [edi - 1]
cmp al, bl
je 0x595b48
cmp al, 0xff
je 0x595b48
cmp ebp, ebx
jne 0x595b71
dec al
push ebx
lea ecx, [esp + 0x1c]
mov byte [edi - 1], al
call fcn.004138a0
jmp 0x595b9e
cmp ebp, ebx
jne 0x595b59
push 1
lea ecx, [esp + 0x1c]
call fcn.004138a0
jmp 0x595b9e
mov eax, dword [esp + 0x24]
cmp eax, 0x1f
ja 0x595b66
cmp eax, ebp
jae 0x595b7f
push 1
lea ecx, [esp + 0x1c]
call fcn.004138a0
push ebp
lea ecx, [esp + 0x1c]
call fcn.00414870
mov edi, dword [esp + 0x1c]
mov ecx, ebp
lea esi, [esp + 0x4c]
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 + 0x1c]
mov dword [esp + 0x20], ebp
mov byte [ecx + ebp], bl
xor ebp, ebp
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push 6
push 0x70c434
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
sub esp, 0x10
lea edx, [esp + 0x28]
mov ecx, esp
mov dword [esp + 0x38], esp
push edx
call fcn.00412ff0
push ecx
mov byte [esp + 0x310], 0x24
mov ecx, esp
mov dword [esp + 0x28], esp
push 6
push 0x7101d8
call fcn.0060ff10
mov ecx, dword [0x71b93c]
mov byte [esp + 0x310], 7
call fcn.006208f0
mov ecx, dword [0x71b93c]
call fcn.00620cd0
movsx eax, ax
sub eax, ebx
je 0x595c3f
dec eax
je case.default.0x5941c6
jmp 0x59589d
sub esp, 0x10
lea eax, [esp + 0x94]
mov ecx, esp
mov dword [esp + 0x38], esp
push eax
push 0x7101c8
call fcn.00413110
sub esp, 0x10
lea edx, [esp + 0xa5]
mov ecx, esp
mov dword [esp + 0x34], esp
push edx
push 0x71b8d8
mov byte [esp + 0x324], 0x25
call fcn.00413110
sub esp, 0x10
lea eax, [esp + 0xb6]
mov ecx, esp
mov dword [esp + 0x60], esp
push eax
push 0x7043e0
mov byte [esp + 0x334], 0x26
call fcn.00413110
sub esp, 0x10
lea edx, [esp + 0xc7]
mov ecx, esp
mov dword [esp + 0x30c], esp
push edx
push 0x71b8d8
mov byte [esp + 0x344], 0x27
call fcn.00413110
sub esp, 0x10
lea eax, [esp + 0x354]
mov esi, esp
mov dword [esp + 0x238], esp
push ecx
mov byte [esp + 0x350], 0x28
mov ecx, esp
mov dword [esp + 0xd4], esp
push eax
call fcn.0060fe80
push esi
call fcn.0060f170
sub esp, 8
mov byte [esp + 0x35c], 0x29
mov esi, esp
mov dword [esp + 0xe0], esp
push ecx
mov ecx, esp
mov dword [esp + 0xe4], esp
push 6
push 0x7101c0
call fcn.0060ff10
push esi
call fcn.0060f170
add esp, 8
lea ecx, [esp + 0x340]
mov byte [esp + 0x35c], 7
push ecx
mov ecx, 0x71b930
call fcn.006117f0
push eax
lea ecx, [esp + 0x3c]
mov byte [esp + 0x300], 0x2a
call fcn.004f1040
lea ecx, [esp + 0x2e0]
mov byte [esp + 0x2fc], 7
call fcn.0065d6a0
lea ecx, [esp + 0x38]
call fcn.00610a40
cmp ax, 2
je case.default.0x5941c6
lea edx, [esp + 0x2d0]
lea ecx, [esp + 0x38]
push edx
call fcn.00610a50
mov ecx, eax
mov byte [esp + 0x2fc], 0x2b
call fcn.004f1770
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x4c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov byte [esp + 0x2fc], 7
mov eax, ecx
mov esi, edi
mov edi, edx
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 + 0x2d0]
call fcn.004131d0
xor ecx, ecx
mov esi, 4
mov al, byte [esp + ecx + 0x4c]
cmp al, 0x60
jle 0x595de9
sub al, 0x20
mov byte [esp + ecx + 0x4c], al
mov dl, byte [esp + ecx + 0x4c]
mov byte [esp + ecx + 0x6b], dl
inc ecx
dec esi
jne 0x595ddb
xor ecx, ecx
mov esi, 4
mov al, byte [esp + ecx + 0x50]
cmp al, 0x60
jle 0x595e0a
sub al, 0x20
mov byte [esp + ecx + 0x50], al
mov al, byte [esp + ecx + 0x50]
mov byte [esp + ecx + 0x72], al
inc ecx
dec esi
jne 0x595dfc
xor ecx, ecx
mov esi, 4
mov al, byte [esp + ecx + 0x54]
cmp al, 0x60
jle 0x595e2b
sub al, 0x20
mov byte [esp + ecx + 0x54], al
mov dl, byte [esp + ecx + 0x54]
mov byte [esp + ecx + 0x79], dl
inc ecx
dec esi
jne 0x595e1d
mov ebp, 1
jmp 0x59589d
push ebx
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x8c], esp
push 6
push 0x7037f4
call fcn.0060ff10
push ecx
mov byte [esp + 0x30c], 0x23
mov ecx, esp
mov dword [esp + 0x1f8], esp
push 6
push 0x703840
call fcn.0060ff10
mov ecx, 0x71b930
mov byte [esp + 0x30c], 7
call fcn.006115e0
lea ecx, [esp + 0x34]
mov byte [esp + 0x2fc], 6
call fcn.0060ffb0
lea ecx, [esp + 0x18]
mov byte [esp + 0x2fc], 5
call fcn.004131d0
lea ecx, [esp + 0x1ec]
mov byte [esp + 0x2fc], 4
call fcn.00548470
lea ecx, [esp + 0x1c8]
mov byte [esp + 0x2fc], 3
call fcn.00548470
lea ecx, [esp + 0x2c]
mov byte [esp + 0x2fc], 2
call fcn.0060ffb0
lea ecx, [esp + 0x88]
mov byte [esp + 0x2fc], 1
call fcn.0060d280
lea ecx, [esp + 0x38]
mov byte [esp + 0x2fc], bl
call fcn.0065d6a0
lea ecx, [esp + 0x304]
mov dword [esp + 0x2fc], 0xffffffff
call fcn.0060ffb0
xor ax, ax
jmp 0x5953c4