Function at 0x597af4
Capabilities:
Authenticate hmac
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffdd8
push ebx
push esi
push edi
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
xor eax, eax
xor edx, edx
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], edx
xor ecx, ecx
mov dword [ebp - 0x20], ecx
xor ecx, ecx
mov eax, dword [ebp - 4]
mov edx, dword [eax]
xor eax, eax
mov dword [ebp - 0x48], edx
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x50], eax
xor eax, eax
mov edx, dword [ebp - 8]
mov ebx, dword [edx]
xor edx, edx
mov dword [ebp - 0x54], ebx
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x64], edx
mov ecx, dword [ebp - 0xc]
xor eax, eax
xor edx, edx
mov ecx, dword [ecx]
mov dword [ebp - 0x68], ecx
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x74], edx
xor ecx, ecx
mov dword [ebp - 0x78], ecx
xor eax, eax
mov dword [ebp - 0x7c], eax
test byte [ebp - 0x47], 8
setne dl
and edx, 1
mov dword [ebp - 0x84], edx
mov edx, 0xfffffffe
test byte [ebp - 0x47], 2
setne cl
and ecx, 1
mov dword [ebp - 0x24], ecx
mov eax, dword [ebp - 0x24]
xor eax, 1
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x2c], edx
test byte [ebp - 0x48], 1
je 0x597b9f
mov eax, pe_nt_image_headers32
jmp 0x597ba1
xor eax, eax
mov dword [ebp - 0x3c], eax
mov edx, dword [ebp - 0x68]
movzx esi, byte [edx]
test esi, esi
jne 0x597bc5
cmp dword [ebp - 0x70], 0
je 0x597bc5
mov eax, dword [ebp - 0x70]
xor edx, edx
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x70], edx
mov ecx, dword [ebp - 0x68]
movzx esi, byte [ecx]
cmp dword [ebp + 8], 0
je 0x597c56
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 0x10]
add edx, 0xf9c
cmp ebx, edx
jbe 0x597bed
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0x34
jmp 0x59bc36
cmp ebx, dword [ebp - 0x54]
jae 0x597bf5
mov ebx, dword [ebp - 0x54]
mov eax, dword [ebp + 8]
mov ecx, ebx
mov edx, 0x7fffffeb
sub edx, dword [eax]
sub ecx, dword [ebp - 0x54]
cmp edx, ecx
jge 0x597c16
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x14
jmp 0x59bc36
mov edx, ebx
mov ecx, dword [ebp + 8]
sub edx, dword [ebp - 0x54]
add dword [ecx], edx
cmp dword [ebp - 0x74], 0
je 0x597c4e
mov ecx, dword [ebp - 0x74]
cmp ecx, dword [ebp - 0x58]
jbe 0x597c51
mov ecx, ebx
sub ecx, dword [ebp - 0x74]
mov edx, dword [ebp - 0x74]
mov eax, dword [ebp - 0x58]
call fcn.005953d8
mov ecx, dword [ebp - 0x74]
mov eax, dword [ebp - 0x58]
sub ecx, dword [ebp - 0x58]
mov dword [ebp - 0x74], eax
sub ebx, ecx
jmp 0x597c51
mov ebx, dword [ebp - 0x58]
mov dword [ebp - 0x54], ebx
jmp 0x597c79
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0xc]
mov edx, dword [eax + 0x24]
mov eax, dword [ecx + 0x10]
add eax, 0xf9c
cmp edx, eax
jbe 0x597c79
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x34
jmp 0x59bc36
cmp dword [ebp - 0x60], 0
je 0x597ce3
test esi, esi
je 0x597ce3
cmp esi, 0x5c
jne 0x597ca3
mov ecx, dword [ebp - 0x68]
movzx ecx, byte [ecx + 1]
cmp ecx, 0x45
jne 0x597ca3
xor eax, eax
mov dword [ebp - 0x60], eax
inc dword [ebp - 0x68]
jmp 0x59bc2e
cmp dword [ebp - 0x78], 0
je 0x597cc2
cmp dword [ebp + 8], 0
jne 0x597cbd
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x78]
call fcn.00596cf8
xor ecx, ecx
mov dword [ebp - 0x78], ecx
test byte [ebp - 0x47], 0x40
je 0x59baf7
mov dword [ebp - 0x78], ebx
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp - 0x68]
mov eax, ebx
call fcn.00596cc0
mov ebx, eax
jmp 0x59baf7
cmp esi, 0x2a
je 0x597d08
cmp esi, 0x2b
je 0x597d08
cmp esi, 0x3f
je 0x597d08
cmp esi, 0x7b
jne 0x597d04
mov eax, dword [ebp - 0x68]
inc eax
call fcn.00595b58
test eax, eax
jne 0x597d08
xor edi, edi
jmp 0x597d0d
mov edi, 1
test edi, edi
jne 0x597d3b
cmp dword [ebp - 0x78], 0
je 0x597d3b
mov eax, dword [ebp - 0x4c]
add dword [ebp - 0x4c], 0xffffffff
test eax, eax
jg 0x597d3b
cmp dword [ebp + 8], 0
jne 0x597d36
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x78]
call fcn.00596cf8
xor edx, edx
mov dword [ebp - 0x78], edx
test byte [ebp - 0x48], 8
je 0x597e13
mov ecx, dword [ebp + 0xc]
mov ecx, dword [ecx + 0xc]
test byte [ecx + esi], 1
jne 0x59bc2e
cmp esi, 0x23
jne 0x597e13
jmp 0x597df6
mov eax, dword [ebp + 0xc]
cmp dword [eax + 0x58], 0
je 0x597da8
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + 0x1c]
cmp ecx, dword [ebp - 0x68]
jbe 0x597d9d
mov eax, dword [ebp + 0xc]
add eax, 0x5c
push eax
mov edx, dword [ebp - 0x84]
push edx
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0xc]
mov edx, dword [eax + 0x58]
mov eax, dword [ebp - 0x68]
mov ecx, dword [ecx + 0x1c]
call fcn.005ac3d8
test eax, eax
jne 0x597da1
xor edx, edx
jmp 0x597de6
mov edx, 1
jmp 0x597de6
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 0xc]
mov ecx, dword [ecx + 0x1c]
sub ecx, dword [eax + 0x5c]
cmp ecx, dword [ebp - 0x68]
jb 0x597ddd
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp + 0xc]
mov cl, byte [edx]
cmp cl, byte [eax + 0x60]
jne 0x597ddd
mov edx, dword [ebp + 0xc]
cmp dword [edx + 0x5c], 1
je 0x597de1
mov ecx, dword [ebp - 0x68]
mov edx, dword [ebp + 0xc]
mov al, byte [ecx + 1]
cmp al, byte [edx + 0x61]
je 0x597de1
xor edx, edx
jmp 0x597de6
mov edx, 1
test edx, edx
je 0x597df6
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0x5c]
dec ecx
add dword [ebp - 0x68], ecx
jmp 0x597e05
inc dword [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
cmp byte [ecx], 0
jne 0x597d63
mov eax, dword [ebp - 0x68]
cmp byte [eax], 0
jne 0x59bc2e
xor esi, esi
test byte [ebp - 0x47], 0x40
je 0x597e2f
test edi, edi
jne 0x597e2f
mov dword [ebp - 0x78], ebx
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp - 0x68]
mov eax, ebx
call fcn.00596cc0
mov ebx, eax
mov ecx, esi
cmp ecx, 0x3f
jg 0x597e7d
je 0x5992fd
cmp ecx, 0x29
jg 0x597e5f
je 0x597eb5
sub ecx, 1
jb 0x597eb5
sub ecx, 0x23
je 0x597f2c
sub ecx, 4
je 0x59a17d
jmp 0x59baf7
sub ecx, 0x2a
je 0x5992df
dec ecx
je 0x5992ed
sub ecx, 3
je 0x597f3a
jmp 0x59baf7
cmp ecx, 0x5e
jg 0x597ea4
je 0x597f0b
sub ecx, 0x5b
je 0x597f8a
dec ecx
je 0x59b711
dec ecx
je 0x597f6a
jmp 0x59baf7
sub ecx, 0x7b
je 0x5992b3
dec ecx
je 0x597eb5
jmp 0x59baf7
mov eax, dword [ebp + 0x18]
mov edx, dword [ebp - 0x2c]
mov dword [eax], edx
mov ecx, dword [ebp + 0x14]
mov eax, dword [ebp - 0x30]
mov dword [ecx], eax
mov edx, dword [ebp - 8]
mov dword [edx], ebx
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x68]
mov dword [ecx], eax
cmp dword [ebp + 8], 0
je 0x597f01
mov edx, dword [ebp + 8]
mov eax, 0x7fffffeb
sub eax, dword [edx]
mov edx, ebx
sub edx, dword [ebp - 0x54]
cmp eax, edx
jge 0x597ef9
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0x14
jmp 0x59bc36
sub ebx, dword [ebp - 0x54]
mov ecx, dword [ebp + 8]
add dword [ecx], ebx
mov eax, 1
jmp 0x59bc40
test byte [ebp - 0x48], 2
je 0x597f1e
cmp dword [ebp - 0x2c], 0xfffffffe
jne 0x597f1e
mov dword [ebp - 0x2c], 0xffffffff
xor edx, edx
mov dword [ebp - 0x74], edx
mov byte [ebx], 0x1a
inc ebx
jmp 0x59bc2e
xor ecx, ecx
mov dword [ebp - 0x74], ecx
mov byte [ebx], 0x1b
inc ebx
jmp 0x59bc2e
cmp dword [ebp - 0x2c], 0xfffffffe
jne 0x597f47
mov dword [ebp - 0x2c], 0xffffffff
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x38], eax
mov edx, dword [ebp - 0x30]
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x74], ebx
test byte [ebp - 0x48], 4
je 0x597f60
mov cl, 0xd
jmp 0x597f62
mov cl, 0xc
mov byte [ebx], cl
inc ebx
jmp 0x59bc2e
mov eax, dword [ebp + 0xc]
test byte [eax + 0x47], 2
je 0x59baf7
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x40
jmp 0x59bc36
mov dword [ebp - 0x74], ebx
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx + 1]
cmp eax, 0x3a
je 0x597fb4
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx + 1]
cmp ecx, 0x2e
je 0x597fb4
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x3d
jne 0x597fe6
lea edx, [ebp - 0x6c]
mov eax, dword [ebp - 0x68]
call fcn.00596b50
test eax, eax
je 0x597fe6
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx + 1]
cmp eax, 0x3a
jne 0x597fd7
mov edx, 0xd
jmp 0x597fdc
mov edx, 0x1f
mov eax, dword [ebp + 0x1c]
mov dword [eax], edx
jmp 0x59bc36
xor ecx, ecx
mov dword [ebp - 0x94], ecx
inc dword [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
movzx esi, byte [ecx]
cmp esi, 0x5c
jne 0x59802b
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x45
jne 0x59800e
inc dword [ebp - 0x68]
jmp 0x597fee
mov edx, 0x5ebd65
mov eax, dword [ebp - 0x68]
inc eax
mov ecx, 3
call fcn.005955f8
test eax, eax
jne 0x598045
add dword [ebp - 0x68], 3
jmp 0x597fee
cmp dword [ebp - 0x94], 0
jne 0x598045
cmp esi, 0x5e
jne 0x598045
mov dword [ebp - 0x94], 1
jmp 0x597fee
cmp esi, 0x5d
jne 0x59807d
mov ecx, dword [ebp + 0xc]
test byte [ecx + 0x47], 2
je 0x59807d
cmp dword [ebp - 0x94], 0
je 0x598060
mov al, 0xd
jmp 0x598062
mov al, 0x73
mov byte [ebx], al
inc ebx
cmp dword [ebp - 0x2c], 0xfffffffe
jne 0x598072
mov dword [ebp - 0x2c], 0xffffffff
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x38], edx
jmp 0x59bc2e
xor ecx, ecx
lea eax, [ebp - 0x208]
mov dword [ebp - 0x98], ecx
xor ecx, ecx
mov dword [ebp - 0xa8], ecx
mov ecx, 0x20
mov dword [ebp - 0xac], 0xffffffff
xor edx, edx
call fcn.005953e8
xor eax, eax
lea edi, [ebx + 5]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x88], edi
test esi, esi
je 0x5990c2
cmp dword [ebp - 0x84], 0
je 0x598185
cmp esi, 0x7f
jle 0x598185
mov eax, dword [ebp - 0x68]
movzx esi, byte [eax]
cmp esi, 0xc0
jl 0x598185
mov eax, esi
and eax, 0x3f
xor edx, edx
mov dl, byte [eax + 0x5ec22f]
mov dword [ebp - 0xe0], edx
mov ecx, dword [ebp - 0xe0]
add ecx, ecx
lea ecx, [ecx + ecx*2]
mov dword [ebp - 0xe4], ecx
mov ecx, dword [ebp - 0xe4]
mov eax, dword [ebp - 0xe0]
and esi, dword [eax*4 + 0x5ebdf8]
shl esi, cl
mov dword [ebp - 0xdc], 1
mov edx, dword [ebp - 0x68]
lea ecx, [edx + 1]
mov dword [ebp - 0x1e4], ecx
mov eax, dword [ebp - 0xdc]
cmp eax, dword [ebp - 0xe0]
jg 0x59817c
sub dword [ebp - 0xe4], 6
mov ecx, dword [ebp - 0xe4]
mov eax, dword [ebp - 0x1e4]
xor edx, edx
mov dl, byte [eax]
and edx, 0x3f
shl edx, cl
or esi, edx
inc dword [ebp - 0xdc]
inc dword [ebp - 0x1e4]
mov ecx, dword [ebp - 0xdc]
cmp ecx, dword [ebp - 0xe0]
jle 0x598144
mov eax, dword [ebp - 0xe0]
add dword [ebp - 0x68], eax
cmp dword [ebp + 8], 0
je 0x59819c
sub edi, dword [ebp - 0x88]
mov edx, dword [ebp + 8]
add dword [edx], edi
mov edi, dword [ebp - 0x88]
cmp dword [ebp - 0x60], 0
je 0x5981ce
cmp esi, 0x5c
jne 0x598b70
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x45
jne 0x598b70
xor ecx, ecx
mov dword [ebp - 0x60], ecx
inc dword [ebp - 0x68]
jmp 0x599084
cmp esi, 0x5b
jne 0x5984c6
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx + 1]
cmp eax, 0x3a
je 0x598202
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx + 1]
cmp ecx, 0x2e
je 0x598202
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x3d
jne 0x5984c6
lea edx, [ebp - 0x6c]
mov eax, dword [ebp - 0x68]
call fcn.00596b50
test eax, eax
je 0x5984c6
xor ecx, ecx
mov dword [ebp - 0xe8], ecx
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 8]
mov dword [ebp - 0xf8], eax
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx + 1]
cmp ecx, 0x3a
je 0x598244
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x1f
jmp 0x59bc36
add dword [ebp - 0x68], 2
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x5e
jne 0x59826b
mov dword [ebp - 0xe8], 1
mov dword [ebp - 0x98], 1
inc dword [ebp - 0x68]
mov edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x68]
sub edx, dword [ebp - 0x68]
call fcn.00596ba4
mov dword [ebp - 0xec], eax
cmp dword [ebp - 0xec], 0
jge 0x598296
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x1e
jmp 0x59bc36
test byte [ebp - 0x48], 1
je 0x5982ad
cmp dword [ebp - 0xec], 2
jg 0x5982ad
xor edx, edx
mov dword [ebp - 0xec], edx
test byte [ebp - 0x45], 0x20
je 0x5982fe
cmp dword [ebp - 0xe8], 0
je 0x5982c3
mov ecx, 0xe
jmp 0x5982c5
xor ecx, ecx
add ecx, dword [ebp - 0xec]
mov dword [ebp - 0xfc], ecx
mov eax, dword [ebp - 0xfc]
cmp dword [eax*4 + 0x5eb0e4], 0
je 0x5982fe
mov edx, dword [ebp - 0x6c]
inc edx
mov dword [ebp - 0x70], edx
mov ecx, dword [ebp - 0xfc]
mov eax, dword [ecx*4 + 0x5eb0e4]
dec eax
mov dword [ebp - 0x68], eax
jmp 0x599084
mov edx, dword [ebp - 0xec]
lea eax, [ebp - 0x228]
lea edx, [edx + edx*2]
mov dword [ebp - 0xec], edx
mov ecx, dword [ebp - 0xec]
mov edx, dword [ecx*4 + 0x5eb024]
mov ecx, 0x20
add edx, dword [ebp - 0xf8]
call fcn.005953c8
mov eax, dword [ebp - 0xec]
mov edx, dword [eax*4 + 0x5eb028]
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xec]
mov eax, dword [ecx*4 + 0x5eb02c]
mov dword [ebp - 0xf4], eax
cmp dword [ebp - 0xf0], 0
jl 0x5983fa
cmp dword [ebp - 0xf4], 0
jl 0x5983b3
xor esi, esi
lea eax, [ebp - 0x228]
mov dword [ebp - 0x1e8], eax
mov edx, dword [ebp - 0xf8]
mov ecx, dword [ebp - 0xf0]
lea ecx, [edx + ecx]
mov dword [ebp - 0x1e4], ecx
mov eax, dword [ebp - 0x1e4]
mov dl, byte [eax]
mov eax, dword [ebp - 0x1e8]
or byte [eax], dl
inc esi
inc dword [ebp - 0x1e8]
inc dword [ebp - 0x1e4]
cmp esi, 0x20
jl 0x59838f
jmp 0x5983fa
xor esi, esi
lea eax, [ebp - 0x228]
mov dword [ebp - 0x1e4], eax
mov edx, dword [ebp - 0xf8]
mov ecx, dword [ebp - 0xf0]
lea ecx, [edx + ecx]
mov dword [ebp - 0x1e8], ecx
mov eax, dword [ebp - 0x1e8]
inc esi
mov dl, byte [eax]
mov eax, dword [ebp - 0x1e4]
not dl
and byte [eax], dl
inc dword [ebp - 0x1e4]
inc dword [ebp - 0x1e8]
cmp esi, 0x20
jl 0x5983d6
cmp dword [ebp - 0xf4], 0
jge 0x598409
neg dword [ebp - 0xf4]
cmp dword [ebp - 0xf4], 1
jne 0x59841b
and byte [ebp - 0x227], 0xc3
jmp 0x59842b
cmp dword [ebp - 0xf4], 2
jne 0x59842b
and byte [ebp - 0x21d], 0x7f
cmp dword [ebp - 0xe8], 0
je 0x598474
xor esi, esi
lea eax, [ebp - 0x208]
mov dword [ebp - 0x1e8], eax
lea edx, [ebp - 0x228]
mov dword [ebp - 0x1e4], edx
mov ecx, dword [ebp - 0x1e4]
mov eax, dword [ebp - 0x1e8]
inc esi
mov cl, byte [ecx]
not cl
or byte [eax], cl
inc dword [ebp - 0x1e8]
inc dword [ebp - 0x1e4]
cmp esi, 0x20
jl 0x59844e
jmp 0x5984b0
xor esi, esi
lea eax, [ebp - 0x208]
mov dword [ebp - 0x1e4], eax
lea edx, [ebp - 0x228]
mov dword [ebp - 0x1e8], edx
mov ecx, dword [ebp - 0x1e8]
mov eax, dword [ebp - 0x1e4]
inc esi
mov cl, byte [ecx]
or byte [eax], cl
inc dword [ebp - 0x1e4]
inc dword [ebp - 0x1e8]
cmp esi, 0x20
jl 0x59848e
mov edx, dword [ebp - 0x6c]
inc edx
mov dword [ebp - 0x68], edx
mov dword [ebp - 0xa8], 0xa
jmp 0x599084
cmp esi, 0x5c
jne 0x598b70
mov ecx, dword [ebp - 0x48]
push ecx
push 1
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0x34]
lea eax, [ebp - 0x68]
mov edx, dword [ebp + 0x1c]
call fcn.00595624
mov esi, eax
mov eax, dword [ebp + 0x1c]
cmp dword [eax], 0
jne 0x59bc36
mov edx, esi
neg edx
cmp edx, 5
jne 0x598504
mov esi, 8
jmp 0x59854b
mov eax, esi
neg eax
cmp eax, 0x1a
jne 0x59853e
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx + 1]
cmp ecx, 0x5c
jne 0x598530
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx + 2]
cmp eax, 0x45
jne 0x598530
add dword [ebp - 0x68], 2
jmp 0x599084
mov dword [ebp - 0x60], 1
jmp 0x599084
mov edx, esi
neg edx
cmp edx, 0x19
je 0x599084
test esi, esi
jge 0x598b70
mov ecx, dword [ebp + 0xc]
mov edx, esi
neg edx
mov eax, dword [ecx + 8]
add edx, 0xfffffffa
mov dword [ebp - 0x100], eax
add dword [ebp - 0xa8], 2
cmp edx, 0x1c
ja case.0x59857c.6
mov dl, byte [edx + 0x598583]
jmp dword [edx*4 + 0x5985a0]
neg esi
mov ecx, dword [ebp - 0x68]
mov dword [ebp - 0x70], ecx
mov eax, dword [esi*4 + 0x5eb058]
dec eax
mov dword [ebp - 0x68], eax
sub dword [ebp - 0xa8], 2
jmp 0x599084
xor esi, esi
lea eax, [ebp - 0x208]
mov dword [ebp - 0x1e8], eax
mov edx, dword [ebp - 0x100]
lea ecx, [edx + 0x40]
mov dword [ebp - 0x1e4], ecx
mov ecx, dword [ebp - 0x1e4]
mov edx, dword [ebp - 0x1e8]
inc esi
mov al, byte [ecx]
or byte [edx], al
inc dword [ebp - 0x1e8]
inc dword [ebp - 0x1e4]
cmp esi, 0x20
jl 0x598610
jmp 0x599084
mov dword [ebp - 0x98], 1
xor esi, esi
lea eax, [ebp - 0x208]
mov dword [ebp - 0x1e4], eax
mov edx, dword [ebp - 0x100]
lea ecx, [edx + 0x40]
mov dword [ebp - 0x1e8], ecx
mov ecx, dword [ebp - 0x1e8]
mov edx, dword [ebp - 0x1e4]
inc esi
mov al, byte [ecx]
not al
or byte [edx], al
inc dword [ebp - 0x1e4]
inc dword [ebp - 0x1e8]
cmp esi, 0x20
jl 0x59865e
jmp 0x599084
xor esi, esi
lea eax, [ebp - 0x208]
mov dword [ebp - 0x1e8], eax
mov edx, dword [ebp - 0x100]
lea ecx, [edx + 0xa0]
mov dword [ebp - 0x1e4], ecx
mov ecx, dword [ebp - 0x1e4]
mov edx, dword [ebp - 0x1e8]
inc esi
mov al, byte [ecx]
or byte [edx], al
inc dword [ebp - 0x1e8]
inc dword [ebp - 0x1e4]
cmp esi, 0x20
jl 0x5986a7
jmp 0x599084
mov dword [ebp - 0x98], 1
xor esi, esi
lea eax, [ebp - 0x208]
mov dword [ebp - 0x1e4], eax
mov edx, dword [ebp - 0x100]
lea ecx, [edx + 0xa0]
mov dword [ebp - 0x1e8], ecx
mov ecx, dword [ebp - 0x1e8]
mov edx, dword [ebp - 0x1e4]
inc esi
mov al, byte [ecx]
not al
or byte [edx], al
inc dword [ebp - 0x1e4]
inc dword [ebp - 0x1e8]
cmp esi, 0x20
jl 0x5986f8
jmp 0x599084
xor esi, esi
lea eax, [ebp - 0x208]
mov dword [ebp - 0x1e8], eax
mov edx, dword [ebp - 0x100]
mov ecx, edx
mov dword [ebp - 0x1e4], ecx
mov ecx, dword [ebp - 0x1e4]
mov edx, dword [ebp - 0x1e8]
inc esi
mov al, byte [ecx]
or byte [edx], al
inc dword [ebp - 0x1e8]
inc dword [ebp - 0x1e4]
cmp esi, 0x20
jl 0x59873d
and byte [ebp - 0x207], 0xf7
jmp 0x599084
mov dword [ebp - 0x98], 1
xor esi, esi
lea eax, [ebp - 0x208]
mov dword [ebp - 0x1e4], eax
mov edx, dword [ebp - 0x100]
mov ecx, edx
mov dword [ebp - 0x1e8], ecx
mov ecx, dword [ebp - 0x1e8]
mov edx, dword [ebp - 0x1e4]
inc esi
mov al, byte [ecx]
not al
or byte [edx], al
inc dword [ebp - 0x1e4]
inc dword [ebp - 0x1e8]
cmp esi, 0x20
jl 0x598791
or byte [ebp - 0x207], 8
jmp 0x599084
or byte [ebp - 0x207], 2
or byte [ebp - 0x204], 1
or byte [ebp - 0x1f4], 1
cmp dword [ebp - 0x84], 0
je 0x599084
mov dword [ebp - 0x80], 1
mov byte [edi], 1
inc edi
mov edx, edi
mov eax, 0x1680
call fcn.0059cd20
add edi, eax
mov eax, 0x180e
mov byte [edi], 1
inc edi
mov edx, edi
call fcn.0059cd20
add edi, eax
mov eax, 0x2000
mov byte [edi], 2
inc edi
mov edx, edi
call fcn.0059cd20
add edi, eax
mov eax, 0x200a
mov edx, edi
call fcn.0059cd20
add edi, eax
mov eax, 0x202f
mov byte [edi], 1
inc edi
mov edx, edi
call fcn.0059cd20
add edi, eax
mov eax, 0x205f
mov byte [edi], 1
inc edi
mov edx, edi
call fcn.0059cd20
add edi, eax
mov eax, 0x3000
mov byte [edi], 1
inc edi
mov edx, edi
call fcn.0059cd20
add edi, eax
jmp 0x599084
xor esi, esi
lea eax, [ebp - 0x208]
mov dword [ebp - 0x1e4], eax
mov dword [ebp - 0x104], 0xff
mov edx, esi
dec edx
je 0x598892
sub edx, 3
je 0x59889b
sub edx, 0x10
je 0x5988a4
jmp 0x5988ab
xor dword [ebp - 0x104], 2
jmp 0x5988ab
xor dword [ebp - 0x104], 1
jmp 0x5988ab
xor dword [ebp - 0x104], 1
mov cl, byte [ebp - 0x104]
mov eax, dword [ebp - 0x1e4]
or byte [eax], cl
inc esi
inc dword [ebp - 0x1e4]
cmp esi, 0x20
jl 0x598877
cmp dword [ebp - 0x84], 0
je 0x599084
mov dword [ebp - 0x80], 1
mov byte [edi], 2
inc edi
mov edx, edi
mov eax, pe_nt_image_headers32
call fcn.0059cd20
add edi, eax
mov eax, 0x167f
mov edx, edi
call fcn.0059cd20
add edi, eax
mov eax, 0x1681
mov byte [edi], 2
inc edi
mov edx, edi
call fcn.0059cd20
add edi, eax
mov eax, 0x180d
mov edx, edi
call fcn.0059cd20
add edi, eax
mov eax, 0x180f
mov byte [edi], 2
inc edi
mov edx, edi
call fcn.0059cd20
add edi, eax
mov eax, 0x1fff
mov edx, edi
call fcn.0059cd20
add edi, eax
mov eax, 0x200b
mov byte [edi], 2
inc edi
mov edx, edi
call fcn.0059cd20
add edi, eax
mov eax, 0x202e
mov edx, edi
call fcn.0059cd20
add edi, eax
mov eax, 0x2030
mov byte [edi], 2
inc edi
mov edx, edi
call fcn.0059cd20
add edi, eax
mov eax, 0x205e
mov edx, edi
call fcn.0059cd20
add edi, eax
mov eax, 0x2060
mov byte [edi], 2
inc edi
mov edx, edi
call fcn.0059cd20
add edi, eax
mov eax, 0x2fff
mov edx, edi
call fcn.0059cd20
add edi, eax
mov eax, 0x3001
mov byte [edi], 2
inc edi
mov edx, edi
call fcn.0059cd20
add edi, eax
mov eax, 0x7fffffff
mov edx, edi
call fcn.0059cd20
add edi, eax
jmp 0x599084
or byte [ebp - 0x207], 4
or byte [ebp - 0x207], 8
or byte [ebp - 0x207], 0x10
or byte [ebp - 0x207], 0x20
or byte [ebp - 0x1f8], 0x20
cmp dword [ebp - 0x84], 0
je 0x599084
mov dword [ebp - 0x80], 1
mov byte [edi], 2
inc edi
mov edx, edi
mov eax, 0x2028
call fcn.0059cd20
add edi, eax
mov eax, 0x2029
mov edx, edi
call fcn.0059cd20
add edi, eax
jmp 0x599084
xor esi, esi
lea eax, [ebp - 0x208]
mov dword [ebp - 0x1e4], eax
mov dword [ebp - 0x108], 0xff
mov edx, esi
dec edx
je 0x598a3e
sub edx, 0xf
je 0x598a5c
jmp 0x598a63
xor dword [ebp - 0x108], 4
xor dword [ebp - 0x108], 8
xor dword [ebp - 0x108], 0x10
xor dword [ebp - 0x108], 0x20
jmp 0x598a63
xor dword [ebp - 0x108], 0x20
mov cl, byte [ebp - 0x108]
mov eax, dword [ebp - 0x1e4]
or byte [eax], cl
inc esi
inc dword [ebp - 0x1e4]
cmp esi, 0x20
jl 0x598a28
cmp dword [ebp - 0x84], 0
je 0x599084
mov dword [ebp - 0x80], 1
mov byte [edi], 2
inc edi
mov edx, edi
mov eax, pe_nt_image_headers32
call fcn.0059cd20
add edi, eax
mov eax, 0x2027
mov edx, edi
call fcn.0059cd20
add edi, eax
mov eax, 0x2029
mov byte [edi], 2
inc edi
mov edx, edi
call fcn.0059cd20
add edi, eax
mov eax, 0x7fffffff
mov edx, edi
call fcn.0059cd20
add edi, eax
jmp 0x599084
mov edx, dword [ebp + 0x1c]
lea ecx, [ebp - 0x110]
push edx
lea edx, [ebp - 0x10c]
lea eax, [ebp - 0x68]
call fcn.00595a34
mov dword [ebp - 0x114], eax
cmp dword [ebp - 0x114], 0
jl 0x59bc36
mov dword [ebp - 0x80], 1
neg esi
cmp esi, 0x10
sete cl
and ecx, 1
cmp ecx, dword [ebp - 0x10c]
je 0x598b1f
mov cl, 3
jmp 0x598b21
mov cl, 4
mov byte [edi], cl
inc edi
mov al, byte [ebp - 0x114]
mov byte [edi], al
inc edi
mov dl, byte [ebp - 0x110]
mov byte [edi], dl
inc edi
sub dword [ebp - 0xa8], 2
jmp 0x599084
test byte [ebp - 0x48], 0x40
je 0x598b56
mov eax, dword [ebp + 0x1c]
mov dword [eax], 7
jmp 0x59bc36
sub dword [ebp - 0xa8], 2
mov edx, dword [ebp - 0x68]
movzx esi, byte [edx]
jmp 0x598b70
xor eax, eax
mov dword [ebp - 0x60], eax
add dword [ebp - 0x68], 2
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx + 1]
cmp ecx, 0x5c
jne 0x598b8a
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx + 2]
cmp eax, 0x45
je 0x598b67
mov edx, dword [ebp - 0x68]
cmp esi, 0xd
mov dword [ebp - 0xd8], edx
je 0x598b9d
cmp esi, 0xa
jne 0x598ba4
mov ecx, dword [ebp + 0xc]
or dword [ecx + 0x48], 0x20
cmp dword [ebp - 0x60], 0
jne 0x598f97
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x2d
jne 0x598f97
add dword [ebp - 0x68], 2
jmp 0x598bc9
add dword [ebp - 0x68], 2
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x5c
jne 0x598c10
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx + 1]
cmp ecx, 0x45
je 0x598bc5
jmp 0x598c10
add dword [ebp - 0x68], 2
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x5c
jne 0x598c07
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx + 1]
cmp eax, 0x45
jne 0x598c07
add dword [ebp - 0x68], 2
jmp 0x598c10
mov dword [ebp - 0x60], 1
jmp 0x598c29
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x5c
jne 0x598c29
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x51
je 0x598be4
mov ecx, dword [ebp - 0x68]
cmp byte [ecx], 0
je 0x598c43
cmp dword [ebp - 0x60], 0
jne 0x598c51
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x5d
jne 0x598c51
mov ecx, dword [ebp - 0xd8]
mov dword [ebp - 0x68], ecx
jmp 0x598f97
cmp dword [ebp - 0x84], 0
je 0x598d20
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax]
mov dword [ebp - 0x118], edx
cmp dword [ebp - 0x118], 0xc0
jl 0x598d2d
mov ecx, dword [ebp - 0x118]
and ecx, 0x3f
xor eax, eax
mov al, byte [ecx + 0x5ec22f]
mov dword [ebp - 0x120], eax
mov edx, dword [ebp - 0x120]
add edx, edx
lea edx, [edx + edx*2]
mov dword [ebp - 0x124], edx
mov ecx, dword [ebp - 0x124]
mov eax, dword [ebp - 0x120]
mov edx, dword [eax*4 + 0x5ebdf8]
and edx, dword [ebp - 0x118]
shl edx, cl
mov dword [ebp - 0x118], edx
mov dword [ebp - 0x11c], 1
mov ecx, dword [ebp - 0x11c]
cmp ecx, dword [ebp - 0x120]
jg 0x598d15
sub dword [ebp - 0x124], 6
mov eax, dword [ebp - 0x68]
mov edx, dword [ebp - 0x11c]
mov ecx, dword [ebp - 0x124]
movzx eax, byte [eax + edx]
and eax, 0x3f
shl eax, cl
or dword [ebp - 0x118], eax
inc dword [ebp - 0x11c]
mov edx, dword [ebp - 0x11c]
cmp edx, dword [ebp - 0x120]
jle 0x598cdc
mov ecx, dword [ebp - 0x120]
add dword [ebp - 0x68], ecx
jmp 0x598d2d
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx]
mov dword [ebp - 0x118], eax
cmp dword [ebp - 0x60], 0
jne 0x598d91
cmp dword [ebp - 0x118], 0x5c
jne 0x598d91
mov edx, dword [ebp - 0x48]
lea eax, [ebp - 0x68]
push edx
push 1
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 0x1c]
mov ecx, dword [ecx + 0x34]
call fcn.00595624
mov dword [ebp - 0x118], eax
mov ecx, dword [ebp + 0x1c]
cmp dword [ecx], 0
jne 0x59bc36
cmp dword [ebp - 0x118], 0
jge 0x598d91
cmp dword [ebp - 0x118], 0xfffffffb
jne 0x598d83
mov dword [ebp - 0x118], 8
jmp 0x598d91
mov eax, dword [ebp - 0xd8]
mov dword [ebp - 0x68], eax
jmp 0x598f97
cmp esi, dword [ebp - 0x118]
jle 0x598da7
mov edx, dword [ebp + 0x1c]
mov dword [edx], 8
jmp 0x59bc36
cmp esi, dword [ebp - 0x118]
je 0x598f97
cmp dword [ebp - 0x118], 0xd
je 0x598dc5
cmp dword [ebp - 0x118], 0xa
jne 0x598dcc
mov ecx, dword [ebp + 0xc]
or dword [ecx + 0x48], 0x20
cmp dword [ebp - 0x84], 0
je 0x598f01
cmp dword [ebp - 0x118], 0xff
jg 0x598dfc
test byte [ebp - 0x48], 1
je 0x598f01
cmp dword [ebp - 0x118], 0x7f
jle 0x598f01
mov dword [ebp - 0x80], 1
test byte [ebp - 0x48], 1
je 0x598ede
mov dword [ebp - 0x130], esi
mov eax, dword [ebp - 0x118]
mov dword [ebp - 0x134], eax
jmp 0x598eb8
mov edx, dword [ebp - 0x128]
cmp edx, esi
jb 0x598e3c
mov ecx, dword [ebp - 0x12c]
cmp ecx, dword [ebp - 0x118]
jbe 0x598eb8
cmp esi, dword [ebp - 0x128]
jbe 0x598e57
mov eax, esi
dec eax
cmp eax, dword [ebp - 0x12c]
ja 0x598e57
mov esi, dword [ebp - 0x128]
jmp 0x598eb8
mov eax, dword [ebp - 0x118]
cmp eax, dword [ebp - 0x12c]
jae 0x598e82
mov edx, dword [ebp - 0x118]
inc edx
cmp edx, dword [ebp - 0x128]
jb 0x598e82
mov ecx, dword [ebp - 0x12c]
mov dword [ebp - 0x118], ecx
jmp 0x598eb8
mov ecx, dword [ebp - 0x128]
cmp ecx, dword [ebp - 0x12c]
jne 0x598e96
mov byte [edi], 1
inc edi
jmp 0x598ea9
mov byte [edi], 2
inc edi
mov edx, edi
mov eax, dword [ebp - 0x128]
call fcn.0059cd20
add edi, eax
mov edx, edi
mov eax, dword [ebp - 0x12c]
call fcn.0059cd20
add edi, eax
lea ecx, [ebp - 0x12c]
lea eax, [ebp - 0x130]
push ecx
lea ecx, [ebp - 0x128]
mov edx, dword [ebp - 0x134]
call fcn.00596d30
test eax, eax
jne 0x598e24
mov byte [edi], 2
inc edi
mov edx, edi
mov eax, esi
call fcn.0059cd20
add edi, eax
mov eax, dword [ebp - 0x118]
mov edx, edi
call fcn.0059cd20
add edi, eax
jmp 0x599084
mov ecx, dword [ebp - 0x118]
sub ecx, esi
inc ecx
add dword [ebp - 0xa8], ecx
mov ecx, dword [ebp - 0x118]
mov dword [ebp - 0xac], ecx
cmp dword [ebp + 8], 0
jne 0x599084
cmp esi, dword [ebp - 0x118]
jg 0x599084
mov ecx, esi
mov al, 1
and ecx, 7
mov edx, esi
shl al, cl
test edx, edx
jns 0x598f44
add edx, 7
sar edx, 3
or byte [ebp + edx - 0x208], al
test byte [ebp - 0x48], 1
je 0x598f89
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov eax, dword [ecx + 4]
mov dl, byte [eax + esi]
mov al, 1
mov dword [ebp - 0x138], edx
mov ecx, dword [ebp - 0x138]
mov edx, dword [ebp - 0x138]
and ecx, 7
shl al, cl
test edx, edx
jns 0x598f7f
add edx, 7
sar edx, 3
or byte [ebp + edx - 0x208], al
inc esi
cmp esi, dword [ebp - 0x118]
jle 0x598f32
jmp 0x599084
cmp dword [ebp - 0x84], 0
je 0x59902d
cmp esi, 0xff
jg 0x598fb7
test byte [ebp - 0x48], 1
je 0x59902d
cmp esi, 0x7f
jle 0x59902d
mov dword [ebp - 0x80], 1
mov byte [edi], 1
inc edi
mov edx, edi
mov eax, esi
call fcn.0059cd20
add edi, eax
test byte [ebp - 0x48], 1
je 0x599084
mov ecx, esi
test ecx, ecx
jns 0x598fe0
add ecx, 0x7f
sar ecx, 7
movzx ecx, byte [ecx + 0x5f870c]
shl ecx, 7
mov eax, esi
and eax, 0x8000007f
jns 0x598ffb
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx edx, word [ecx*2 + 0x5edb0c]
mov ecx, dword [edx*8 + 0x5ecae0]
add ecx, esi
mov dword [ebp - 0x13c], ecx
cmp ecx, esi
je 0x599084
mov byte [edi], 1
inc edi
mov edx, edi
mov eax, dword [ebp - 0x13c]
call fcn.0059cd20
add edi, eax
jmp 0x599084
mov ecx, esi
mov al, 1
and ecx, 7
mov edx, esi
shl al, cl
test edx, edx
jns 0x59903f
add edx, 7
sar edx, 3
or byte [ebp + edx - 0x208], al
test byte [ebp - 0x48], 1
je 0x599078
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov eax, dword [ecx + 4]
mov dl, byte [eax + esi]
mov al, 1
mov esi, edx
mov ecx, esi
mov edx, esi
and ecx, 7
shl al, cl
test edx, edx
jns 0x59906e
add edx, 7
sar edx, 3
or byte [ebp + edx - 0x208], al
inc dword [ebp - 0xa8]
mov dword [ebp - 0xac], esi
inc dword [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
movzx esi, byte [ecx]
test esi, esi
jne 0x5990af
cmp dword [ebp - 0x70], 0
je 0x5990c2
mov eax, dword [ebp - 0x70]
xor edx, edx
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x70], edx
inc dword [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
movzx esi, byte [ecx]
test esi, esi
je 0x5990c2
cmp esi, 0x5d
jne 0x5980bf
cmp dword [ebp - 0x60], 0
jne 0x5980bf
test esi, esi
jne 0x5990d4
mov eax, dword [ebp + 0x1c]
mov dword [eax], 6
jmp 0x59bc36
cmp dword [ebp - 0xa8], 1
jne 0x599186
cmp dword [ebp - 0x80], 0
jne 0x599186
cmp dword [ebp - 0x84], 0
je 0x599109
cmp dword [ebp - 0x94], 0
je 0x599109
cmp dword [ebp - 0xac], 0x80
jge 0x599186
mov edx, dword [ebp - 0x30]
mov dword [ebp - 0x34], edx
cmp dword [ebp - 0x94], 0
je 0x59913d
cmp dword [ebp - 0x2c], 0xfffffffe
jne 0x599125
mov dword [ebp - 0x2c], 0xffffffff
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x38], ecx
mov byte [ebx], 0x1e
inc ebx
mov cl, byte [ebp - 0xac]
mov byte [ebx], cl
inc ebx
jmp 0x59bc2e
cmp dword [ebp - 0x84], 0
je 0x59916b
cmp dword [ebp - 0xac], 0x7f
jle 0x59916b
lea edx, [ebp - 0xd4]
mov eax, dword [ebp - 0xac]
call fcn.0059cd20
mov dword [ebp - 0xcc], eax
jmp 0x59bb4b
mov cl, byte [ebp - 0xac]
mov byte [ebp - 0xd4], cl
mov dword [ebp - 0xcc], 1
jmp 0x59bb4b
cmp dword [ebp - 0x2c], 0xfffffffe
jne 0x599193
mov dword [ebp - 0x2c], 0xffffffff
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x38], eax
mov edx, dword [ebp - 0x30]
mov dword [ebp - 0x34], edx
cmp dword [ebp - 0x80], 0
je 0x599237
cmp dword [ebp - 0x98], 0
je 0x5991b8
test byte [ebp - 0x45], 0x20
je 0x599237
mov byte [edi], 0
inc edi
mov byte [ebx], 0x50
inc ebx
add ebx, 3
cmp dword [ebp - 0x94], 0
je 0x5991d0
mov cl, 1
jmp 0x5991d2
xor ecx, ecx
mov byte [ebx], cl
cmp dword [ebp - 0xa8], 0
jle 0x599206
or byte [ebx], 2
inc ebx
mov ecx, edi
sub ecx, ebx
lea eax, [ebx + 0x20]
mov edx, ebx
call fcn.005953d8
lea edx, [ebp - 0x208]
mov ecx, 0x20
mov eax, ebx
call fcn.005953c8
lea ebx, [edi + 0x20]
jmp 0x599208
mov ebx, edi
mov eax, ebx
mov edx, dword [ebp - 0x74]
sub eax, dword [ebp - 0x74]
mov ecx, ebx
sar eax, 0x10
mov byte [edx + 1], al
mov edx, ebx
sub ecx, dword [ebp - 0x74]
mov eax, dword [ebp - 0x74]
sar ecx, 8
mov byte [eax + 2], cl
sub edx, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x74]
and dl, 0xff
mov byte [ecx + 3], dl
jmp 0x59bc2e
mov ecx, dword [ebp - 0x94]
cmp ecx, dword [ebp - 0x98]
jne 0x599249
mov al, 0x4e
jmp 0x59924b
mov al, 0x4f
mov byte [ebx], al
inc ebx
cmp dword [ebp - 0x94], 0
je 0x599299
cmp dword [ebp + 8], 0
jne 0x5992ab
xor esi, esi
mov eax, ebx
mov dword [ebp - 0x1e8], eax
lea edx, [ebp - 0x208]
mov dword [ebp - 0x1e4], edx
mov ecx, dword [ebp - 0x1e4]
mov eax, dword [ebp - 0x1e8]
inc esi
mov cl, byte [ecx]
not cl
mov byte [eax], cl
inc dword [ebp - 0x1e8]
inc dword [ebp - 0x1e4]
cmp esi, 0x20
jl 0x599273
jmp 0x5992ab
lea edx, [ebp - 0x208]
mov ecx, 0x20
mov eax, ebx
call fcn.005953c8
add ebx, 0x20
jmp 0x59bc2e
test edi, edi
je 0x59baf7
mov edx, dword [ebp + 0x1c]
push edx
lea ecx, [ebp - 0x1c]
lea edx, [ebp - 0x18]
mov eax, dword [ebp - 0x68]
inc eax
call fcn.00595bd8
mov dword [ebp - 0x68], eax
mov ecx, dword [ebp + 0x1c]
cmp dword [ecx], 0
jne 0x59bc36
jmp 0x599309
xor eax, eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], 0xffffffff
jmp 0x599309
mov dword [ebp - 0x18], 1
mov dword [ebp - 0x1c], 0xffffffff
jmp 0x599309
xor edx, edx
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x1c], 1
cmp dword [ebp - 0x74], 0
jne 0x59931d
mov eax, dword [ebp + 0x1c]
mov dword [eax], 9
jmp 0x59bc36
cmp dword [ebp - 0x18], 0
jne 0x59932f
mov edx, dword [ebp - 0x38]
mov dword [ebp - 0x2c], edx
mov ecx, dword [ebp - 0x34]
mov dword [ebp - 0x30], ecx
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 0x1c]
jne 0x59933b
xor eax, eax
jmp 0x599340
mov eax, 0x200
mov dword [ebp - 0x40], eax
xor edx, edx
mov dword [ebp - 0x14], edx
xor ecx, ecx
mov dword [ebp - 0x9c], ecx
mov ecx, dword [ebp - 0x74]
mov dword [ebp - 0x5c], ecx
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x2b
jne 0x599377
xor ecx, ecx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x9c], 1
inc dword [ebp - 0x68]
jmp 0x599395
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x3f
jne 0x59938f
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x10], ecx
inc dword [ebp - 0x68]
jmp 0x599395
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x10], eax
mov edx, dword [ebp - 0x74]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x1c
je 0x5993b1
mov eax, dword [ebp - 0x74]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x1d
jne 0x599476
cmp dword [ebp - 0x84], 0
je 0x59940c
test byte [ebx - 1], 0x80
je 0x59940c
lea ecx, [ebx - 1]
mov dword [ebp - 0x140], ecx
jmp 0x5993d1
dec dword [ebp - 0x140]
mov eax, dword [ebp - 0x140]
xor edx, edx
mov dl, byte [eax]
and edx, 0xc0
cmp edx, 0x80
je 0x5993cb
mov esi, ebx
lea eax, [ebp - 0x90]
sub esi, dword [ebp - 0x140]
mov edx, dword [ebp - 0x140]
mov ecx, esi
call fcn.005953c8
or esi, 0x80
jmp 0x599424
movzx esi, byte [ebx - 1]
cmp dword [ebp - 0x18], 1
jle 0x599424
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x3c]
or eax, esi
or eax, dword [edx + 0x4c]
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x9c], 0
jne 0x599534
cmp dword [ebp - 0x1c], 0
jge 0x599534
mov ecx, dword [ebp - 0x48]
push ecx
mov ecx, dword [ebp + 0xc]
push ecx
mov ecx, dword [ebp - 0x68]
inc ecx
mov edx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x74]
call fcn.00596fa0
test eax, eax
je 0x599534
xor ecx, ecx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x9c], 1
jmp 0x599534
mov eax, dword [ebp - 0x74]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x1e
jne 0x5994db
mov dword [ebp - 0x14], 0xd
mov ecx, dword [ebp - 0x74]
cmp dword [ebp - 0x9c], 0
movzx esi, byte [ecx + 1]
jne 0x599534
cmp dword [ebp - 0x1c], 0
jge 0x599534
mov eax, dword [ebp - 0x48]
push eax
mov edx, dword [ebp + 0xc]
push edx
mov ecx, dword [ebp - 0x68]
inc ecx
mov edx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x74]
call fcn.00596fa0
test eax, eax
je 0x599534
xor ecx, ecx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x9c], 1
jmp 0x599534
mov ecx, dword [ebp - 0x74]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x17
jge 0x59978c
mov dword [ebp - 0x14], 0x1a
mov edx, dword [ebp - 0x74]
cmp dword [ebp - 0x9c], 0
movzx esi, byte [edx]
jne 0x599534
cmp dword [ebp - 0x1c], 0
jge 0x599534
mov eax, dword [ebp - 0x48]
push eax
mov edx, dword [ebp + 0xc]
push edx
mov ecx, dword [ebp - 0x68]
inc ecx
mov edx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x74]
call fcn.00596fa0
test eax, eax
je 0x599534
xor ecx, ecx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x9c], 1
mov ecx, dword [ebp - 0x74]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x10
je 0x59954c
mov edx, dword [ebp - 0x74]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0xf
jne 0x59956a
mov eax, dword [ebp - 0x74]
xor edx, edx
mov dl, byte [eax + 1]
mov dword [ebp - 0x148], edx
mov ecx, dword [ebp - 0x74]
xor eax, eax
mov al, byte [ecx + 2]
mov dword [ebp - 0x14c], eax
jmp 0x599579
or edx, 0xffffffff
mov dword [ebp - 0x14c], edx
mov dword [ebp - 0x148], edx
mov dword [ebp - 0x144], ebx
cmp dword [ebp - 0x1c], 0
mov ebx, dword [ebp - 0x74]
je 0x59a16a
mov eax, dword [ebp - 0x14]
add dword [ebp - 0x10], eax
cmp dword [ebp - 0x18], 0
jne 0x5995e2
cmp dword [ebp - 0x1c], 0xffffffff
jne 0x5995ac
mov dl, byte [ebp - 0x10]
add dl, 0x1f
mov byte [ebx], dl
inc ebx
jmp 0x599739
cmp dword [ebp - 0x1c], 1
jne 0x5995c0
mov cl, byte [ebp - 0x10]
add cl, 0x23
mov byte [ebx], cl
inc ebx
jmp 0x599739
mov cl, byte [ebp - 0x10]
add cl, 0x25
mov byte [ebx], cl
inc ebx
mov eax, dword [ebp - 0x1c]
sar eax, 8
mov byte [ebx], al
mov dl, byte [ebp - 0x1c]
and dl, 0xff
mov byte [ebx + 1], dl
add ebx, 2
jmp 0x599739
cmp dword [ebp - 0x18], 1
jne 0x599631
cmp dword [ebp - 0x1c], 0xffffffff
jne 0x5995fc
mov cl, byte [ebp - 0x10]
add cl, 0x21
mov byte [ebx], cl
inc ebx
jmp 0x599739
cmp dword [ebp - 0x1c], 1
mov ebx, dword [ebp - 0x144]
je 0x59a16a
mov al, byte [ebp - 0x10]
add al, 0x25
mov byte [ebx], al
inc ebx
mov edx, dword [ebp - 0x1c]
dec edx
sar edx, 8
mov byte [ebx], dl
mov cl, byte [ebp - 0x1c]
add cl, 0xff
and cl, 0xff
mov byte [ebx + 1], cl
add ebx, 2
jmp 0x599739
mov cl, byte [ebp - 0x14]
add cl, 0x27
mov byte [ebx], cl
inc ebx
mov eax, dword [ebp - 0x18]
sar eax, 8
mov byte [ebx], al
mov dl, byte [ebp - 0x18]
and dl, 0xff
mov byte [ebx + 1], dl
add ebx, 2
cmp dword [ebp - 0x1c], 0
jge 0x5996ad
cmp dword [ebp - 0x84], 0
je 0x599680
cmp esi, 0x80
jl 0x599680
mov ecx, esi
and ecx, 7
lea edx, [ebp - 0x90]
mov eax, ebx
call fcn.005953c8
mov ecx, esi
and ecx, 7
add ebx, ecx
jmp 0x5996a0
mov eax, esi
mov byte [ebx], al
inc ebx
cmp dword [ebp - 0x148], 0
jl 0x5996a0
mov dl, byte [ebp - 0x148]
mov byte [ebx], dl
inc ebx
mov cl, byte [ebp - 0x14c]
mov byte [ebx], cl
inc ebx
mov al, byte [ebp - 0x10]
add al, 0x1f
mov byte [ebx], al
inc ebx
jmp 0x599739
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x18]
je 0x599739
cmp dword [ebp - 0x84], 0
je 0x5996e5
cmp esi, 0x80
jl 0x5996e5
mov ecx, esi
and ecx, 7
lea edx, [ebp - 0x90]
mov eax, ebx
call fcn.005953c8
mov ecx, esi
and ecx, 7
add ebx, ecx
jmp 0x5996ea
mov eax, esi
mov byte [ebx], al
inc ebx
cmp dword [ebp - 0x148], 0
jl 0x599705
mov dl, byte [ebp - 0x148]
mov byte [ebx], dl
inc ebx
mov cl, byte [ebp - 0x14c]
mov byte [ebx], cl
inc ebx
mov eax, dword [ebp - 0x18]
sub dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 1
jne 0x59971c
mov dl, byte [ebp - 0x10]
add dl, 0x23
mov byte [ebx], dl
inc ebx
jmp 0x599739
mov cl, byte [ebp - 0x10]
add cl, 0x25
mov byte [ebx], cl
inc ebx
mov eax, dword [ebp - 0x1c]
sar eax, 8
mov byte [ebx], al
mov dl, byte [ebp - 0x1c]
and dl, 0xff
mov byte [ebx + 1], dl
add ebx, 2
cmp dword [ebp - 0x84], 0
je 0x599763
cmp esi, 0x80
jl 0x599763
mov ecx, esi
and ecx, 7
lea edx, [ebp - 0x90]
mov eax, ebx
call fcn.005953c8
and esi, 7
add ebx, esi
jmp 0x599768
mov ecx, esi
mov byte [ebx], cl
inc ebx
cmp dword [ebp - 0x148], 0
jl 0x599f15
mov al, byte [ebp - 0x148]
mov byte [ebx], al
inc ebx
mov dl, byte [ebp - 0x14c]
mov byte [ebx], dl
inc ebx
jmp 0x599f15
mov ecx, dword [ebp - 0x74]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x4e
je 0x5997c0
mov edx, dword [ebp - 0x74]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x4f
je 0x5997c0
mov eax, dword [ebp - 0x74]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x50
je 0x5997c0
mov ecx, dword [ebp - 0x74]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x51
jne 0x59985c
cmp dword [ebp - 0x1c], 0
jne 0x5997ce
mov ebx, dword [ebp - 0x74]
jmp 0x59a16a
cmp dword [ebp - 0x18], 0
jne 0x5997e7
cmp dword [ebp - 0x1c], 0xffffffff
jne 0x5997e7
mov al, byte [ebp - 0x10]
add al, 0x46
mov byte [ebx], al
inc ebx
jmp 0x599f15
cmp dword [ebp - 0x18], 1
jne 0x599801
cmp dword [ebp - 0x1c], 0xffffffff
jne 0x599801
mov dl, byte [ebp - 0x10]
add dl, 0x48
mov byte [ebx], dl
inc ebx
jmp 0x599f15
cmp dword [ebp - 0x18], 0
jne 0x59981b
cmp dword [ebp - 0x1c], 1
jne 0x59981b
mov cl, byte [ebp - 0x10]
add cl, 0x4a
mov byte [ebx], cl
inc ebx
jmp 0x599f15
mov cl, byte [ebp - 0x10]
add cl, 0x4c
mov byte [ebx], cl
inc ebx
mov eax, dword [ebp - 0x18]
sar eax, 8
mov byte [ebx], al
mov dl, byte [ebp - 0x18]
and dl, 0xff
mov byte [ebx + 1], dl
add ebx, 2
cmp dword [ebp - 0x1c], 0xffffffff
jne 0x599843
xor ecx, ecx
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x1c]
sar eax, 8
mov byte [ebx], al
mov dl, byte [ebp - 0x1c]
and dl, 0xff
mov byte [ebx + 1], dl
add ebx, 2
jmp 0x599f15
mov ecx, dword [ebp - 0x74]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x5e
je 0x599890
mov edx, dword [ebp - 0x74]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x5f
je 0x599890
mov eax, dword [ebp - 0x74]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x5d
je 0x599890
mov ecx, dword [ebp - 0x74]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x60
jne 0x599ef7
xor edx, edx
mov esi, ebx
mov dword [ebp - 0x154], edx
xor eax, eax
sub esi, dword [ebp - 0x74]
mov dword [ebp - 0x158], eax
mov edx, dword [ebp - 0x74]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x60
jne 0x5998cc
mov ecx, dword [ebp - 0x74]
xor eax, eax
mov al, byte [ecx + 4]
cmp eax, 0x68
jne 0x5998cc
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x37
jmp 0x59bc36
cmp dword [ebp - 0x1c], 0xffffffff
jne 0x599929
mov ecx, dword [ebp - 0x74]
mov dword [ebp - 0x15c], ecx
mov eax, dword [ebp - 0x15c]
xor edx, edx
xor ecx, ecx
mov dl, byte [eax + 1]
mov eax, dword [ebp - 0x15c]
shl edx, 0x10
mov cl, byte [eax + 2]
shl ecx, 8
mov eax, dword [ebp - 0x15c]
or edx, ecx
xor ecx, ecx
mov cl, byte [eax + 3]
or edx, ecx
xor ecx, ecx
add dword [ebp - 0x15c], edx
mov edx, dword [ebp - 0x15c]
mov cl, byte [edx]
cmp ecx, 0x55
jne 0x5998db
mov eax, ebx
sub eax, dword [ebp - 0x15c]
mov dword [ebp - 0x154], eax
cmp dword [ebp - 0x18], 0
jne 0x599a2e
cmp dword [ebp - 0x1c], 1
jg 0x599989
mov byte [ebx], 0
mov edx, dword [ebp + 0xc]
push edx
mov ecx, dword [ebp - 0x7c]
push ecx
mov ecx, dword [ebp - 0x84]
mov edx, 1
mov eax, dword [ebp - 0x74]
call fcn.00596bf0
mov eax, dword [ebp - 0x74]
inc eax
mov ecx, esi
mov edx, dword [ebp - 0x74]
call fcn.005953d8
inc ebx
cmp dword [ebp - 0x1c], 0
jne 0x599977
mov ecx, dword [ebp - 0x74]
mov byte [ecx], 0x76
jmp 0x59a16a
mov edx, dword [ebp - 0x74]
mov al, byte [ebp - 0x10]
add al, 0x69
mov byte [edx], al
inc dword [ebp - 0x74]
jmp 0x599a26
mov byte [ebx], 0
mov ecx, dword [ebp + 0xc]
push ecx
mov eax, dword [ebp - 0x7c]
push eax
mov ecx, dword [ebp - 0x84]
mov edx, 5
mov eax, dword [ebp - 0x74]
call fcn.00596bf0
mov eax, dword [ebp - 0x74]
add eax, 5
mov ecx, esi
mov edx, dword [ebp - 0x74]
call fcn.005953d8
mov eax, dword [ebp - 0x74]
mov cl, byte [ebp - 0x10]
add cl, 0x69
add ebx, 5
mov byte [eax], cl
inc dword [ebp - 0x74]
mov edx, dword [ebp - 0x74]
mov byte [edx], 0x5e
inc dword [ebp - 0x74]
cmp dword [ebp - 0x158], 0
jne 0x5999de
xor ecx, ecx
jmp 0x5999e7
mov ecx, dword [ebp - 0x74]
sub ecx, dword [ebp - 0x158]
mov dword [ebp - 0x160], ecx
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x158], eax
mov edx, dword [ebp - 0x160]
mov eax, dword [ebp - 0x74]
sar edx, 0x10
mov byte [eax], dl
mov edx, dword [ebp - 0x160]
mov ecx, dword [ebp - 0x74]
sar edx, 8
mov byte [ecx + 1], dl
mov eax, dword [ebp - 0x74]
mov cl, byte [ebp - 0x160]
and cl, 0xff
mov byte [eax + 2], cl
add dword [ebp - 0x74], 3
dec dword [ebp - 0x1c]
jmp 0x599b93
cmp dword [ebp - 0x18], 1
jle 0x599b87
cmp dword [ebp + 8], 0
je 0x599a9c
mov edx, dword [ebp - 0x18]
dec edx
imul edx, dword [ebp - 0x50]
mov dword [ebp - 0x164], edx
mov eax, dword [ebp - 0x50]
cdq
push edx
push eax
mov eax, dword [ebp - 0x18]
dec eax
cdq
call fcn.005951b0
cmp edx, 0
jne 0x599a6a
cmp eax, 0x7fffffff
ja 0x599a7e
jmp 0x599a6c
jg 0x599a7e
mov ecx, dword [ebp + 8]
mov edi, 0x7fffffeb
sub edi, dword [ecx]
cmp edi, dword [ebp - 0x164]
jge 0x599a8c
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x14
jmp 0x59bc36
mov edx, dword [ebp + 8]
mov ecx, dword [ebp - 0x164]
add dword [edx], ecx
jmp 0x599b87
cmp dword [ebp - 0x64], 0
je 0x599aae
cmp dword [ebp - 0x30], 0
jge 0x599aae
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x150], 1
mov eax, dword [ebp - 0x150]
cmp eax, dword [ebp - 0x18]
jge 0x599b87
mov edx, dword [ebp + 0xc]
mov eax, ebx
mov ecx, dword [edx + 0x24]
mov dword [ebp - 0x168], ecx
mov ecx, esi
mov edx, dword [ebp - 0x74]
call fcn.005953c8
mov eax, dword [ebp - 0x7c]
cmp eax, dword [ebp - 0x168]
jae 0x599b67
xor edx, edx
xor ecx, ecx
mov cl, byte [eax + 1]
mov dl, byte [eax]
shl ecx, 8
shl edx, 0x10
or edx, ecx
xor ecx, ecx
mov cl, byte [eax + 2]
or edx, ecx
mov ecx, dword [ebp + 0xc]
add edx, esi
sar edx, 0x10
mov ecx, dword [ecx + 0x24]
mov byte [ecx], dl
xor ecx, ecx
xor edx, edx
mov cl, byte [eax + 1]
mov dl, byte [eax]
shl ecx, 8
shl edx, 0x10
or edx, ecx
xor ecx, ecx
mov cl, byte [eax + 2]
or edx, ecx
mov ecx, dword [ebp + 0xc]
add edx, esi
sar edx, 8
mov ecx, dword [ecx + 0x24]
mov byte [ecx + 1], dl
mov cl, byte [eax + 1]
mov dl, byte [eax]
shl edx, 0x10
shl ecx, 8
or dl, cl
mov ecx, esi
or dl, byte [eax + 2]
add dl, cl
mov ecx, dword [ebp + 0xc]
and dl, 0xff
mov ecx, dword [ecx + 0x24]
mov byte [ecx + 2], dl
mov edx, dword [ebp + 0xc]
add dword [edx + 0x24], 3
add eax, 3
cmp eax, dword [ebp - 0x168]
jb 0x599aea
mov eax, dword [ebp - 0x168]
add ebx, esi
mov dword [ebp - 0x7c], eax
inc dword [ebp - 0x150]
mov ecx, dword [ebp - 0x150]
cmp ecx, dword [ebp - 0x18]
jl 0x599ac7
cmp dword [ebp - 0x1c], 0
jle 0x599b93
mov eax, dword [ebp - 0x18]
sub dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0
jl 0x599e0d
cmp dword [ebp + 8], 0
je 0x599c0e
cmp dword [ebp - 0x1c], 0
jle 0x599c0e
mov edx, dword [ebp - 0x50]
add edx, 9
imul edx, dword [ebp - 0x1c]
add edx, 0xfffffff8
mov dword [ebp - 0x16c], edx
mov eax, dword [ebp - 0x50]
add eax, 9
cdq
push edx
push eax
mov eax, dword [ebp - 0x1c]
cdq
call fcn.005951b0
cmp edx, 0
jne 0x599bdc
cmp eax, 0x7fffffff
ja 0x599bf0
jmp 0x599bde
jg 0x599bf0
mov ecx, dword [ebp + 8]
mov eax, 0x7fffffeb
sub eax, dword [ecx]
cmp eax, dword [ebp - 0x16c]
jge 0x599bfe
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x14
jmp 0x59bc36
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 0x16c]
add dword [ecx], eax
jmp 0x599d72
mov edx, dword [ebp - 0x1c]
dec edx
mov dword [ebp - 0x150], edx
cmp dword [ebp - 0x150], 0
jl 0x599d72
mov ecx, dword [ebp + 0xc]
mov al, byte [ebp - 0x10]
add al, 0x69
mov edi, dword [ecx + 0x24]
mov byte [ebx], al
inc ebx
cmp dword [ebp - 0x150], 0
je 0x599c87
mov byte [ebx], 0x5e
inc ebx
cmp dword [ebp - 0x158], 0
jne 0x599c4d
xor edx, edx
jmp 0x599c55
mov edx, ebx
sub edx, dword [ebp - 0x158]
mov dword [ebp - 0x170], edx
mov dword [ebp - 0x158], ebx
mov eax, dword [ebp - 0x170]
sar eax, 0x10
mov byte [ebx], al
mov ecx, dword [ebp - 0x170]
sar ecx, 8
mov byte [ebx + 1], cl
mov cl, byte [ebp - 0x170]
and cl, 0xff
mov byte [ebx + 2], cl
add ebx, 3
mov ecx, esi
mov edx, dword [ebp - 0x74]
mov eax, ebx
call fcn.005953c8
mov eax, dword [ebp - 0x7c]
cmp edi, eax
jbe 0x599d5a
xor edx, edx
xor ecx, ecx
mov cl, byte [eax + 1]
mov dl, byte [eax]
shl ecx, 8
shl edx, 0x10
or edx, ecx
xor ecx, ecx
mov cl, byte [eax + 2]
or edx, ecx
add edx, esi
cmp dword [ebp - 0x150], 0
je 0x599cc8
mov ecx, 5
jmp 0x599ccd
mov ecx, 1
add edx, ecx
mov ecx, dword [ebp + 0xc]
sar edx, 0x10
mov ecx, dword [ecx + 0x24]
mov byte [ecx], dl
xor ecx, ecx
xor edx, edx
mov cl, byte [eax + 1]
mov dl, byte [eax]
shl ecx, 8
shl edx, 0x10
or edx, ecx
xor ecx, ecx
mov cl, byte [eax + 2]
or edx, ecx
add edx, esi
cmp dword [ebp - 0x150], 0
je 0x599d04
mov ecx, 5
jmp 0x599d09
mov ecx, 1
add edx, ecx
mov ecx, dword [ebp + 0xc]
sar edx, 8
mov ecx, dword [ecx + 0x24]
mov byte [ecx + 1], dl
mov cl, byte [eax + 1]
mov dl, byte [eax]
shl edx, 0x10
shl ecx, 8
or dl, cl
mov ecx, esi
or dl, byte [eax + 2]
add dl, cl
cmp dword [ebp - 0x150], 0
je 0x599d38
mov cl, 5
jmp 0x599d3a
mov cl, 1
add dl, cl
mov ecx, dword [ebp + 0xc]
and dl, 0xff
mov ecx, dword [ecx + 0x24]
mov byte [ecx + 2], dl
mov edx, dword [ebp + 0xc]
add dword [edx + 0x24], 3
add eax, 3
cmp edi, eax
ja 0x599c9e
mov dword [ebp - 0x7c], edi
add ebx, esi
dec dword [ebp - 0x150]
cmp dword [ebp - 0x150], 0
jge 0x599c25
cmp dword [ebp - 0x158], 0
je 0x599f15
mov eax, ebx
sub eax, dword [ebp - 0x158]
inc eax
mov edx, ebx
sub edx, eax
xor ecx, ecx
mov cl, byte [edx + 1]
shl ecx, 0x10
movzx esi, byte [edx + 2]
shl esi, 8
or ecx, esi
movzx esi, byte [edx + 3]
or ecx, esi
mov dword [ebp - 0x174], ecx
cmp dword [ebp - 0x174], 0
jne 0x599db6
xor ecx, ecx
jmp 0x599dc2
mov ecx, dword [ebp - 0x158]
sub ecx, dword [ebp - 0x174]
mov dword [ebp - 0x158], ecx
mov byte [ebx], 0x55
inc ebx
mov ecx, eax
sar ecx, 0x10
mov byte [ebx], cl
mov ecx, eax
sar ecx, 8
mov byte [ebx + 1], cl
mov ecx, eax
and cl, 0xff
mov byte [ebx + 2], cl
mov ecx, eax
sar ecx, 0x10
add ebx, 3
mov byte [edx + 1], cl
mov ecx, eax
sar ecx, 8
and al, 0xff
mov byte [edx + 2], cl
mov byte [edx + 3], al
cmp dword [ebp - 0x158], 0
jne 0x599d7f
jmp 0x599f15
mov eax, ebx
xor ecx, ecx
sub eax, dword [ebp - 0x154]
mov dword [ebp - 0x178], eax
mov edx, dword [ebp - 0x178]
mov eax, dword [ebp - 0x178]
mov cl, byte [edx + 1]
xor edx, edx
mov dl, byte [eax + 2]
mov eax, dword [ebp - 0x178]
shl edx, 8
shl ecx, 0x10
or ecx, edx
xor edx, edx
mov dl, byte [eax + 3]
mov eax, dword [ebp - 0x178]
or ecx, edx
sub eax, ecx
mov dword [ebp - 0x17c], eax
mov ecx, dword [ebp - 0x178]
mov dl, byte [ebp - 0x10]
add dl, 0x56
mov byte [ecx], dl
cmp dword [ebp + 8], 0
jne 0x599f15
mov ecx, dword [ebp - 0x17c]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x5d
je 0x599f15
mov edx, dword [ebp - 0x17c]
mov dword [ebp - 0x180], edx
mov ecx, dword [ebp + 0xc]
push ecx
mov ecx, dword [ebp - 0x84]
mov edx, dword [ebp - 0x178]
mov eax, dword [ebp - 0x180]
call fcn.00596710
test eax, eax
je 0x599eb5
mov ecx, dword [ebp - 0x17c]
add byte [ecx], 3
jmp 0x599f15
mov eax, dword [ebp - 0x180]
xor edx, edx
xor ecx, ecx
mov dl, byte [eax + 1]
mov eax, dword [ebp - 0x180]
shl edx, 0x10
mov cl, byte [eax + 2]
shl ecx, 8
mov eax, dword [ebp - 0x180]
or edx, ecx
xor ecx, ecx
mov cl, byte [eax + 3]
or edx, ecx
add dword [ebp - 0x180], edx
mov edx, dword [ebp - 0x180]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x54
je 0x599e8b
jmp 0x599f15
mov eax, dword [ebp - 0x74]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x73
je 0x59a16a
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0xb
jmp 0x59bc36
cmp dword [ebp - 0x9c], 0
je 0x59a16a
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x41
jne 0x599f67
mov ecx, dword [ebp - 0x5c]
xor eax, eax
mov al, byte [ecx + 3]
cmp eax, 0x10
je 0x599f48
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx + 3]
cmp ecx, 0xf
jne 0x599f4f
mov eax, 2
jmp 0x599f51
xor eax, eax
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx]
xor edx, edx
mov dl, byte [ecx + 0x5ec1b8]
add eax, edx
add dword [ebp - 0x5c], eax
jmp 0x599fc0
mov eax, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [eax]
cmp ecx, 0x27
je 0x599f7f
mov ecx, dword [ebp - 0x5c]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x34
jne 0x599fc0
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx]
xor eax, eax
mov al, byte [ecx + 0x5ec1b8]
add dword [ebp - 0x5c], eax
cmp dword [ebp - 0x84], 0
je 0x599fc0
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx - 1]
cmp ecx, 0xc0
jl 0x599fc0
mov eax, dword [ebp - 0x5c]
xor edx, edx
mov dl, byte [eax - 1]
and edx, 0x3f
xor ecx, ecx
mov cl, byte [edx + 0x5ec22f]
add dword [ebp - 0x5c], ecx
mov eax, ebx
sub eax, dword [ebp - 0x5c]
mov dword [ebp - 0x184], eax
cmp dword [ebp - 0x184], 0
jle 0x59a16a
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx]
add ecx, 0xffffffe1
cmp ecx, 0x20
ja case.0x599ff1.31
mov cl, byte [ecx + 0x599ff8]
jmp dword [ecx*4 + 0x59a019]
mov eax, dword [ebp - 0x5c]
mov byte [eax], 0x28
jmp 0x59a16a
mov edx, dword [ebp - 0x5c]
mov byte [edx], 0x29
jmp 0x59a16a
mov ecx, dword [ebp - 0x5c]
mov byte [ecx], 0x2a
jmp 0x59a16a
mov eax, dword [ebp - 0x5c]
mov byte [eax], 0x2b
jmp 0x59a16a
mov edx, dword [ebp - 0x5c]
mov byte [edx], 0x42
jmp 0x59a16a
mov ecx, dword [ebp - 0x5c]
mov byte [ecx], 0x43
jmp 0x59a16a
mov eax, dword [ebp - 0x5c]
mov byte [eax], 0x44
jmp 0x59a16a
mov edx, dword [ebp - 0x5c]
mov byte [edx], 0x45
jmp 0x59a16a
mov ecx, dword [ebp - 0x5c]
mov byte [ecx], 0x35
jmp 0x59a16a
mov eax, dword [ebp - 0x5c]
mov byte [eax], 0x36
jmp 0x59a16a
mov edx, dword [ebp - 0x5c]
mov byte [edx], 0x37
jmp 0x59a16a
mov ecx, dword [ebp - 0x5c]
mov byte [ecx], 0x38
jmp 0x59a16a
mov byte [ebx], 0
mov eax, dword [ebp + 0xc]
push eax
mov edx, dword [ebp - 0x7c]
push edx
mov ecx, dword [ebp - 0x84]
mov edx, 4
mov eax, dword [ebp - 0x5c]
call fcn.00596bf0
mov eax, dword [ebp - 0x5c]
add eax, 4
mov ecx, dword [ebp - 0x184]
mov edx, dword [ebp - 0x5c]
call fcn.005953d8
add dword [ebp - 0x184], 4
mov ecx, dword [ebp - 0x5c]
add ebx, 4
mov byte [ecx], 0x5d
mov byte [ebx], 0x55
inc ebx
mov eax, dword [ebp - 0x184]
sar eax, 0x10
mov byte [ebx], al
mov edx, dword [ebp - 0x184]
sar edx, 8
mov byte [ebx + 1], dl
mov cl, byte [ebp - 0x184]
and cl, 0xff
mov byte [ebx + 2], cl
add ebx, 3
mov eax, dword [ebp - 0x184]
mov edx, dword [ebp - 0x5c]
sar eax, 0x10
mov byte [edx + 1], al
mov ecx, dword [ebp - 0x184]
mov eax, dword [ebp - 0x5c]
sar ecx, 8
mov byte [eax + 2], cl
mov eax, dword [ebp - 0x5c]
mov dl, byte [ebp - 0x184]
and dl, 0xff
mov byte [eax + 3], dl
xor edx, edx
mov dword [ebp - 0x74], edx
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x40]
or dword [ecx + 0x4c], eax
jmp 0x59bc2e
mov edx, dword [ebp - 0x48]
xor ecx, ecx
mov dword [ebp - 0xb0], edx
mov dword [ebp - 0xbc], ecx
mov dword [ebp - 0x20], 0x5f
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov eax, dword [ecx + 0x24]
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0xa4], edx
inc dword [ebp - 0x68]
xor eax, eax
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx]
cmp eax, 0x2a
jne 0x59a3cc
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cl, byte [edx + 1]
mov edx, dword [eax + 0xc]
test byte [edx + ecx], 2
jne 0x59a1de
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx + 1]
cmp eax, 0x3a
jne 0x59a3cc
xor edx, edx
xor eax, eax
mov dword [ebp - 0x18c], edx
mov dword [ebp - 0x190], 0x5eb154
mov ecx, dword [ebp - 0x68]
inc ecx
xor edx, edx
mov dword [ebp - 0x194], ecx
mov dword [ebp - 0x198], eax
mov dword [ebp - 0x74], edx
inc dword [ebp - 0x68]
xor eax, eax
mov ecx, dword [ebp - 0x68]
mov edx, dword [ebp + 0xc]
mov edx, dword [edx + 0xc]
mov al, byte [ecx]
test byte [edx + eax], 2
jne 0x59a207
mov eax, dword [ebp - 0x68]
sub eax, dword [ebp - 0x194]
mov dword [ebp - 0x188], eax
mov ecx, dword [ebp - 0x68]
movzx ecx, byte [ecx]
cmp ecx, 0x3a
jne 0x59a276
inc dword [ebp - 0x68]
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x198], eax
jmp 0x59a248
inc dword [ebp - 0x68]
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cl, byte [edx]
mov edx, dword [eax + 0xc]
test byte [edx + ecx], 6
jne 0x59a245
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x5f
je 0x59a245
mov edx, dword [ebp - 0x68]
sub edx, dword [ebp - 0x198]
mov dword [ebp - 0x18c], edx
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x29
je 0x59a290
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x3c
jmp 0x59bc36
xor esi, esi
jmp 0x59a3a1
lea eax, [esi + esi*2]
mov edx, dword [eax*4 + 0x5eafb4]
cmp edx, dword [ebp - 0x188]
jne 0x59a38f
mov ecx, dword [ebp - 0x188]
mov edx, dword [ebp - 0x190]
mov eax, dword [ebp - 0x194]
call fcn.005955f8
test eax, eax
jne 0x59a38f
lea ecx, [esi + esi*2]
cmp dword [ecx*4 + 0x5eafb8], 0x74
jne 0x59a30c
mov ecx, dword [ebp + 0xc]
mov dword [ecx + 0x50], 1
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x20]
test eax, eax
je 0x59a30c
mov byte [ebx], 0x75
inc ebx
movzx edx, word [eax + 4]
sar edx, 8
mov byte [ebx], dl
mov cl, byte [eax + 4]
and cl, 0xff
mov byte [ebx + 1], cl
add ebx, 2
mov eax, dword [eax]
test eax, eax
jne 0x59a2ed
cmp dword [ebp - 0x18c], 0
jne 0x59a33f
lea ecx, [esi + esi*2]
cmp dword [ecx*4 + 0x5eafb8], 0
jge 0x59a330
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x42
jmp 0x59bc36
lea edx, [esi + esi*2]
mov cl, byte [edx*4 + 0x5eafb8]
mov byte [ebx], cl
inc ebx
jmp 0x59a3ad
lea eax, [esi + esi*2]
cmp dword [eax*4 + 0x5eafbc], 0
jge 0x59a35a
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x3b
jmp 0x59bc36
lea ecx, [esi + esi*2]
mov al, byte [ecx*4 + 0x5eafbc]
mov byte [ebx], al
inc ebx
mov dl, byte [ebp - 0x18c]
mov byte [ebx], dl
inc ebx
mov ecx, dword [ebp - 0x18c]
mov edx, dword [ebp - 0x198]
mov eax, ebx
call fcn.005953c8
add ebx, dword [ebp - 0x18c]
mov byte [ebx], 0
inc ebx
jmp 0x59a3ad
lea ecx, [esi + esi*2]
mov eax, dword [ecx*4 + 0x5eafb4]
inc eax
add dword [ebp - 0x190], eax
inc esi
cmp esi, dword [0x5eb020]
jl 0x59a297
cmp esi, dword [0x5eb020]
jl 0x59bc2e
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x3c
jmp 0x59bc36
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x3f
jne 0x59b45e
inc dword [ebp - 0x68]
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x3a
jg 0x59a468
je 0x59a4f0
add ecx, 0xffffffdf
cmp ecx, 0x18
ja case.0x59a3fd.34
jmp dword [ecx*4 + 0x59a404]
cmp ecx, 0x43
jg 0x59a48f
je 0x59aa67
sub ecx, 0x3c
je 0x59a9f8
dec ecx
je 0x59a9c1
dec ecx
je 0x59aa58
jmp case.0x59a3fd.34
sub ecx, 0x50
je 0x59ab32
sub ecx, 2
je 0x59afd2
sub ecx, 0x2a
je 0x59a4e6
jmp case.0x59a3fd.34
inc dword [ebp - 0x68]
jmp 0x59a4b3
inc dword [ebp - 0x68]
mov eax, dword [ebp - 0x68]
cmp byte [eax], 0
je 0x59a4c7
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x29
jne 0x59a4b0
mov eax, dword [ebp - 0x68]
cmp byte [eax], 0
jne 0x59bc2e
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x12
jmp 0x59bc36
mov dword [ebp - 0xa4], 1
mov dword [ebp - 0x20], 0x5e
inc dword [ebp - 0x68]
jmp 0x59b494
mov dword [ebp - 0x20], 0x60
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx + 1]
cmp eax, 0x3f
jne 0x59a546
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx + 2]
cmp ecx, 0x3d
je 0x59b494
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax + 2]
cmp edx, 0x21
je 0x59b494
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx + 2]
cmp eax, 0x3c
je 0x59b494
mov byte [ebx + 4], 0x64
mov dword [ebp - 0xbc], 3
mov dword [ebp - 0xb8], 0xffffffff
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx + 1]
cmp ecx, 0x52
jne 0x59a58c
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax + 2]
cmp edx, 0x26
jne 0x59a58c
mov dword [ebp - 0xc8], 0xffffffff
add dword [ebp - 0x68], 2
mov byte [ebx + 4], 0x66
jmp 0x59a5f6
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx + 1]
cmp eax, 0x3c
jne 0x59a5a8
mov dword [ebp - 0xc8], 0x3e
inc dword [ebp - 0x68]
jmp 0x59a5f6
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx + 1]
cmp ecx, 0x27
jne 0x59a5c4
mov dword [ebp - 0xc8], 0x27
inc dword [ebp - 0x68]
jmp 0x59a5f6
xor eax, eax
mov dword [ebp - 0xc8], eax
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx + 1]
cmp ecx, 0x2d
je 0x59a5e6
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x2b
jne 0x59a5f6
inc dword [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx]
mov dword [ebp - 0xb8], eax
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cl, byte [edx + 1]
mov edx, dword [eax + 0xc]
test byte [edx + ecx], 0x10
jne 0x59a61b
inc dword [ebp - 0x68]
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x1c
jmp 0x59bc36
xor edx, edx
mov dword [ebp - 0xb4], edx
inc dword [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
mov dword [ebp - 0x1b0], ecx
jmp 0x59a66f
cmp dword [ebp - 0xb4], 0
jl 0x59a66c
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx]
test byte [eax + 0x5ebc40], 4
je 0x59a663
mov edx, dword [ebp - 0xb4]
mov eax, dword [ebp - 0x68]
add edx, edx
xor ecx, ecx
mov cl, byte [eax]
lea edx, [edx + edx*4]
add edx, ecx
add edx, 0xffffffd0
jmp 0x59a666
or edx, 0xffffffff
mov dword [ebp - 0xb4], edx
inc dword [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
mov edx, dword [ebp + 0xc]
xor eax, eax
mov al, byte [ecx]
mov edx, dword [edx + 0xc]
test byte [edx + eax], 0x10
jne 0x59a631
mov eax, dword [ebp - 0x68]
sub eax, dword [ebp - 0x1b0]
mov dword [ebp - 0x1a8], eax
cmp dword [ebp - 0xc8], 0
jle 0x59a6ab
mov ecx, dword [ebp - 0x68]
inc dword [ebp - 0x68]
movzx ecx, byte [ecx]
cmp ecx, dword [ebp - 0xc8]
jne 0x59a6ba
mov eax, dword [ebp - 0x68]
inc dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x29
je 0x59a6cb
dec dword [ebp - 0x68]
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x1a
jmp 0x59bc36
cmp dword [ebp + 8], 0
jne 0x59b494
cmp dword [ebp - 0xb8], 0
jle 0x59a765
cmp dword [ebp - 0xb4], 0
jg 0x59a6f9
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x3a
jmp 0x59bc36
cmp dword [ebp - 0xb8], 0x2d
jne 0x59a711
mov ecx, dword [ebp + 0xc]
mov ecx, dword [ecx + 0x34]
sub ecx, dword [ebp - 0xb4]
inc ecx
jmp 0x59a71d
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0x34]
add ecx, dword [ebp - 0xb4]
mov dword [ebp - 0xb4], ecx
cmp dword [ebp - 0xb4], 0
jle 0x59a73a
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp - 0xb4]
jge 0x59a748
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0xf
jmp 0x59bc36
mov edx, dword [ebp - 0xb4]
sar edx, 8
mov byte [ebx + 5], dl
mov cl, byte [ebp - 0xb4]
and cl, 0xff
mov byte [ebx + 6], cl
jmp 0x59b494
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 0x28]
mov dword [ebp - 0x1b4], eax
xor edx, edx
mov dword [ebp - 0x19c], edx
jmp 0x59a7ab
mov edx, dword [ebp - 0x1b4]
add edx, 2
mov ecx, dword [ebp - 0x1a8]
mov eax, dword [ebp - 0x1b0]
call fcn.005955f8
test eax, eax
je 0x59a7b9
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 0x30]
add dword [ebp - 0x1b4], eax
inc dword [ebp - 0x19c]
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + 0x2c]
cmp ecx, dword [ebp - 0x19c]
jg 0x59a77b
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 0x2c]
cmp edx, dword [ebp - 0x19c]
jle 0x59a806
mov edx, dword [ebp - 0x1b4]
mov ecx, dword [ebp - 0x1b4]
xor eax, eax
movzx edx, byte [edx + 1]
mov al, byte [ecx]
shl eax, 8
or eax, edx
mov dword [ebp - 0xb4], eax
mov eax, dword [ebp - 0xb4]
sar eax, 8
mov byte [ebx + 5], al
mov cl, byte [ebp - 0xb4]
and cl, 0xff
mov byte [ebx + 6], cl
inc byte [ebx + 4]
jmp 0x59b494
test byte [ebp - 0x48], 8
setne cl
and ecx, 1
push ecx
mov ecx, dword [ebp - 0x1a8]
mov edx, dword [ebp - 0x1b0]
mov eax, dword [ebp + 0xc]
call fcn.00596074
mov dword [ebp - 0x19c], eax
test eax, eax
jle 0x59a84f
mov edx, dword [ebp - 0x19c]
sar edx, 8
mov byte [ebx + 5], dl
mov cl, byte [ebp - 0x19c]
and cl, 0xff
mov byte [ebx + 6], cl
inc byte [ebx + 4]
jmp 0x59b494
cmp dword [ebp - 0xc8], 0
je 0x59a86b
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0xf
jmp 0x59bc36
mov edx, dword [ebp - 0x1b0]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x52
jne 0x59a934
xor ecx, ecx
mov dword [ebp - 0xb4], ecx
mov dword [ebp - 0x19c], 1
mov eax, dword [ebp - 0x19c]
cmp eax, dword [ebp - 0x1a8]
jge 0x59a900
mov edx, dword [ebp - 0x1b0]
mov eax, dword [ebp - 0x19c]
movzx edx, byte [edx + eax]
test byte [edx + 0x5ebc40], 4
jne 0x59a8c5
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0xf
jmp 0x59bc36
mov ecx, dword [ebp - 0x1b0]
mov eax, dword [ebp - 0x19c]
xor edx, edx
mov dl, byte [ecx + eax]
mov eax, dword [ebp - 0xb4]
add eax, eax
lea eax, [eax + eax*4]
add edx, eax
add edx, 0xffffffd0
mov dword [ebp - 0xb4], edx
inc dword [ebp - 0x19c]
mov edx, dword [ebp - 0x19c]
cmp edx, dword [ebp - 0x1a8]
jl 0x59a89e
cmp dword [ebp - 0xb4], 0
jne 0x59a913
mov dword [ebp - 0xb4], 0xffff
mov byte [ebx + 4], 0x66
mov ecx, dword [ebp - 0xb4]
sar ecx, 8
mov byte [ebx + 5], cl
mov cl, byte [ebp - 0xb4]
and cl, 0xff
mov byte [ebx + 6], cl
jmp 0x59b494
cmp dword [ebp - 0x1a8], 6
jne 0x59a969
mov edx, str.DEFINE
mov ecx, 6
mov eax, dword [ebp - 0x1b0]
call fcn.005955f8
test eax, eax
jne 0x59a969
mov byte [ebx + 4], 0x68
mov dword [ebp - 0xbc], 1
jmp 0x59b494
cmp dword [ebp - 0xb4], 0
jle 0x59a99d
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + 0x38]
cmp ecx, dword [ebp - 0xb4]
jl 0x59a99d
mov eax, dword [ebp - 0xb4]
sar eax, 8
mov byte [ebx + 5], al
mov dl, byte [ebp - 0xb4]
and dl, 0xff
mov byte [ebx + 6], dl
jmp 0x59b494
cmp dword [ebp - 0xb4], 0
jne 0x59a9ad
mov eax, 0x23
jmp 0x59a9b2
mov eax, 0xf
mov edx, dword [ebp + 0x1c]
mov dword [edx], eax
jmp 0x59bc36
mov dword [ebp - 0x20], 0x58
inc dword [ebp - 0x68]
jmp 0x59b494
inc dword [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
movzx ecx, byte [ecx]
cmp ecx, 0x29
jne 0x59a9ec
mov byte [ebx], 0x73
inc ebx
xor eax, eax
mov dword [ebp - 0x74], eax
jmp 0x59bc2e
mov dword [ebp - 0x20], 0x59
jmp 0x59b494
mov edx, dword [ebp - 0x68]
mov cl, byte [edx + 1]
sub cl, 0x21
je 0x59aa1a
sub cl, 0x1c
je 0x59aa0a
jmp 0x59aa2a
mov dword [ebp - 0x20], 0x5a
add dword [ebp - 0x68], 2
jmp 0x59b494
mov dword [ebp - 0x20], 0x5b
add dword [ebp - 0x68], 2
jmp 0x59b494
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax + 1]
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0xc]
test byte [ecx + edx], 0x10
jne case.0x59a3fd.39
inc dword [ebp - 0x68]
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x18
jmp 0x59bc36
mov dword [ebp - 0x20], 0x5d
inc dword [ebp - 0x68]
jmp 0x59b494
mov dword [ebp - 0x78], ebx
mov dword [ebp - 0x4c], 1
mov byte [ebx], 0x53
inc ebx
xor ecx, ecx
mov dword [ebp - 0x1b8], ecx
jmp 0x59aa9b
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x1b8]
add eax, eax
movzx edx, byte [edx]
lea eax, [eax + eax*4]
add eax, edx
add eax, 0xffffffd0
mov dword [ebp - 0x1b8], eax
inc dword [ebp - 0x68]
mov eax, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [eax]
test byte [ecx + 0x5ebc40], 4
jne 0x59aa7f
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x29
je 0x59aac8
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x27
jmp 0x59bc36
cmp dword [ebp - 0x1b8], 0xff
jle 0x59aae2
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x26
jmp 0x59bc36
mov dl, byte [ebp - 0x1b8]
mov byte [ebx], dl
inc ebx
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x68]
sub eax, dword [ecx + 0x18]
inc eax
sar eax, 0x10
mov byte [ebx], al
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x68]
sub ecx, dword [edx + 0x18]
inc ecx
sar ecx, 8
mov byte [ebx + 1], cl
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x68]
sub eax, dword [ecx + 0x18]
inc eax
and al, 0xff
mov byte [ebx + 2], al
mov byte [ebx + 3], 0
mov byte [ebx + 4], 0
mov byte [ebx + 5], 0
add ebx, 6
xor edx, edx
mov dword [ebp - 0x74], edx
jmp 0x59bc2e
inc dword [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x3d
je 0x59ab4d
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x3e
jne 0x59ab74
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x3e
sete cl
and ecx, 1
mov dword [ebp - 0xa0], ecx
mov dword [ebp - 0xc8], 0x29
jmp 0x59ae61
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x3c
je case.0x59a3fd.39
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x29
jmp 0x59bc36
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x3c
jne 0x59aba1
mov ecx, 0x3e
jmp 0x59aba6
mov ecx, 0x27
mov dword [ebp - 0xc8], ecx
inc dword [ebp - 0x68]
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x1b0], eax
jmp 0x59abbd
inc dword [ebp - 0x68]
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cl, byte [edx]
mov edx, dword [eax + 0xc]
test byte [edx + ecx], 0x10
jne 0x59abba
mov ecx, dword [ebp - 0x68]
sub ecx, dword [ebp - 0x1b0]
mov dword [ebp - 0x1a8], ecx
cmp dword [ebp + 8], 0
je 0x59ac60
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax]
cmp edx, dword [ebp - 0xc8]
je 0x59ac02
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x2a
jmp 0x59bc36
mov edx, dword [ebp + 0xc]
cmp dword [edx + 0x2c], 0x2710
jl 0x59ac1c
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0x31
jmp 0x59bc36
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x1a8]
add ecx, 3
cmp ecx, dword [eax + 0x30]
jle 0x59ae3f
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp - 0x1a8]
add edx, 3
mov dword [eax + 0x30], edx
cmp dword [ebp - 0x1a8], 0x20
jle 0x59ae3f
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x30
jmp 0x59bc36
xor ecx, ecx
mov dword [ebp - 0x1bc], ecx
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 0x28]
mov dword [ebp - 0x1b4], eax
xor edx, edx
mov dword [ebp - 0x19c], edx
jmp 0x59ad55
mov edx, dword [ebp - 0x1b4]
add edx, 2
mov ecx, dword [ebp - 0x1a8]
mov eax, dword [ebp - 0x1b0]
call fcn.00595364
mov dword [ebp - 0x1c0], eax
cmp dword [ebp - 0x1c0], 0
jne 0x59ad0e
mov ecx, dword [ebp - 0x1b4]
mov eax, dword [ebp - 0x1a8]
cmp byte [ecx + eax + 2], 0
jne 0x59ad04
mov edx, dword [ebp - 0x1b4]
xor ecx, ecx
mov eax, dword [ebp - 0x1b4]
mov cl, byte [edx]
xor edx, edx
mov dl, byte [eax + 1]
mov eax, dword [ebp + 0xc]
shl ecx, 8
or ecx, edx
mov edx, dword [eax + 0x34]
inc edx
cmp ecx, edx
je 0x59acf8
test byte [ebp - 0x46], 8
jne 0x59acf8
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0x2b
jmp 0x59bc36
mov dword [ebp - 0x1bc], 1
jmp 0x59ad0e
mov dword [ebp - 0x1c0], 0xffffffff
cmp dword [ebp - 0x1c0], 0
jge 0x59ad43
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 0xc]
mov ecx, dword [ecx + 0x2c]
sub ecx, dword [ebp - 0x19c]
imul ecx, dword [eax + 0x30]
mov eax, dword [edx + 0x30]
mov edx, dword [ebp - 0x1b4]
add eax, dword [ebp - 0x1b4]
call fcn.005953d8
jmp 0x59ad67
mov ecx, dword [ebp + 0xc]
mov ecx, dword [ecx + 0x30]
add dword [ebp - 0x1b4], ecx
inc dword [ebp - 0x19c]
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 0x2c]
cmp edx, dword [ebp - 0x19c]
jg 0x59ac81
cmp dword [ebp - 0x1bc], 0
jne 0x59adef
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 0x28]
mov dword [ebp - 0x1c4], eax
xor edx, edx
mov dword [ebp - 0x19c], edx
jmp 0x59ade1
mov ecx, dword [ebp - 0x1c4]
cmp ecx, dword [ebp - 0x1b4]
je 0x59adc9
mov eax, dword [ebp - 0x1c4]
xor edx, edx
mov dl, byte [eax]
shl edx, 8
mov eax, dword [ebp - 0x1c4]
xor ecx, ecx
mov cl, byte [eax + 1]
or edx, ecx
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0x34]
inc ecx
cmp edx, ecx
jne 0x59adcf
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x41
jmp 0x59bc36
dec dword [ebp - 0x19c]
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 0x30]
add dword [ebp - 0x1c4], eax
inc dword [ebp - 0x19c]
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + 0x2c]
cmp ecx, dword [ebp - 0x19c]
jg 0x59ad86
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 0x34]
mov eax, dword [ebp - 0x1b4]
inc edx
sar edx, 8
mov byte [eax], dl
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x1b4]
mov cl, byte [edx + 0x34]
inc ecx
and cl, 0xff
mov byte [eax + 1], cl
mov eax, dword [ebp - 0x1b4]
mov ecx, dword [ebp - 0x1a8]
add eax, 2
mov edx, dword [ebp - 0x1b0]
call fcn.005953c8
mov ecx, dword [ebp - 0x1b4]
mov eax, dword [ebp - 0x1a8]
mov byte [ecx + eax + 2], 0
mov edx, dword [ebp + 0xc]
inc dword [edx + 0x2c]
inc dword [ebp - 0x68]
jmp 0x59b46d
mov dword [ebp - 0xc8], 0x29
mov dword [ebp - 0xa0], 1
inc dword [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
mov dword [ebp - 0x1b0], ecx
jmp 0x59ae72
inc dword [ebp - 0x68]
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0xc]
test byte [ecx + edx], 0x10
jne 0x59ae6f
mov edx, dword [ebp - 0x68]
sub edx, dword [ebp - 0x1b0]
mov dword [ebp - 0x1a8], edx
cmp dword [ebp + 8], 0
je 0x59aef2
cmp dword [ebp - 0x1a8], 0
jne 0x59aeb1
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x3e
jmp 0x59bc36
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, dword [ebp - 0xc8]
je 0x59aece
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x2a
jmp 0x59bc36
cmp dword [ebp - 0x1a8], 0x20
jle 0x59aee5
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x30
jmp 0x59bc36
xor ecx, ecx
mov dword [ebp - 0xb4], ecx
jmp 0x59afc0
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 0x28]
mov dword [ebp - 0x1b4], eax
xor edx, edx
mov dword [ebp - 0x19c], edx
jmp 0x59af4b
mov edx, dword [ebp - 0x1b4]
add edx, 2
mov ecx, dword [ebp - 0x1a8]
mov eax, dword [ebp - 0x1b0]
call fcn.005955f8
test eax, eax
jne 0x59af39
mov ecx, dword [ebp - 0x1b4]
mov eax, dword [ebp - 0x1a8]
cmp byte [ecx + eax + 2], 0
je 0x59af59
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + 0x30]
add dword [ebp - 0x1b4], ecx
inc dword [ebp - 0x19c]
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 0x2c]
cmp edx, dword [ebp - 0x19c]
jg 0x59af08
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 0x2c]
cmp eax, dword [ebp - 0x19c]
jle 0x59af89
mov edx, dword [ebp - 0x1b4]
mov eax, dword [ebp - 0x1b4]
xor ecx, ecx
mov cl, byte [edx]
xor edx, edx
shl ecx, 8
mov dl, byte [eax + 1]
or ecx, edx
mov dword [ebp - 0xb4], ecx
jmp 0x59afc0
test byte [ebp - 0x48], 8
setne cl
and ecx, 1
push ecx
mov ecx, dword [ebp - 0x1a8]
mov edx, dword [ebp - 0x1b0]
mov eax, dword [ebp + 0xc]
call fcn.00596074
mov dword [ebp - 0xb4], eax
test eax, eax
jg 0x59afc0
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0xf
jmp 0x59bc36
cmp dword [ebp - 0xa0], 0
jne 0x59b102
jmp 0x59b960
inc dword [ebp - 0x68]
mov dword [ebp - 0xc8], 0x29
mov ecx, dword [ebp - 0x68]
movzx ecx, byte [ecx]
mov dword [ebp - 0xb8], ecx
cmp ecx, 0x2b
jne 0x59b013
inc dword [ebp - 0x68]
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax]
test byte [edx + 0x5ebc40], 4
jne 0x59b034
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x3f
jmp 0x59bc36
cmp dword [ebp - 0xb8], 0x2d
jne 0x59b034
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx + 1]
test byte [ecx + 0x5ebc40], 4
je case.0x59a3fd.34
inc dword [ebp - 0x68]
xor ecx, ecx
mov dword [ebp - 0xb4], ecx
jmp 0x59b05d
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp - 0xb4]
add eax, eax
movzx edx, byte [edx]
lea eax, [eax + eax*4]
add eax, edx
add eax, 0xffffffd0
mov dword [ebp - 0xb4], eax
inc dword [ebp - 0x68]
mov eax, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [eax]
test byte [ecx + 0x5ebc40], 4
jne 0x59b03e
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx]
cmp eax, dword [ebp - 0xc8]
je 0x59b08a
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x1d
jmp 0x59bc36
cmp dword [ebp - 0xb8], 0x2d
jne 0x59b0d6
cmp dword [ebp - 0xb4], 0
jne 0x59b0aa
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x3a
jmp 0x59bc36
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + 0x34]
sub ecx, dword [ebp - 0xb4]
inc ecx
mov dword [ebp - 0xb4], ecx
cmp dword [ebp - 0xb4], 0
jg 0x59b102
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0xf
jmp 0x59bc36
cmp dword [ebp - 0xb8], 0x2b
jne 0x59b102
cmp dword [ebp - 0xb4], 0
jne 0x59b0f6
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x3a
jmp 0x59bc36
mov ecx, dword [ebp + 0xc]
mov ecx, dword [ecx + 0x34]
add dword [ebp - 0xb4], ecx
mov dword [ebp - 0x74], ebx
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 0x14]
mov dword [ebp - 0x1c8], edx
cmp dword [ebp + 8], 0
jne 0x59b230
mov byte [ebx], 0
cmp dword [ebp - 0xb4], 0
je 0x59b144
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 0x14]
mov ecx, dword [ebp - 0xb4]
mov edx, dword [ebp - 0x84]
call fcn.0059650c
mov dword [ebp - 0x1c8], eax
cmp dword [ebp - 0x1c8], 0
jne 0x59b1d7
test byte [ebp - 0x48], 8
setne al
and eax, 1
push eax
mov ecx, dword [ebp - 0xb4]
xor edx, edx
mov eax, dword [ebp + 0xc]
call fcn.00596074
test eax, eax
jge 0x59b17e
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0xf
jmp 0x59bc36
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + 0x14]
add ecx, dword [ebp - 0xb4]
mov dword [ebp - 0x1c8], ecx
lea ecx, [ebx + 5]
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 0xc]
sub ecx, dword [eax + 0x14]
mov eax, dword [edx + 0x24]
sar ecx, 0x10
lea edx, [ebx + 5]
mov byte [eax], cl
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 0xc]
sub edx, dword [ecx + 0x14]
mov ecx, dword [eax + 0x24]
sar edx, 8
mov byte [ecx + 1], dl
lea edx, [ebx + 5]
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0xc]
sub edx, dword [eax + 0x14]
mov eax, dword [ecx + 0x24]
and dl, 0xff
mov byte [eax + 2], dl
mov edx, dword [ebp + 0xc]
add dword [edx + 0x24], 3
jmp 0x59b230
mov ecx, dword [ebp - 0x1c8]
mov eax, dword [ebp - 0x1c8]
xor edx, edx
movzx ecx, byte [ecx + 1]
mov dl, byte [eax + 2]
mov eax, dword [ebp - 0x1c8]
shl edx, 8
shl ecx, 0x10
or ecx, edx
xor edx, edx
mov dl, byte [eax + 3]
or ecx, edx
jne 0x59b230
mov ecx, dword [ebp - 0x84]
push ecx
mov ecx, dword [ebp + 0xc]
push ecx
mov ecx, dword [ebp + 0x10]
mov edx, ebx
mov eax, dword [ebp - 0x1c8]
call fcn.00596b10
test eax, eax
je 0x59b230
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x28
jmp 0x59bc36
mov byte [ebx], 0x5d
mov byte [ebx + 1], 0
mov byte [ebx + 2], 0
mov byte [ebx + 3], 8
add ebx, 4
mov byte [ebx], 0x52
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x1c8]
sub ecx, dword [edx + 0x14]
sar ecx, 0x10
mov byte [ebx + 1], cl
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x1c8]
sub eax, dword [ecx + 0x14]
sar eax, 8
mov byte [ebx + 2], al
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x1c8]
sub eax, dword [edx + 0x14]
and al, 0xff
mov byte [ebx + 3], al
add ebx, 4
mov byte [ebx], 0x55
mov byte [ebx + 1], 0
mov byte [ebx + 2], 0
mov byte [ebx + 3], 8
mov dword [ebp - 0x50], 0xc
add ebx, 4
cmp dword [ebp - 0x2c], 0xfffffffe
jne 0x59bc2e
mov dword [ebp - 0x2c], 0xffffffff
jmp 0x59bc2e
xor edx, edx
lea eax, [ebp - 0x1a0]
mov dword [ebp - 0x1a4], edx
mov dword [ebp - 0x1a0], edx
mov dword [ebp - 0x1ac], eax
jmp 0x59b37b
mov ecx, dword [ebp - 0x68]
inc dword [ebp - 0x68]
movzx ecx, byte [ecx]
cmp ecx, 0x69
jg 0x59b2f1
je 0x59b325
sub ecx, 0x2d
je 0x59b302
sub ecx, 0x1d
je 0x59b310
sub ecx, 0xb
je 0x59b351
sub ecx, 3
je 0x59b35f
jmp 0x59b36a
sub ecx, 0x6d
je 0x59b330
sub ecx, 6
je 0x59b33b
sub ecx, 5
je 0x59b346
jmp 0x59b36a
lea eax, [ebp - 0x1a4]
mov dword [ebp - 0x1ac], eax
jmp 0x59b37b
mov edx, dword [ebp - 0x1ac]
or dword [edx], 0x80000
mov ecx, dword [ebp + 0xc]
or dword [ecx + 0x48], 0x10
jmp 0x59b37b
mov eax, dword [ebp - 0x1ac]
or dword [eax], 1
jmp 0x59b37b
mov edx, dword [ebp - 0x1ac]
or dword [edx], 2
jmp 0x59b37b
mov ecx, dword [ebp - 0x1ac]
or dword [ecx], 4
jmp 0x59b37b
mov eax, dword [ebp - 0x1ac]
or dword [eax], 8
jmp 0x59b37b
mov edx, dword [ebp - 0x1ac]
or dword [edx], 0x200
jmp 0x59b37b
mov ecx, dword [ebp - 0x1ac]
or dword [ecx], 0x40
jmp 0x59b37b
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0xc
dec dword [ebp - 0x68]
jmp 0x59bc36
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x29
je 0x59b397
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x3a
jne 0x59b2cb
mov ecx, dword [ebp - 0x48]
or ecx, dword [ebp - 0x1a0]
mov eax, dword [ebp - 0x1a4]
not eax
and ecx, eax
mov dword [ebp - 0xb0], ecx
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x29
jne 0x59b452
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 0x14]
add edx, 4
cmp ebx, edx
jne 0x59b3e9
cmp dword [ebp + 8], 0
je 0x59b3db
mov ecx, dword [ebp + 8]
cmp dword [ecx], 8
jne 0x59b3e9
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp - 0xb0]
mov dword [eax + 0x44], edx
jmp 0x59b43a
mov ecx, dword [ebp - 0x48]
mov eax, dword [ebp - 0xb0]
and eax, 7
and ecx, 7
cmp ecx, eax
je 0x59b40c
mov byte [ebx], 0x19
inc ebx
mov dl, byte [ebp - 0xb0]
and dl, 7
mov byte [ebx], dl
inc ebx
test byte [ebp - 0xaf], 2
setne cl
and ecx, 1
mov dword [ebp - 0x24], ecx
mov eax, dword [ebp - 0x24]
xor eax, 1
mov dword [ebp - 0x28], eax
test byte [ebp - 0xb0], 1
je 0x59b435
mov edx, pe_nt_image_headers32
jmp 0x59b437
xor edx, edx
mov dword [ebp - 0x3c], edx
mov eax, dword [ebp - 0xb0]
mov dword [ebp - 0x48], eax
mov edx, dword [ebp - 4]
mov dword [edx], eax
xor ecx, ecx
mov dword [ebp - 0x74], ecx
jmp 0x59bc2e
mov dword [ebp - 0x20], 0x5e
inc dword [ebp - 0x68]
jmp 0x59b494
test byte [ebp - 0x47], 0x10
je 0x59b46d
mov dword [ebp - 0x20], 0x5e
jmp 0x59b494
mov ecx, dword [ebp + 0xc]
inc dword [ecx + 0x34]
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 0x34]
sar edx, 8
mov byte [ebx + 4], dl
mov ecx, dword [ebp + 0xc]
mov al, byte [ecx + 0x34]
and al, 0xff
mov byte [ebx + 5], al
mov dword [ebp - 0xbc], 2
cmp dword [ebp - 0x20], 0x5d
jl 0x59b49e
mov edx, ebx
jmp 0x59b4a0
xor edx, edx
mov dword [ebp - 0x74], edx
lea edx, [ebp - 0x68]
mov al, byte [ebp - 0x20]
mov byte [ebx], al
mov dword [ebp - 0x5c], ebx
mov ecx, dword [ebp + 0xc]
xor eax, eax
mov ecx, dword [ecx + 0x4c]
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x50], eax
push edx
mov ecx, dword [ebp + 0x1c]
push ecx
cmp dword [ebp - 0x20], 0x5a
je 0x59b4d1
cmp dword [ebp - 0x20], 0x5b
je 0x59b4d1
xor eax, eax
jmp 0x59b4d6
mov eax, 1
push eax
lea eax, [ebp - 0xc4]
mov edx, dword [ebp - 0xa4]
push edx
lea edx, [ebp - 0xc0]
mov ecx, dword [ebp - 0xbc]
push ecx
push eax
push edx
mov ecx, dword [ebp + 0x10]
push ecx
mov eax, dword [ebp + 0xc]
push eax
cmp dword [ebp + 8], 0
jne 0x59b505
xor edx, edx
jmp 0x59b508
lea edx, [ebp - 0x50]
push edx
lea ecx, [ebp - 0x5c]
mov edx, dword [ebp - 0x48]
mov eax, dword [ebp - 0xb0]
and edx, 7
call fcn.0059bc4c
test eax, eax
je 0x59bc36
cmp dword [ebp - 0x20], 0x60
jne 0x59b5e5
cmp dword [ebp + 8], 0
jne 0x59b5e5
mov dword [ebp - 0x1cc], ebx
xor ecx, ecx
mov dword [ebp - 0x1d0], ecx
inc dword [ebp - 0x1d0]
xor eax, eax
mov edx, dword [ebp - 0x1cc]
mov ecx, dword [ebp - 0x1cc]
movzx edx, byte [edx + 2]
mov al, byte [ecx + 1]
mov ecx, dword [ebp - 0x1cc]
shl edx, 8
shl eax, 0x10
or eax, edx
xor edx, edx
mov dl, byte [ecx + 3]
or eax, edx
add dword [ebp - 0x1cc], eax
mov eax, dword [ebp - 0x1cc]
xor ecx, ecx
mov cl, byte [eax]
cmp ecx, 0x55
jne 0x59b547
xor ecx, ecx
mov cl, byte [ebx + 4]
cmp ecx, 0x68
jne 0x59b5b6
cmp dword [ebp - 0x1d0], 1
jle 0x59b5ad
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x36
jmp 0x59bc36
mov dword [ebp - 0x20], 0x68
jmp 0x59b5e5
cmp dword [ebp - 0x1d0], 2
jle 0x59b5cd
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x1b
jmp 0x59bc36
cmp dword [ebp - 0x1d0], 1
jne 0x59b5e5
or ecx, 0xffffffff
mov dword [ebp - 0xc0], ecx
mov dword [ebp - 0xc4], ecx
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x29
je 0x59b5ff
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0xe
jmp 0x59bc36
cmp dword [ebp + 8], 0
je 0x59b65b
mov edx, dword [ebp + 8]
mov ecx, 0x7fffffeb
mov eax, dword [ebp - 0x50]
add eax, 0xfffffff8
sub ecx, dword [edx]
cmp ecx, eax
jge 0x59b627
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x14
jmp 0x59bc36
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x50]
add ecx, 0xfffffff8
add dword [eax], ecx
mov byte [ebx], 0x5e
inc ebx
mov byte [ebx], 0
mov byte [ebx + 1], 0
mov byte [ebx + 2], 4
add ebx, 3
mov byte [ebx], 0x55
inc ebx
mov byte [ebx], 0
mov byte [ebx + 1], 0
mov byte [ebx + 2], 4
add ebx, 3
jmp 0x59bc2e
cmp dword [ebp - 0x20], 0x68
mov ebx, dword [ebp - 0x5c]
je 0x59bc2e
mov eax, dword [ebp - 0x30]
xor ecx, ecx
mov dword [ebp - 0x34], eax
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x64], ecx
cmp dword [ebp - 0x20], 0x5d
jl 0x59b6ec
cmp dword [ebp - 0x2c], 0xfffffffe
jne 0x59b6b0
cmp dword [ebp - 0xc4], 0
jl 0x59b6a0
mov ecx, dword [ebp - 0xc4]
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x64], 1
jmp 0x59b6a7
mov dword [ebp - 0x2c], 0xffffffff
mov dword [ebp - 0x38], 0xffffffff
jmp 0x59b6d1
cmp dword [ebp - 0xc4], 0
jl 0x59b6d1
cmp dword [ebp - 0xc0], 0
jge 0x59b6d1
mov eax, dword [ebp - 0xc4]
or eax, dword [ebp - 0x44]
mov dword [ebp - 0xc0], eax
cmp dword [ebp - 0xc0], 0
jl 0x59bc2e
mov edx, dword [ebp - 0xc0]
mov dword [ebp - 0x30], edx
jmp 0x59bc2e
cmp dword [ebp - 0x20], 0x58
jne 0x59bc2e
cmp dword [ebp - 0xc0], 0
jl 0x59bc2e
mov ecx, dword [ebp - 0xc0]
mov dword [ebp - 0x30], ecx
jmp 0x59bc2e
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x6c], eax
lea eax, [ebp - 0x68]
mov edx, dword [ebp - 0x48]
push edx
push 0
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 0x1c]
mov ecx, dword [ecx + 0x34]
call fcn.00595624
mov esi, eax
mov eax, dword [ebp + 0x1c]
cmp dword [eax], 0
jne 0x59bc36
test esi, esi
jge 0x59bac0
mov edx, esi
neg edx
cmp edx, 0x1a
jne 0x59b77b
mov ecx, dword [ebp - 0x68]
movzx ecx, byte [ecx + 1]
cmp ecx, 0x5c
jne 0x59b76f
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax + 2]
cmp edx, 0x45
jne 0x59b76f
add dword [ebp - 0x68], 2
jmp 0x59bc2e
mov dword [ebp - 0x60], 1
jmp 0x59bc2e
mov ecx, esi
neg ecx
cmp ecx, 0x19
je 0x59bc2e
cmp dword [ebp - 0x2c], 0xfffffffe
jne 0x59b7a7
mov eax, esi
neg eax
cmp eax, 5
jle 0x59b7a7
mov edx, esi
neg edx
cmp edx, 0x17
jge 0x59b7a7
mov dword [ebp - 0x2c], 0xffffffff
mov ecx, dword [ebp - 0x2c]
mov edx, esi
neg edx
mov dword [ebp - 0x38], ecx
cmp edx, 0x1b
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x34], eax
jne 0x59b8d7
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 0x24]
mov dword [ebp - 0x7c], eax
inc dword [ebp - 0x68]
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x3c
jne 0x59b7df
mov eax, 0x3e
jmp 0x59b7e4
mov eax, 0x27
mov dword [ebp - 0xc8], eax
xor edx, edx
mov dword [ebp - 0xbc], edx
xor ecx, ecx
mov dword [ebp - 0xa4], ecx
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx + 1]
cmp eax, 0x2b
je 0x59b89f
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx + 1]
cmp ecx, 0x2d
je 0x59b89f
mov dword [ebp - 0x1d4], 1
mov eax, dword [ebp - 0x68]
inc eax
jmp 0x59b855
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dl, byte [eax]
mov ecx, dword [ecx + 0xc]
test byte [ecx + edx], 4
jne 0x59b844
xor edx, edx
mov dword [ebp - 0x1d4], edx
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dl, byte [eax]
mov ecx, dword [ecx + 0xc]
test byte [ecx + edx], 0x10
je 0x59b866
inc eax
cmp byte [eax], 0
je 0x59b866
xor edx, edx
mov dl, byte [eax]
cmp edx, dword [ebp - 0xc8]
jne 0x59b82c
movzx eax, byte [eax]
cmp eax, dword [ebp - 0xc8]
je 0x59b87f
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0x39
jmp 0x59bc2e
cmp dword [ebp - 0x1d4], 0
je 0x59b890
inc dword [ebp - 0x68]
jmp 0x59afdf
mov dword [ebp - 0xa0], 1
jmp 0x59ae61
mov eax, dword [ebp - 0x68]
add eax, 2
jmp 0x59b8a8
inc eax
xor edx, edx
mov dl, byte [eax]
test byte [edx + 0x5ebc40], 4
jne 0x59b8a7
xor ecx, ecx
mov cl, byte [eax]
cmp ecx, dword [ebp - 0xc8]
je 0x59b8cf
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x39
jmp 0x59bc2e
inc dword [ebp - 0x68]
jmp 0x59afdf
mov edx, esi
neg edx
cmp edx, 0x1c
jne 0x59b948
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx + 1]
cmp eax, 0x3c
je 0x59b907
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx + 1]
cmp ecx, 0x27
je 0x59b907
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x7b
jne 0x59b948
xor ecx, ecx
mov dword [ebp - 0xa0], ecx
inc dword [ebp - 0x68]
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x3c
jne 0x59b925
mov ecx, 0x3e
jmp 0x59b93d
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x27
jne 0x59b938
mov ecx, 0x27
jmp 0x59b93d
mov ecx, 0x7d
mov dword [ebp - 0xc8], ecx
jmp 0x59ae61
mov eax, esi
neg eax
cmp eax, 0x23
jl 0x59b9fb
neg esi
add esi, 0xffffffdd
mov dword [ebp - 0xb4], esi
cmp dword [ebp - 0x2c], 0xfffffffe
jne 0x59b96d
mov dword [ebp - 0x2c], 0xffffffff
mov dword [ebp - 0x74], ebx
mov byte [ebx], 0x51
inc ebx
mov edx, dword [ebp - 0xb4]
sar edx, 8
mov byte [ebx], dl
mov cl, byte [ebp - 0xb4]
and cl, 0xff
mov byte [ebx + 1], cl
add ebx, 2
cmp dword [ebp - 0xb4], 0x20
jge 0x59b9a6
mov ecx, dword [ebp - 0xb4]
mov eax, 1
shl eax, cl
jmp 0x59b9ab
mov eax, 1
mov edx, dword [ebp + 0xc]
or dword [edx + 0x40], eax
mov ecx, dword [ebp + 0xc]
mov ecx, dword [ecx + 0x3c]
cmp ecx, dword [ebp - 0xb4]
jge 0x59b9cb
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp - 0xb4]
mov dword [eax + 0x3c], edx
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 0x20]
test eax, eax
je 0x59bc2e
movzx edx, word [eax + 4]
cmp edx, dword [ebp - 0xb4]
jne 0x59b9f0
mov word [eax + 6], 1
jmp 0x59bc2e
mov eax, dword [eax]
test eax, eax
jne 0x59b9d9
jmp 0x59bc2e
mov ecx, esi
neg ecx
cmp ecx, 0xf
je 0x59ba0d
mov eax, esi
neg eax
cmp eax, 0x10
jne 0x59ba6e
mov edx, dword [ebp + 0x1c]
lea ecx, [ebp - 0x1dc]
push edx
lea edx, [ebp - 0x1d8]
lea eax, [ebp - 0x68]
call fcn.00595a34
mov dword [ebp - 0x1e0], eax
cmp dword [ebp - 0x1e0], 0
jl 0x59bc36
neg esi
cmp esi, 0x10
mov dword [ebp - 0x74], ebx
sete cl
and ecx, 1
cmp ecx, dword [ebp - 0x1d8]
je 0x59ba52
mov al, 0x10
jmp 0x59ba54
mov al, 0xf
mov byte [ebx], al
inc ebx
mov dl, byte [ebp - 0x1e0]
mov byte [ebx], dl
inc ebx
mov cl, byte [ebp - 0x1dc]
mov byte [ebx], cl
inc ebx
jmp 0x59bc2e
mov ecx, esi
neg ecx
cmp ecx, 0x1d
jl 0x59ba99
mov eax, esi
neg eax
cmp eax, 0x22
jg 0x59ba99
neg esi
mov edx, dword [ebp - 0x68]
inc edx
mov dword [ebp - 0x70], edx
mov ecx, dword [esi*4 + 0x5eb058]
dec ecx
mov dword [ebp - 0x68], ecx
jmp 0x59bc2e
mov eax, esi
neg eax
cmp eax, 5
jle 0x59baaf
mov edx, esi
neg edx
cmp edx, 0x17
jge 0x59baaf
mov ecx, ebx
jmp 0x59bab1
xor ecx, ecx
mov dword [ebp - 0x74], ecx
mov eax, esi
neg al
mov byte [ebx], al
inc ebx
jmp 0x59bc2e
cmp dword [ebp - 0x84], 0
je 0x59bae3
cmp esi, 0x7f
jle 0x59bae3
lea edx, [ebp - 0xd4]
mov eax, esi
call fcn.0059cd20
mov dword [ebp - 0xcc], eax
jmp 0x59bb4b
mov edx, esi
mov byte [ebp - 0xd4], dl
mov dword [ebp - 0xcc], 1
jmp 0x59bb4b
mov dword [ebp - 0xcc], 1
mov ecx, esi
mov byte [ebp - 0xd4], cl
cmp dword [ebp - 0x84], 0
je 0x59bb4b
cmp esi, 0xc0
jl 0x59bb4b
jmp 0x59bb37
inc dword [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
mov edx, dword [ebp - 0xcc]
mov al, byte [ecx]
mov byte [ebp + edx - 0xd4], al
inc dword [ebp - 0xcc]
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx + 1]
and eax, 0xc0
cmp eax, 0x80
je 0x59bb1c
mov dword [ebp - 0x74], ebx
test byte [ebp - 0x48], 1
je 0x59bb58
mov dl, 0x1d
jmp 0x59bb5a
mov dl, 0x1c
mov byte [ebx], dl
inc ebx
xor esi, esi
lea eax, [ebp - 0xd4]
mov dword [ebp - 0x1e8], eax
cmp esi, dword [ebp - 0xcc]
jge 0x59bb8d
mov edx, dword [ebp - 0x1e8]
mov cl, byte [edx]
mov byte [ebx], cl
inc ebx
inc esi
inc dword [ebp - 0x1e8]
cmp esi, dword [ebp - 0xcc]
jl 0x59bb73
xor ecx, ecx
mov cl, byte [ebp - 0xd4]
cmp ecx, 0xd
je 0x59bba7
xor eax, eax
mov al, byte [ebp - 0xd4]
cmp eax, 0xa
jne 0x59bbae
mov edx, dword [ebp + 0xc]
or dword [edx + 0x48], 0x20
cmp dword [ebp - 0x2c], 0xfffffffe
jne 0x59bc02
mov dword [ebp - 0x38], 0xffffffff
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x34], ecx
cmp dword [ebp - 0xcc], 1
je 0x59bbd0
cmp dword [ebp - 0x3c], 0
jne 0x59bbf7
xor eax, eax
mov al, byte [ebp - 0xd4]
or eax, dword [ebp - 0x3c]
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0xcc], 1
je 0x59bc2e
mov eax, dword [ebp + 0xc]
xor edx, edx
mov dl, byte [ebx - 1]
or edx, dword [eax + 0x4c]
mov dword [ebp - 0x30], edx
jmp 0x59bc2e
or edx, 0xffffffff
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x2c], edx
jmp 0x59bc2e
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x38], eax
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x34], ecx
cmp dword [ebp - 0xcc], 1
je 0x59bc1d
cmp dword [ebp - 0x3c], 0
jne 0x59bc2e
xor ecx, ecx
mov eax, dword [ebp + 0xc]
mov cl, byte [ebx - 1]
or ecx, dword [ebp - 0x3c]
or ecx, dword [eax + 0x4c]
mov dword [ebp - 0x30], ecx
inc dword [ebp - 0x68]
jmp 0x597ba4
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x68]
mov dword [edx], eax
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18