Function at 0x59fd93
Capabilities:
Check http status code
Inspect section memory permissions
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x52c
push ebx
push esi
mov dword [ebp - 0x10], 3
mov dword [ebp - 0x2c], 0
mov dword [ebp - 4], 0
mov dword [ebp - 0x30], 0xffffffff
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x474], 0
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x34], 0
mov dword [ebp - 8], 0
lea eax, [ebp - 0x46c]
mov dword [ebp - 0x1c], eax
cmp dword [ebp + 0x14], 0
jne 0x59fe0c
cmp dword [ebp + 0x10], 0
je 0x59fe05
mov ecx, dword [ebp + 0x10]
mov dword [ecx], 0x63
xor eax, eax
jmp 0x5a1a48
mov edx, dword [ebp + 0x14]
mov dword [edx], 0
cmp dword [ebp + 0x10], 0
je 0x59fe24
mov eax, dword [ebp + 0x10]
mov dword [eax], 0
cmp dword [ebp + 0x18], 0
jne 0x59fe36
mov dword [ebp - 0x3c], 0x10
jmp 0x5a1867
mov ecx, dword [ebp + 0x18]
mov dword [ecx], 0
mov edx, dword [ebp + 0xc]
and edx, 0x800
neg edx
sbb edx, edx
neg edx
mov dword [ebp - 0x484], edx
cmp dword [ebp - 0x484], 0
je 0x59fe90
mov eax, dword [ebp + 0xc]
and eax, 0x2000
test eax, eax
jne 0x59fe90
push 0xffffffffffffffff
mov ecx, dword [ebp + 8]
push ecx
call fcn.005a6be0
add esp, 8
mov edx, dword [ebp + 0x18]
mov dword [edx], eax
mov eax, dword [ebp + 0x18]
cmp dword [eax], 0
jl 0x59fe90
mov dword [ebp - 0x3c], 0x2c
jmp 0x5a1867
mov ecx, dword [ebp + 0xc]
and ecx, 0xffc38580
test ecx, ecx
je 0x59fea9
mov dword [ebp - 0x3c], 0x11
jmp 0x5a1867
cmp dword [ebp + 0x1c], 0
jne 0x59feb6
mov dword [ebp + 0x1c], 0x64c6b0
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp + 0x1c]
mov dword [edx], eax
mov ecx, dword [ebp + 0x1c]
add ecx, 0x100
mov edx, dword [ebp - 0x1c]
mov dword [edx + 4], ecx
mov eax, dword [ebp + 0x1c]
add eax, 0x200
mov ecx, dword [ebp - 0x1c]
mov dword [ecx + 8], eax
mov edx, dword [ebp + 0x1c]
add edx, 0x340
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], edx
mov ecx, dword [ebp + 0xc]
and ecx, 0x300000
mov dword [ebp - 0x510], ecx
cmp dword [ebp - 0x510], 0x100000
je 0x59ff26
cmp dword [ebp - 0x510], 0x200000
je 0x59ff2f
cmp dword [ebp - 0x510], 0x300000
je 0x59ff38
mov dword [ebp - 0x18], 0xa
jmp 0x59ff3f
mov dword [ebp - 0x18], 0xd
jmp 0x59ff3f
mov dword [ebp - 0x18], 0xa
jmp 0x59ff3f
mov dword [ebp - 0x18], 0xd0a
cmp dword [ebp - 0x18], 0xff
jle 0x59ff74
mov edx, dword [ebp - 0x1c]
mov dword [edx + 0x34], 2
mov eax, dword [ebp - 0x18]
sar eax, 8
and eax, 0xff
mov ecx, dword [ebp - 0x1c]
mov byte [ecx + 0x38], al
mov edx, dword [ebp - 0x18]
and edx, 0xff
mov eax, dword [ebp - 0x1c]
mov byte [eax + 0x39], dl
jmp 0x59ff87
mov ecx, dword [ebp - 0x1c]
mov dword [ecx + 0x34], 1
mov edx, dword [ebp - 0x1c]
mov al, byte [ebp - 0x18]
mov byte [edx + 0x38], al
mov ecx, dword [ebp - 0x1c]
mov dword [ecx + 0x24], 0
mov edx, dword [ebp - 0x1c]
mov dword [edx + 0x28], 0
mov eax, dword [ebp + 8]
sub eax, 1
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x24]
add ecx, 1
mov dword [ebp - 0x24], ecx
mov edx, dword [ebp - 0x24]
movzx eax, byte [edx]
mov dword [ebp - 0x480], eax
cmp dword [ebp - 0x480], 0
je 0x5a15d5
cmp dword [ebp - 0x34], 0
je 0x59ffe7
mov ecx, dword [ebp + 0xc]
and ecx, 0x4000
test ecx, ecx
je 0x59ffe2
mov edx, dword [ebp - 0x10]
add edx, 6
mov dword [ebp - 0x10], edx
jmp case.0x5a0108.1
mov eax, dword [ebp + 0xc]
and eax, 8
test eax, eax
je 0x5a007e
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0xc]
mov eax, dword [ebp - 0x480]
movzx ecx, byte [edx + eax]
and ecx, 1
test ecx, ecx
je 0x5a000e
jmp 0x59ffa4
cmp dword [ebp - 0x480], 0x23
jne 0x5a007e
mov edx, dword [ebp - 0x24]
add edx, 1
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x24]
movzx ecx, byte [eax]
test ecx, ecx
je 0x5a005a
mov edx, dword [ebp - 0x24]
movzx eax, byte [edx]
mov ecx, dword [ebp - 0x1c]
movzx edx, byte [ecx + 0x38]
cmp eax, edx
jne 0x5a0058
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 0x34], 1
je 0x5a0056
mov ecx, dword [ebp - 0x24]
movzx edx, byte [ecx + 1]
mov eax, dword [ebp - 0x1c]
movzx ecx, byte [eax + 0x39]
cmp edx, ecx
jne 0x5a0058
jmp 0x5a005a
jmp 0x5a0017
mov edx, dword [ebp - 0x24]
movzx eax, byte [edx]
test eax, eax
je 0x5a0079
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x34]
mov eax, dword [ebp - 0x24]
lea ecx, [eax + edx - 1]
mov dword [ebp - 0x24], ecx
jmp 0x59ffa4
jmp 0x5a15d5
mov edx, dword [ebp - 0x30]
add edx, 1
mov dword [ebp - 0x30], edx
mov eax, dword [ebp + 0xc]
and eax, 0x4000
test eax, eax
je 0x5a00d3
cmp dword [ebp - 0x480], 0x2a
je 0x5a00d3
cmp dword [ebp - 0x480], 0x2b
je 0x5a00d3
cmp dword [ebp - 0x480], 0x3f
je 0x5a00d3
cmp dword [ebp - 0x480], 0x7b
jne 0x5a00ca
mov ecx, dword [ebp - 0x24]
add ecx, 1
push ecx
call fcn.005a2144
add esp, 4
test eax, eax
jne 0x5a00d3
mov edx, dword [ebp - 0x10]
add edx, 6
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x480]
mov dword [ebp - 0x514], eax
mov ecx, dword [ebp - 0x514]
sub ecx, 0x24
mov dword [ebp - 0x514], ecx
cmp dword [ebp - 0x514], 0x58
ja case.0x5a0108.1
mov edx, dword [ebp - 0x514]
movzx eax, byte [edx + 0x5a1a72]
jmp dword [eax*4 + 0x5a1a4e]
push 0
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp - 0x2c]
push edx
lea eax, [ebp - 0x3c]
push eax
lea ecx, [ebp - 0x24]
push ecx
call fcn.005a1b9d
add esp, 0x14
mov dword [ebp - 0x480], eax
cmp dword [ebp - 0x3c], 0
je 0x5a013a
jmp 0x5a185c
mov dword [ebp - 0x44], 1
cmp dword [ebp - 0x480], 0
jl 0x5a01c4
mov edx, dword [ebp - 0x10]
add edx, 2
mov dword [ebp - 0x10], edx
cmp dword [ebp - 0x484], 0
je 0x5a01bf
cmp dword [ebp - 0x480], 0x7f
jle 0x5a01bf
mov dword [ebp - 0x49c], 0
jmp 0x5a0180
mov eax, dword [ebp - 0x49c]
add eax, 1
mov dword [ebp - 0x49c], eax
mov ecx, dword [ebp - 0x49c]
cmp ecx, dword [0x61aa04]
jge 0x5a01a7
mov edx, dword [ebp - 0x49c]
mov eax, dword [ebp - 0x480]
cmp eax, dword [edx*4 + 0x61a9ec]
jg 0x5a01a5
jmp 0x5a01a7
jmp 0x5a0171
mov ecx, dword [ebp - 0x10]
add ecx, dword [ebp - 0x49c]
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x44]
add edx, dword [ebp - 0x49c]
mov dword [ebp - 0x44], edx
jmp 0x59ffa4
mov eax, dword [ebp - 0x480]
neg eax
cmp eax, 0x13
jne 0x5a01dd
mov dword [ebp - 0x34], 1
jmp 0x59ffa4
mov ecx, dword [ebp - 0x480]
neg ecx
cmp ecx, 0xd
je 0x5a01f7
mov edx, dword [ebp - 0x480]
neg edx
cmp edx, 0xe
jne 0x5a0233
mov eax, dword [ebp - 0x10]
add eax, 3
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x44], 3
lea ecx, [ebp - 0x3c]
push ecx
lea edx, [ebp - 0x4a4]
push edx
lea eax, [ebp - 0x4a0]
push eax
lea ecx, [ebp - 0x24]
push ecx
call fcn.005a1fd5
add esp, 0x10
test eax, eax
jge 0x5a022e
jmp 0x5a185c
jmp 0x59ffa4
mov edx, dword [ebp - 0x10]
add edx, 1
mov dword [ebp - 0x10], edx
cmp dword [ebp - 0x480], 0xffffffec
jg 0x5a0363
mov eax, dword [ebp - 0x480]
neg eax
sub eax, 0x14
mov dword [ebp - 0x4a8], eax
cmp dword [ebp - 0x4a8], 0x20
jge 0x5a0278
mov edx, 1
mov ecx, dword [ebp - 0x4a8]
shl edx, cl
mov dword [ebp - 0x518], edx
jmp 0x5a0282
mov dword [ebp - 0x518], 1
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x28]
or ecx, dword [ebp - 0x518]
mov edx, dword [ebp - 0x1c]
mov dword [edx + 0x28], ecx
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x4a8]
cmp ecx, dword [eax + 0x24]
jle 0x5a02ae
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x4a8]
mov dword [edx + 0x24], eax
mov ecx, dword [ebp - 0x10]
add ecx, 2
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x24]
movzx eax, byte [edx + 1]
cmp eax, 0x7b
jne 0x5a0363
mov ecx, dword [ebp - 0x24]
add ecx, 2
push ecx
call fcn.005a2144
add esp, 4
test eax, eax
je 0x5a0363
lea edx, [ebp - 0x3c]
push edx
lea eax, [ebp - 0x498]
push eax
lea ecx, [ebp - 0x488]
push ecx
mov edx, dword [ebp - 0x24]
add edx, 2
push edx
call fcn.005a2216
add esp, 0x10
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x3c], 0
je 0x5a030d
jmp 0x5a185c
cmp dword [ebp - 0x488], 0
jne 0x5a0328
cmp dword [ebp - 0x498], 1
je 0x5a033a
cmp dword [ebp - 0x498], 0xffffffff
je 0x5a033a
cmp dword [ebp - 0x488], 1
jne 0x5a0345
cmp dword [ebp - 0x498], 0xffffffff
jne 0x5a0345
mov eax, dword [ebp - 0x10]
add eax, 1
mov dword [ebp - 0x10], eax
jmp 0x5a034e
mov ecx, dword [ebp - 0x10]
add ecx, 5
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x24]
movzx eax, byte [edx + 1]
cmp eax, 0x3f
jne 0x5a0363
mov ecx, dword [ebp - 0x24]
add ecx, 1
mov dword [ebp - 0x24], ecx
jmp 0x59ffa4
mov edx, dword [ebp - 0x10]
add edx, 1
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x44], 1
jmp 0x59ffa4
mov eax, dword [ebp - 0x10]
add eax, 1
mov dword [ebp - 0x10], eax
jmp 0x5a0464
mov ecx, dword [ebp - 0x24]
add ecx, 1
push ecx
call fcn.005a2144
add esp, 4
test eax, eax
jne 0x5a03a3
jmp case.0x5a0108.1
lea edx, [ebp - 0x3c]
push edx
lea eax, [ebp - 0x498]
push eax
lea ecx, [ebp - 0x488]
push ecx
mov edx, dword [ebp - 0x24]
add edx, 1
push edx
call fcn.005a2216
add esp, 0x10
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x3c], 0
je 0x5a03d2
jmp 0x5a185c
cmp dword [ebp - 0x488], 0
jne 0x5a03ed
cmp dword [ebp - 0x498], 1
je 0x5a03ff
cmp dword [ebp - 0x498], 0xffffffff
je 0x5a03ff
cmp dword [ebp - 0x488], 1
jne 0x5a040a
cmp dword [ebp - 0x498], 0xffffffff
jne 0x5a040a
mov eax, dword [ebp - 0x10]
add eax, 1
mov dword [ebp - 0x10], eax
jmp 0x5a044f
cmp dword [ebp - 0x488], 1
je 0x5a0432
mov ecx, dword [ebp - 0x10]
sub ecx, dword [ebp - 0x44]
mov dword [ebp - 0x10], ecx
cmp dword [ebp - 0x488], 0
jle 0x5a0432
mov edx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x10]
lea ecx, [eax + edx + 3]
mov dword [ebp - 0x10], ecx
xor edx, edx
cmp dword [ebp - 0x498], 0
setg dl
lea edx, [edx + edx + 1]
mov eax, dword [ebp - 0x44]
add eax, edx
mov ecx, dword [ebp - 0x10]
add ecx, eax
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x24]
movzx eax, byte [edx + 1]
cmp eax, 0x3f
jne 0x5a0464
mov ecx, dword [ebp - 0x24]
add ecx, 1
mov dword [ebp - 0x24], ecx
mov edx, dword [ebp - 0x24]
movzx eax, byte [edx + 1]
cmp eax, 0x2b
jne 0x5a0482
mov ecx, dword [ebp - 0x24]
add ecx, 1
mov dword [ebp - 0x24], ecx
mov edx, dword [ebp - 0x10]
add edx, 6
mov dword [ebp - 0x10], edx
jmp 0x59ffa4
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x10]
lea edx, [ecx + eax + 3]
mov dword [ebp - 0x10], edx
jmp 0x59ffa4
mov eax, dword [ebp - 0x24]
add eax, 1
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x24]
movzx edx, byte [ecx]
cmp edx, 0x5e
jne 0x5a04c2
mov dword [ebp - 0x494], 0xa
mov eax, dword [ebp - 0x24]
add eax, 1
mov dword [ebp - 0x24], eax
jmp 0x5a04cc
mov dword [ebp - 0x494], 0
mov dword [ebp - 0x470], 0
mov ecx, dword [ebp - 0x24]
movzx edx, byte [ecx]
test edx, edx
je 0x5a0bf7
cmp dword [ebp - 0x34], 0
je 0x5a051b
mov eax, dword [ebp - 0x24]
movzx ecx, byte [eax]
cmp ecx, 0x5c
jne 0x5a0501
mov edx, dword [ebp - 0x24]
movzx eax, byte [edx + 1]
cmp eax, 0x45
je 0x5a0506
jmp 0x5a065b
mov dword [ebp - 0x34], 0
mov ecx, dword [ebp - 0x24]
add ecx, 1
mov dword [ebp - 0x24], ecx
jmp 0x5a0bcb
mov edx, dword [ebp - 0x24]
movzx eax, byte [edx]
cmp eax, 0x5c
jne 0x5a05fc
push 1
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp - 0x2c]
push edx
lea eax, [ebp - 0x3c]
push eax
lea ecx, [ebp - 0x24]
push ecx
call fcn.005a1b9d
add esp, 0x14
mov dword [ebp - 0x480], eax
cmp dword [ebp - 0x3c], 0
je 0x5a0555
jmp 0x5a185c
mov edx, dword [ebp - 0x480]
neg edx
cmp edx, 4
jne 0x5a056e
mov dword [ebp - 0x480], 8
jmp 0x5a05a0
mov eax, dword [ebp - 0x480]
neg eax
cmp eax, 0xf
jne 0x5a0587
mov dword [ebp - 0x480], 0x58
jmp 0x5a05a0
mov ecx, dword [ebp - 0x480]
neg ecx
cmp ecx, 0x13
jne 0x5a05a0
mov dword [ebp - 0x34], 1
jmp 0x5a0bcb
cmp dword [ebp - 0x480], 0
jl 0x5a05ae
jmp 0x5a0767
mov dword [ebp - 0x494], 0xa
mov edx, dword [ebp - 0x480]
neg edx
cmp edx, 0xe
je 0x5a05d2
mov eax, dword [ebp - 0x480]
neg eax
cmp eax, 0xd
jne 0x5a05f7
cmp dword [ebp - 0x470], 0
jne 0x5a05ee
mov dword [ebp - 0x470], 1
mov ecx, dword [ebp - 0x10]
add ecx, 4
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x10]
add edx, 3
mov dword [ebp - 0x10], edx
jmp 0x5a0bcb
mov eax, dword [ebp - 0x24]
movzx ecx, byte [eax]
cmp ecx, 0x5b
jne 0x5a065b
mov edx, dword [ebp - 0x24]
movzx eax, byte [edx + 1]
cmp eax, 0x3a
je 0x5a062b
mov ecx, dword [ebp - 0x24]
movzx edx, byte [ecx + 1]
cmp edx, 0x2e
je 0x5a062b
mov eax, dword [ebp - 0x24]
movzx ecx, byte [eax + 1]
cmp ecx, 0x3d
jne 0x5a065b
mov edx, dword [ebp - 0x1c]
push edx
lea eax, [ebp - 0x24]
push eax
mov ecx, dword [ebp - 0x24]
push ecx
call fcn.005a2329
add esp, 0xc
test eax, eax
je 0x5a065b
mov edx, dword [ebp - 0x24]
add edx, 1
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x494], 0xa
jmp 0x5a0bcb
cmp dword [ebp - 0x484], 0
je 0x5a075b
mov dword [ebp - 0x4b0], 0
mov eax, dword [ebp - 0x24]
movzx ecx, byte [eax]
mov dword [ebp - 0x480], ecx
mov edx, dword [ebp - 0x480]
and edx, 0xc0
cmp edx, 0xc0
jne 0x5a074d
mov eax, dword [ebp - 0x480]
and eax, 0x3f
movzx ecx, byte [eax + 0x61aa38]
mov dword [ebp - 0x4bc], ecx
mov edx, dword [ebp - 0x4bc]
imul edx, edx, 6
mov dword [ebp - 0x4b8], edx
mov eax, dword [ebp - 0x4bc]
mov edx, dword [ebp - 0x480]
and edx, dword [eax*4 + 0x61aa20]
mov ecx, dword [ebp - 0x4b8]
shl edx, cl
mov dword [ebp - 0x480], edx
mov dword [ebp - 0x4b4], 1
jmp 0x5a06f7
mov eax, dword [ebp - 0x4b4]
add eax, 1
mov dword [ebp - 0x4b4], eax
mov ecx, dword [ebp - 0x4b4]
cmp ecx, dword [ebp - 0x4bc]
jg 0x5a073b
mov edx, dword [ebp - 0x4b8]
sub edx, 6
mov dword [ebp - 0x4b8], edx
mov eax, dword [ebp - 0x24]
add eax, dword [ebp - 0x4b4]
movzx edx, byte [eax]
and edx, 0x3f
mov ecx, dword [ebp - 0x4b8]
shl edx, cl
mov eax, dword [ebp - 0x480]
or eax, edx
mov dword [ebp - 0x480], eax
jmp 0x5a06e8
mov ecx, dword [ebp - 0x4b0]
add ecx, dword [ebp - 0x4bc]
mov dword [ebp - 0x4b0], ecx
mov edx, dword [ebp - 0x24]
add edx, dword [ebp - 0x4b0]
mov dword [ebp - 0x24], edx
jmp 0x5a0767
mov eax, dword [ebp - 0x24]
movzx ecx, byte [eax]
mov dword [ebp - 0x480], ecx
mov edx, dword [ebp - 0x494]
add edx, 1
mov dword [ebp - 0x494], edx
mov dword [ebp - 0x4ac], 0xffffffff
mov eax, dword [ebp - 0x24]
movzx ecx, byte [eax + 1]
cmp ecx, 0x2d
jne 0x5a095d
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x4c0], edx
mov eax, dword [ebp - 0x24]
add eax, 1
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x24]
movzx edx, byte [ecx + 1]
cmp edx, 0x5c
jne 0x5a0817
mov eax, dword [ebp - 0x24]
add eax, 1
mov dword [ebp - 0x24], eax
push 1
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp - 0x2c]
push edx
lea eax, [ebp - 0x3c]
push eax
lea ecx, [ebp - 0x24]
push ecx
call fcn.005a1b9d
add esp, 0x14
mov dword [ebp - 0x4ac], eax
cmp dword [ebp - 0x3c], 0
je 0x5a07e2
jmp 0x5a185c
mov edx, dword [ebp - 0x4ac]
neg edx
cmp edx, 4
jne 0x5a07fb
mov dword [ebp - 0x4ac], 8
jmp 0x5a0812
mov eax, dword [ebp - 0x4ac]
neg eax
cmp eax, 0xf
jne 0x5a0812
mov dword [ebp - 0x4ac], 0x58
jmp 0x5a094b
mov ecx, dword [ebp - 0x24]
movzx edx, byte [ecx + 1]
test edx, edx
je 0x5a094b
mov eax, dword [ebp - 0x24]
movzx ecx, byte [eax + 1]
cmp ecx, 0x5d
je 0x5a094b
mov edx, dword [ebp - 0x24]
add edx, 1
mov dword [ebp - 0x24], edx
cmp dword [ebp - 0x484], 0
je 0x5a093f
mov dword [ebp - 0x4c4], 0
mov eax, dword [ebp - 0x24]
movzx ecx, byte [eax]
mov dword [ebp - 0x4ac], ecx
mov edx, dword [ebp - 0x4ac]
and edx, 0xc0
cmp edx, 0xc0
jne 0x5a0931
mov eax, dword [ebp - 0x4ac]
and eax, 0x3f
movzx ecx, byte [eax + 0x61aa38]
mov dword [ebp - 0x4d0], ecx
mov edx, dword [ebp - 0x4d0]
imul edx, edx, 6
mov dword [ebp - 0x4cc], edx
mov eax, dword [ebp - 0x4d0]
mov edx, dword [ebp - 0x4ac]
and edx, dword [eax*4 + 0x61aa20]
mov ecx, dword [ebp - 0x4cc]
shl edx, cl
mov dword [ebp - 0x4ac], edx
mov dword [ebp - 0x4c8], 1
jmp 0x5a08db
mov eax, dword [ebp - 0x4c8]
add eax, 1
mov dword [ebp - 0x4c8], eax
mov ecx, dword [ebp - 0x4c8]
cmp ecx, dword [ebp - 0x4d0]
jg 0x5a091f
mov edx, dword [ebp - 0x4cc]
sub edx, 6
mov dword [ebp - 0x4cc], edx
mov eax, dword [ebp - 0x24]
add eax, dword [ebp - 0x4c8]
movzx edx, byte [eax]
and edx, 0x3f
mov ecx, dword [ebp - 0x4cc]
shl edx, cl
mov eax, dword [ebp - 0x4ac]
or eax, edx
mov dword [ebp - 0x4ac], eax
jmp 0x5a08cc
mov ecx, dword [ebp - 0x4c4]
add ecx, dword [ebp - 0x4d0]
mov dword [ebp - 0x4c4], ecx
mov edx, dword [ebp - 0x24]
add edx, dword [ebp - 0x4c4]
mov dword [ebp - 0x24], edx
jmp 0x5a094b
mov eax, dword [ebp - 0x24]
movzx ecx, byte [eax]
mov dword [ebp - 0x4ac], ecx
cmp dword [ebp - 0x4ac], 0
jge 0x5a095d
mov edx, dword [ebp - 0x4c0]
mov dword [ebp - 0x24], edx
cmp dword [ebp - 0x4ac], 0
jl 0x5a0b4b
mov dword [ebp - 0x494], 0xa
mov eax, dword [ebp - 0x4ac]
cmp eax, dword [ebp - 0x480]
jge 0x5a098e
mov dword [ebp - 0x3c], 8
jmp 0x5a185c
cmp dword [ebp - 0x484], 0
je 0x5a0b46
cmp dword [ebp - 0x4ac], 0xff
jg 0x5a09c2
mov ecx, dword [ebp + 0xc]
and ecx, 1
test ecx, ecx
je 0x5a0b46
cmp dword [ebp - 0x4ac], 0x7f
jle 0x5a0b46
cmp dword [ebp - 0x470], 0
jne 0x5a09de
mov dword [ebp - 0x470], 1
mov edx, dword [ebp - 0x10]
add edx, 4
mov dword [ebp - 0x10], edx
mov eax, dword [ebp + 0xc]
and eax, 1
test eax, eax
je 0x5a0b0e
mov ecx, dword [ebp - 0x480]
mov dword [ebp - 0x4e0], ecx
mov edx, dword [ebp - 0x4ac]
mov dword [ebp - 0x4e8], edx
lea eax, [ebp - 0x4dc]
push eax
lea ecx, [ebp - 0x4e4]
push ecx
mov edx, dword [ebp - 0x4e8]
push edx
lea eax, [ebp - 0x4e0]
push eax
call fcn.005a23aa
add esp, 0x10
test eax, eax
je 0x5a0b0e
mov ecx, dword [ebp - 0x4e4]
cmp ecx, dword [ebp - 0x480]
jl 0x5a0a4e
mov edx, dword [ebp - 0x4dc]
cmp edx, dword [ebp - 0x4ac]
jg 0x5a0a4e
jmp 0x5a0a04
mov eax, dword [ebp - 0x4e4]
cmp eax, dword [ebp - 0x480]
jge 0x5a0a7b
mov ecx, dword [ebp - 0x480]
sub ecx, 1
cmp dword [ebp - 0x4dc], ecx
jl 0x5a0a7b
mov edx, dword [ebp - 0x4e4]
mov dword [ebp - 0x480], edx
jmp 0x5a0a04
mov eax, dword [ebp - 0x4dc]
cmp eax, dword [ebp - 0x4ac]
jle 0x5a0aab
mov ecx, dword [ebp - 0x4ac]
add ecx, 1
cmp dword [ebp - 0x4e4], ecx
jg 0x5a0aab
mov edx, dword [ebp - 0x4dc]
mov dword [ebp - 0x4ac], edx
jmp 0x5a0a04
mov eax, dword [ebp - 0x4e4]
cmp eax, dword [ebp - 0x4dc]
jne 0x5a0ac5
mov dword [ebp - 0x51c], 0
jmp 0x5a0ae1
lea ecx, [ebp - 0x4d8]
push ecx
mov edx, dword [ebp - 0x4dc]
push edx
call fcn.005a6fa0
add esp, 8
mov dword [ebp - 0x51c], eax
lea eax, [ebp - 0x4d8]
push eax
mov ecx, dword [ebp - 0x4e4]
push ecx
call fcn.005a6fa0
add esp, 8
mov edx, dword [ebp - 0x51c]
lea eax, [eax + edx + 1]
mov ecx, dword [ebp - 0x10]
add ecx, eax
mov dword [ebp - 0x10], ecx
jmp 0x5a0a04
lea edx, [ebp - 0x4d8]
push edx
mov eax, dword [ebp - 0x480]
push eax
call fcn.005a6fa0
add esp, 8
mov esi, eax
lea ecx, [ebp - 0x4d8]
push ecx
mov edx, dword [ebp - 0x4ac]
push edx
call fcn.005a6fa0
add esp, 8
add eax, dword [ebp - 0x10]
lea eax, [eax + esi + 1]
mov dword [ebp - 0x10], eax
jmp 0x5a0bcb
cmp dword [ebp - 0x484], 0
je 0x5a0bcb
cmp dword [ebp - 0x480], 0xff
jg 0x5a0b73
mov ecx, dword [ebp + 0xc]
and ecx, 1
test ecx, ecx
je 0x5a0bcb
cmp dword [ebp - 0x480], 0x7f
jle 0x5a0bcb
mov dword [ebp - 0x494], 0xa
cmp dword [ebp - 0x470], 0
jne 0x5a0b99
mov dword [ebp - 0x470], 1
mov edx, dword [ebp - 0x10]
add edx, 4
mov dword [ebp - 0x10], edx
mov eax, dword [ebp + 0xc]
and eax, 1
xor ebx, ebx
test eax, eax
setne bl
inc ebx
lea ecx, [ebp - 0x4f0]
push ecx
mov edx, dword [ebp - 0x480]
push edx
call fcn.005a6fa0
add esp, 8
add eax, 1
imul ebx, eax
mov eax, dword [ebp - 0x10]
add eax, ebx
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x24]
add ecx, 1
mov dword [ebp - 0x24], ecx
mov edx, dword [ebp - 0x24]
movzx eax, byte [edx]
test eax, eax
je 0x5a0bf7
cmp dword [ebp - 0x34], 0
jne 0x5a04e4
mov ecx, dword [ebp - 0x24]
movzx edx, byte [ecx]
cmp edx, 0x5d
jne 0x5a04e4
mov eax, dword [ebp - 0x24]
movzx ecx, byte [eax]
test ecx, ecx
jne 0x5a0c0d
mov dword [ebp - 0x3c], 6
jmp 0x5a185c
cmp dword [ebp - 0x494], 1
jne 0x5a0c24
mov edx, dword [ebp - 0x10]
add edx, 3
mov dword [ebp - 0x10], edx
jmp 0x5a0d07
mov eax, dword [ebp - 0x10]
add eax, 0x21
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x24]
movzx edx, byte [ecx]
test edx, edx
je 0x5a0d07
mov eax, dword [ebp - 0x24]
movzx ecx, byte [eax + 1]
cmp ecx, 0x7b
jne 0x5a0d07
mov edx, dword [ebp - 0x24]
add edx, 2
push edx
call fcn.005a2144
add esp, 4
test eax, eax
je 0x5a0d07
lea eax, [ebp - 0x3c]
push eax
lea ecx, [ebp - 0x498]
push ecx
lea edx, [ebp - 0x488]
push edx
mov eax, dword [ebp - 0x24]
add eax, 2
push eax
call fcn.005a2216
add esp, 0x10
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x3c], 0
je 0x5a0c91
jmp 0x5a185c
cmp dword [ebp - 0x488], 0
jne 0x5a0cac
cmp dword [ebp - 0x498], 1
je 0x5a0cbe
cmp dword [ebp - 0x498], 0xffffffff
je 0x5a0cbe
cmp dword [ebp - 0x488], 1
jne 0x5a0cc9
cmp dword [ebp - 0x498], 0xffffffff
jne 0x5a0cc9
mov ecx, dword [ebp - 0x10]
add ecx, 1
mov dword [ebp - 0x10], ecx
jmp 0x5a0cd2
mov edx, dword [ebp - 0x10]
add edx, 5
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x24]
movzx ecx, byte [eax + 1]
cmp ecx, 0x2b
jne 0x5a0cf2
mov edx, dword [ebp - 0x24]
add edx, 1
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x10]
add eax, 6
mov dword [ebp - 0x10], eax
jmp 0x5a0d07
mov ecx, dword [ebp - 0x24]
movzx edx, byte [ecx + 1]
cmp edx, 0x3f
jne 0x5a0d07
mov eax, dword [ebp - 0x24]
add eax, 1
mov dword [ebp - 0x24], eax
jmp 0x59ffa4
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x48c], 3
mov dword [ebp - 0x47c], 0
mov ecx, dword [ebp - 0x24]
movzx edx, byte [ecx + 1]
cmp edx, 0x3f
jne 0x5a12ce
mov eax, dword [ebp - 0x24]
movzx ecx, byte [eax + 2]
mov dword [ebp - 0x480], ecx
mov edx, dword [ebp - 0x480]
mov dword [ebp - 0x520], edx
mov eax, dword [ebp - 0x520]
sub eax, 0x21
mov dword [ebp - 0x520], eax
cmp dword [ebp - 0x520], 0x31
ja case.0x5a0d79.1
mov ecx, dword [ebp - 0x520]
movzx edx, byte [ecx + 0x5a1aef]
jmp dword [edx*4 + 0x5a1acb]
mov eax, dword [ebp - 0x24]
add eax, 3
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x24]
movzx edx, byte [ecx]
test edx, edx
je 0x5a0da9
mov eax, dword [ebp - 0x24]
movzx ecx, byte [eax]
cmp ecx, 0x29
je 0x5a0da9
mov edx, dword [ebp - 0x24]
add edx, 1
mov dword [ebp - 0x24], edx
jmp 0x5a0d89
mov eax, dword [ebp - 0x24]
movzx ecx, byte [eax]
test ecx, ecx
jne 0x5a0dbf
mov dword [ebp - 0x3c], 0x12
jmp 0x5a185c
jmp 0x59ffa4
mov edx, dword [ebp - 0x24]
add edx, 2
mov dword [ebp - 0x24], edx
jmp 0x5a12cc
mov eax, dword [ebp - 0x24]
add eax, 3
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x24]
movzx edx, byte [ecx]
cmp edx, 0x3c
jne 0x5a0e97
mov eax, dword [ebp - 0x24]
add eax, 1
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x500], ecx
mov edx, dword [ebp - 0x24]
movzx eax, byte [edx]
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0xc]
movzx eax, byte [edx + eax]
and eax, 0x10
test eax, eax
je 0x5a0e1e
mov ecx, dword [ebp - 0x24]
add ecx, 1
mov dword [ebp - 0x24], ecx
jmp 0x5a0dfc
mov edx, dword [ebp - 0x24]
movzx eax, byte [edx]
cmp eax, 0x3e
je 0x5a0e35
mov dword [ebp - 0x3c], 0x2a
jmp 0x5a185c
mov ecx, dword [ebp - 0x40]
add ecx, 1
mov dword [ebp - 0x40], ecx
cmp dword [ebp - 0x40], 0x2710
jle 0x5a0e53
mov dword [ebp - 0x3c], 0x31
jmp 0x5a185c
mov edx, dword [ebp - 0x24]
sub edx, dword [ebp - 0x500]
cmp edx, dword [ebp - 0x474]
jle 0x5a0e88
mov eax, dword [ebp - 0x24]
sub eax, dword [ebp - 0x500]
mov dword [ebp - 0x474], eax
cmp dword [ebp - 0x474], 0x20
jle 0x5a0e88
mov dword [ebp - 0x3c], 0x30
jmp 0x5a185c
mov dword [ebp - 0x47c], 1
jmp 0x5a12cc
mov ecx, dword [ebp - 0x24]
movzx edx, byte [ecx]
cmp edx, 0x3d
je 0x5a0ead
mov eax, dword [ebp - 0x24]
movzx ecx, byte [eax]
cmp ecx, 0x3e
jne 0x5a0ef1
mov edx, dword [ebp - 0x10]
add edx, 9
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x24]
add eax, 1
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x24]
movzx edx, byte [ecx]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0xc]
movzx edx, byte [ecx + edx]
and edx, 0x10
test edx, edx
je 0x5a0ed8
jmp 0x5a0eb6
mov eax, dword [ebp - 0x24]
movzx ecx, byte [eax]
cmp ecx, 0x29
je 0x5a0eef
mov dword [ebp - 0x3c], 0x2a
jmp 0x5a185c
jmp 0x5a0f57
mov dword [ebp - 0x3c], 0x29
jmp 0x5a185c
mov edx, dword [ebp - 0x24]
add edx, 1
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x24]
add eax, 2
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x480], 0x52
je 0x5a0f37
mov ecx, dword [ebp - 0x24]
add ecx, 1
mov dword [ebp - 0x24], ecx
mov edx, dword [ebp - 0x24]
movzx eax, byte [edx]
movzx ecx, byte [eax + 0x61a898]
and ecx, 4
test ecx, ecx
je 0x5a0f37
jmp 0x5a0f18
mov edx, dword [ebp - 0x24]
movzx eax, byte [edx]
cmp eax, 0x29
je 0x5a0f4e
mov dword [ebp - 0x3c], 0x1d
jmp 0x5a185c
mov ecx, dword [ebp - 0x10]
add ecx, 9
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x24]
movzx eax, byte [edx + 1]
cmp eax, 0x2b
je 0x5a0f87
mov ecx, dword [ebp - 0x24]
movzx edx, byte [ecx + 1]
cmp edx, 0x2a
je 0x5a0f87
mov eax, dword [ebp - 0x24]
movzx ecx, byte [eax + 1]
cmp ecx, 0x3f
je 0x5a0f87
mov edx, dword [ebp - 0x24]
movzx eax, byte [edx + 1]
cmp eax, 0x7b
jne 0x5a0f9f
mov ecx, dword [ebp - 0x10]
add ecx, 6
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x490], 0xb
jmp 0x5a13b5
jmp 0x59ffa4
mov edx, dword [ebp - 0x24]
add edx, 2
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x24]
add eax, 1
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x24]
movzx edx, byte [ecx]
movzx eax, byte [edx + 0x61a898]
and eax, 4
test eax, eax
je 0x5a0fcc
jmp 0x5a0fad
mov ecx, dword [ebp - 0x24]
movzx edx, byte [ecx]
cmp edx, 0x29
je 0x5a0fe3
mov dword [ebp - 0x3c], 0x27
jmp 0x5a185c
mov eax, dword [ebp - 0x10]
add eax, 6
mov dword [ebp - 0x10], eax
jmp 0x59ffa4
mov ecx, dword [ebp - 0x24]
add ecx, 3
mov dword [ebp - 0x24], ecx
mov edx, dword [ebp - 0x24]
movzx eax, byte [edx]
cmp eax, 0x3d
je 0x5a1010
mov ecx, dword [ebp - 0x24]
movzx edx, byte [ecx]
cmp edx, 0x21
jne 0x5a1025
mov dword [ebp - 0x20], 3
mov eax, dword [ebp - 0x10]
add eax, 3
mov dword [ebp - 0x10], eax
jmp 0x5a12cc
mov dword [ebp - 0x3c], 0x18
jmp 0x5a185a
mov ecx, dword [ebp - 0x24]
movzx edx, byte [ecx + 3]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0xc]
movzx edx, byte [ecx + edx]
and edx, 0x10
test edx, edx
je 0x5a1096
mov eax, dword [ebp - 0x24]
add eax, 4
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x10]
add ecx, 3
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x24]
movzx eax, byte [edx]
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0xc]
movzx eax, byte [edx + eax]
and eax, 0x10
test eax, eax
je 0x5a107d
mov ecx, dword [ebp - 0x24]
add ecx, 1
mov dword [ebp - 0x24], ecx
jmp 0x5a105b
mov edx, dword [ebp - 0x24]
movzx eax, byte [edx]
cmp eax, 0x29
je 0x5a1094
mov dword [ebp - 0x3c], 0x1a
jmp 0x5a1858
jmp 0x5a10e4
mov ecx, dword [ebp - 0x24]
add ecx, 1
mov dword [ebp - 0x24], ecx
mov edx, dword [ebp - 0x24]
movzx eax, byte [edx + 2]
cmp eax, 0x3f
jne 0x5a10cf
mov ecx, dword [ebp - 0x24]
movzx edx, byte [ecx + 3]
cmp edx, 0x3d
je 0x5a10e4
mov eax, dword [ebp - 0x24]
movzx ecx, byte [eax + 3]
cmp ecx, 0x21
je 0x5a10e4
mov edx, dword [ebp - 0x24]
movzx eax, byte [edx + 3]
cmp eax, 0x3c
je 0x5a10e4
mov ecx, dword [ebp - 0x24]
add ecx, 2
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x3c], 0x1c
jmp 0x5a1856
jmp 0x5a12cc
mov dword [ebp - 0x4f4], 0
mov edx, dword [ebp - 0x4f4]
mov dword [ebp - 0x4f8], edx
lea eax, [ebp - 0x4f8]
mov dword [ebp - 0x4fc], eax
mov ecx, dword [ebp - 0x24]
add ecx, 2
mov dword [ebp - 0x24], ecx
jmp 0x5a111f
mov edx, dword [ebp - 0x24]
add edx, 1
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x24]
movzx ecx, byte [eax]
mov dword [ebp - 0x480], ecx
mov edx, dword [ebp - 0x480]
mov dword [ebp - 0x524], edx
mov eax, dword [ebp - 0x524]
sub eax, 0x29
mov dword [ebp - 0x524], eax
cmp dword [ebp - 0x524], 0x4f
ja case.0x5a1160.1
mov ecx, dword [ebp - 0x524]
movzx edx, byte [ecx + 0x5a1b4d]
jmp dword [edx*4 + 0x5a1b21]
mov eax, dword [ebp - 0x4fc]
mov ecx, dword [eax]
or ecx, 1
mov edx, dword [ebp - 0x4fc]
mov dword [edx], ecx
jmp 0x5a1116
mov eax, dword [ebp - 0x4fc]
mov ecx, dword [eax]
or ecx, 0x80000
mov edx, dword [ebp - 0x4fc]
mov dword [edx], ecx
mov eax, dword [ebp + 0xc]
or eax, 0x8000000
mov dword [ebp + 0xc], eax
jmp 0x5a1116
mov ecx, dword [ebp - 0x4fc]
mov edx, dword [ecx]
or edx, 2
mov eax, dword [ebp - 0x4fc]
mov dword [eax], edx
jmp 0x5a1116
mov ecx, dword [ebp - 0x4fc]
mov edx, dword [ecx]
or edx, 4
mov eax, dword [ebp - 0x4fc]
mov dword [eax], edx
jmp 0x5a1116
mov ecx, dword [ebp - 0x4fc]
mov edx, dword [ecx]
or edx, 8
mov eax, dword [ebp - 0x4fc]
mov dword [eax], edx
jmp 0x5a1116
mov ecx, dword [ebp - 0x4fc]
mov edx, dword [ecx]
or edx, 0x40
mov eax, dword [ebp - 0x4fc]
mov dword [eax], edx
jmp 0x5a1116
mov ecx, dword [ebp - 0x4fc]
mov edx, dword [ecx]
or edx, 0x200
mov eax, dword [ebp - 0x4fc]
mov dword [eax], edx
jmp 0x5a1116
lea ecx, [ebp - 0x4f4]
mov dword [ebp - 0x4fc], ecx
jmp 0x5a1116
cmp dword [ebp - 0x30], 0
jne case.0x5a1160.17
mov edx, dword [ebp + 0xc]
or edx, dword [ebp - 0x4f8]
mov eax, dword [ebp - 0x4f4]
not eax
and edx, eax
mov dword [ebp + 0xc], edx
mov dword [ebp - 0x4f4], 0
mov ecx, dword [ebp - 0x4f4]
mov dword [ebp - 0x4f8], ecx
mov edx, dword [ebp - 0x30]
sub edx, 1
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x10]
add eax, 2
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x4f8]
or ecx, dword [ebp - 0x4f4]
and ecx, 7
test ecx, ecx
je 0x5a1295
mov edx, dword [ebp - 0x10]
add edx, 4
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x20], 2
jmp 0x5a12a3
mov dword [ebp - 0x3c], 0xc
jmp 0x5a1854
cmp dword [ebp - 0x480], 0x29
jne 0x5a12cc
cmp dword [ebp - 0x20], 2
jne 0x5a12c7
cmp dword [ebp - 4], 0
je 0x5a12be
cmp dword [ebp - 4], 3
jne 0x5a12c7
mov eax, dword [ebp - 4]
add eax, dword [ebp - 0x20]
mov dword [ebp - 4], eax
jmp 0x59ffa4
jmp 0x5a12e2
mov ecx, dword [ebp + 0xc]
and ecx, 0x1000
neg ecx
sbb ecx, ecx
inc ecx
mov dword [ebp - 0x47c], ecx
cmp dword [ebp - 0x47c], 0
je 0x5a1309
mov edx, dword [ebp - 0x2c]
add edx, 1
mov dword [ebp - 0x2c], edx
cmp dword [ebp - 0x2c], 0x64
jle 0x5a1309
mov eax, dword [ebp - 0x48c]
add eax, 3
mov dword [ebp - 0x48c], eax
cmp dword [ebp - 8], 0xc8
jb 0x5a131e
mov dword [ebp - 0x3c], 0x13
jmp 0x5a1852
mov ecx, dword [ebp - 8]
mov dl, byte [ebp - 4]
mov byte [ebp + ecx - 0x110], dl
mov eax, dword [ebp - 0x20]
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x10]
mov dword [ebp + ecx*4 - 0x430], edx
mov eax, dword [ebp - 8]
add eax, 1
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0x10]
add ecx, dword [ebp - 0x48c]
mov dword [ebp - 0x10], ecx
jmp 0x59ffa4
mov edx, dword [ebp - 0x10]
add edx, 3
mov dword [ebp - 0x10], edx
cmp dword [ebp - 8], 0
jbe 0x5a13ab
mov eax, dword [ebp - 8]
sub eax, 1
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x10]
sub edx, dword [ebp + ecx*4 - 0x430]
mov dword [ebp - 0x490], edx
mov eax, dword [ebp - 8]
movzx ecx, byte [ebp + eax - 0x110]
mov dword [ebp - 4], ecx
cmp dword [ebp - 0x490], 0x7530
jle 0x5a13a9
mov dword [ebp - 0x3c], 0x32
jmp 0x5a1850
jmp 0x5a13b5
mov dword [ebp - 0x490], 0
mov edx, dword [ebp - 0x24]
movzx eax, byte [edx + 1]
mov dword [ebp - 0x480], eax
cmp dword [ebp - 0x480], 0x7b
jne 0x5a1412
mov ecx, dword [ebp - 0x24]
add ecx, 2
push ecx
call fcn.005a2144
add esp, 4
test eax, eax
je 0x5a1412
lea edx, [ebp - 0x3c]
push edx
lea eax, [ebp - 0x498]
push eax
lea ecx, [ebp - 0x488]
push ecx
mov edx, dword [ebp - 0x24]
add edx, 2
push edx
call fcn.005a2216
add esp, 0x10
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x3c], 0
je 0x5a140d
jmp 0x5a184e
jmp 0x5a149e
cmp dword [ebp - 0x480], 0x2a
jne 0x5a143a
mov dword [ebp - 0x488], 0
mov dword [ebp - 0x498], 0xffffffff
mov eax, dword [ebp - 0x24]
add eax, 1
mov dword [ebp - 0x24], eax
jmp 0x5a149e
cmp dword [ebp - 0x480], 0x2b
jne 0x5a1462
mov dword [ebp - 0x488], 1
mov dword [ebp - 0x498], 0xffffffff
mov ecx, dword [ebp - 0x24]
add ecx, 1
mov dword [ebp - 0x24], ecx
jmp 0x5a149e
cmp dword [ebp - 0x480], 0x3f
jne 0x5a148a
mov dword [ebp - 0x488], 0
mov dword [ebp - 0x498], 1
mov edx, dword [ebp - 0x24]
add edx, 1
mov dword [ebp - 0x24], edx
jmp 0x5a149e
mov dword [ebp - 0x488], 1
mov dword [ebp - 0x498], 1
cmp dword [ebp - 0x488], 0
jne 0x5a14d8
mov eax, dword [ebp - 0x10]
add eax, 1
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x498], 0
jle 0x5a14d6
mov ecx, dword [ebp - 0x498]
sub ecx, 1
mov edx, dword [ebp - 0x490]
add edx, 7
imul ecx, edx
mov eax, dword [ebp - 0x10]
add eax, ecx
mov dword [ebp - 0x10], eax
jmp 0x5a1520
mov ecx, dword [ebp - 0x488]
sub ecx, 1
imul ecx, dword [ebp - 0x490]
mov edx, dword [ebp - 0x10]
add edx, ecx
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x498]
cmp eax, dword [ebp - 0x488]
jle 0x5a1520
mov ecx, dword [ebp - 0x498]
sub ecx, dword [ebp - 0x488]
mov edx, dword [ebp - 0x490]
add edx, 7
imul ecx, edx
mov eax, dword [ebp - 0x10]
lea ecx, [eax + ecx - 6]
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x24]
movzx eax, byte [edx + 1]
cmp eax, 0x2b
jne 0x5a153e
mov ecx, dword [ebp - 0x24]
add ecx, 1
mov dword [ebp - 0x24], ecx
mov edx, dword [ebp - 0x10]
add edx, 6
mov dword [ebp - 0x10], edx
jmp 0x59ffa4
cmp dword [ebp - 0x34], 0
je 0x5a1573
cmp dword [ebp - 0x480], 0x5c
jne 0x5a1573
mov eax, dword [ebp - 0x24]
movzx ecx, byte [eax + 1]
cmp ecx, 0x45
jne 0x5a1573
mov dword [ebp - 0x34], 0
mov edx, dword [ebp - 0x24]
add edx, 1
mov dword [ebp - 0x24], edx
jmp 0x59ffa4
mov eax, dword [ebp - 0x10]
add eax, 2
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x44], 1
cmp dword [ebp - 0x484], 0
je 0x5a15d0
mov ecx, dword [ebp - 0x480]
and ecx, 0xc0
cmp ecx, 0xc0
jne 0x5a15d0
mov edx, dword [ebp - 0x24]
movzx eax, byte [edx + 1]
and eax, 0xc0
cmp eax, 0x80
jne 0x5a15d0
mov ecx, dword [ebp - 0x44]
add ecx, 1
mov dword [ebp - 0x44], ecx
mov edx, dword [ebp - 0x10]
add edx, 1
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x24]
add eax, 1
mov dword [ebp - 0x24], eax
jmp 0x5a15a0
jmp 0x59ffa4
mov ecx, dword [ebp - 0x10]
add ecx, 4
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp + 0xc]
and edx, 0x4000
test edx, edx
je 0x5a15f4
mov eax, dword [ebp - 0x10]
add eax, 6
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0x10000
jle 0x5a1609
mov dword [ebp - 0x3c], 0x14
jmp 0x5a1867
mov ecx, dword [ebp - 0x474]
add ecx, 3
mov edx, dword [ebp - 0x40]
imul edx, ecx
mov eax, dword [ebp - 0x10]
lea ecx, [eax + edx + 0x28]
mov dword [ebp - 0x38], ecx
mov edx, dword [ebp - 0x38]
push edx
call dword [0x64c6a0]
add esp, 4
mov dword [ebp - 0x478], eax
cmp dword [ebp - 0x478], 0
jne 0x5a164a
mov dword [ebp - 0x3c], 0x15
jmp 0x5a1867
mov eax, dword [ebp - 0x478]
mov dword [eax], 0x50435245
mov ecx, dword [ebp - 0x478]
mov edx, dword [ebp - 0x38]
mov dword [ecx + 4], edx
mov eax, dword [ebp - 0x478]
mov ecx, dword [ebp + 0xc]
mov dword [eax + 8], ecx
mov edx, dword [ebp - 0x478]
mov dword [edx + 0xc], 0
mov eax, dword [ebp - 0x478]
mov word [eax + 0x18], 0x28
mov ecx, dword [ebp - 0x474]
add ecx, 3
mov edx, dword [ebp - 0x478]
mov word [edx + 0x1a], cx
mov eax, dword [ebp - 0x478]
mov cx, word [ebp - 0x40]
mov word [eax + 0x1c], cx
mov edx, dword [ebp - 0x478]
mov word [edx + 0x1e], 0
xor eax, eax
cmp dword [ebp + 0x1c], 0x64c6b0
sete al
dec eax
and eax, dword [ebp + 0x1c]
mov ecx, dword [ebp - 0x478]
mov dword [ecx + 0x20], eax
mov edx, dword [ebp - 0x478]
mov dword [edx + 0x24], 0
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0x1c], 0
mov ecx, dword [ebp - 0x474]
add ecx, 3
mov edx, dword [ebp - 0x1c]
mov dword [edx + 0x20], ecx
mov eax, dword [ebp - 0x478]
movzx ecx, word [eax + 0x18]
mov edx, dword [ebp - 0x478]
add edx, ecx
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0x18], edx
mov ecx, dword [ebp - 0x478]
movzx edx, word [ecx + 0x1a]
mov eax, dword [ebp - 0x478]
movzx ecx, word [eax + 0x1c]
imul edx, ecx
mov eax, dword [ebp - 0x1c]
add edx, dword [eax + 0x18]
mov dword [ebp - 0x14], edx
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x14]
mov dword [ecx + 0x10], edx
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp + 8]
mov dword [eax + 0x14], ecx
mov edx, dword [ebp - 0x1c]
mov dword [edx + 0x2c], 0
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0x30], 0
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x24], ecx
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x28], edx
mov eax, dword [ebp - 0x28]
mov byte [eax], 0x50
mov dword [ebp - 0x2c], 0
mov ecx, dword [ebp - 0x1c]
push ecx
push 0
lea edx, [ebp - 0x48]
push edx
lea eax, [ebp - 0xc]
push eax
push 0
push 0
lea ecx, [ebp - 0x3c]
push ecx
lea edx, [ebp - 0x24]
push edx
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0x2c]
push ecx
mov edx, dword [ebp + 0xc]
and edx, 7
push edx
mov eax, dword [ebp + 0xc]
push eax
call fcn.005a2457
add esp, 0x30
mov ecx, dword [ebp - 0x478]
mov dx, word [ebp - 0x2c]
mov word [ecx + 0x10], dx
mov eax, dword [ebp - 0x478]
mov ecx, dword [ebp - 0x1c]
mov dx, word [ecx + 0x24]
mov word [eax + 0x12], dx
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 0x30], 0
je 0x5a17df
mov ecx, dword [ebp - 0x478]
mov edx, dword [ecx + 8]
or edx, 0x80000000
mov eax, dword [ebp - 0x478]
mov dword [eax + 8], edx
cmp dword [ebp - 0x3c], 0
jne 0x5a17f6
mov ecx, dword [ebp - 0x24]
movzx edx, byte [ecx]
test edx, edx
je 0x5a17f6
mov dword [ebp - 0x3c], 0x16
mov eax, dword [ebp - 0x28]
mov byte [eax], 0
mov ecx, dword [ebp - 0x28]
add ecx, 1
mov dword [ebp - 0x28], ecx
mov edx, dword [ebp - 0x28]
sub edx, dword [ebp - 0x14]
cmp edx, dword [ebp - 0x10]
jle 0x5a1817
mov dword [ebp - 0x3c], 0x17
mov eax, dword [ebp - 0x478]
movzx ecx, word [eax + 0x12]
mov edx, dword [ebp - 0x478]
movzx eax, word [edx + 0x10]
cmp ecx, eax
jle 0x5a1836
mov dword [ebp - 0x3c], 0xf
cmp dword [ebp - 0x3c], 0
je 0x5a188b
mov ecx, dword [ebp - 0x478]
push ecx
call dword [0x64c6a4]
add esp, 4
jmp 0x5a185c
jmp 0x5a185c
jmp 0x5a185c
jmp 0x5a185c
jmp 0x5a185c
jmp 0x5a185c
jmp 0x5a185c
jmp 0x5a185c
mov edx, dword [ebp - 0x24]
sub edx, dword [ebp + 8]
mov eax, dword [ebp + 0x18]
mov dword [eax], edx
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp - 0x3c]
mov eax, dword [edx*4 + 0x64c5d0]
mov dword [ecx], eax
cmp dword [ebp + 0x10], 0
je 0x5a1884
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp - 0x3c]
mov dword [ecx], edx
xor eax, eax
jmp 0x5a1a48
mov eax, dword [ebp + 0xc]
and eax, 0x10
test eax, eax
jne 0x5a19a6
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x504], ecx
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + 0x28]
push eax
push 0
lea ecx, [ebp - 0x504]
push ecx
mov edx, dword [ebp - 0x14]
push edx
call fcn.005a67c8
add esp, 0x10
test eax, eax
je 0x5a18dc
mov eax, dword [ebp - 0x478]
mov ecx, dword [eax + 8]
or ecx, 0x10
mov edx, dword [ebp - 0x478]
mov dword [edx + 8], ecx
jmp 0x5a19a6
cmp dword [ebp - 0xc], 0
jge 0x5a18fa
push 0
lea eax, [ebp - 0x504]
push eax
mov ecx, dword [ebp - 0x14]
push ecx
call fcn.005a6a62
add esp, 0xc
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jl 0x5a1975
mov edx, dword [ebp - 0xc]
and edx, 0xff
mov dword [ebp - 0x508], edx
mov eax, dword [ebp - 0xc]
and eax, 0x100
test eax, eax
je 0x5a1941
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 4]
mov eax, dword [ebp - 0x508]
movzx ecx, byte [edx + eax]
cmp ecx, dword [ebp - 0x508]
jne 0x5a1941
mov edx, dword [ebp - 0x508]
mov dword [ebp - 0x528], edx
jmp 0x5a194a
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x528], eax
mov ecx, dword [ebp - 0x478]
mov dx, word [ebp - 0x528]
mov word [ecx + 0x14], dx
mov eax, dword [ebp - 0x478]
mov ecx, dword [eax + 8]
or ecx, 0x40000000
mov edx, dword [ebp - 0x478]
mov dword [edx + 8], ecx
jmp 0x5a19a6
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x28]
push ecx
push 0
mov edx, dword [ebp - 0x14]
push edx
call fcn.005a692f
add esp, 0xc
test eax, eax
je 0x5a19a6
mov eax, dword [ebp - 0x478]
mov ecx, dword [eax + 8]
or ecx, 0x10000000
mov edx, dword [ebp - 0x478]
mov dword [edx + 8], ecx
cmp dword [ebp - 0x48], 0
jl 0x5a1a42
mov eax, dword [ebp - 0x478]
mov ecx, dword [eax + 8]
and ecx, 0x10
test ecx, ecx
je 0x5a19cd
mov edx, dword [ebp - 0x48]
and edx, 0x200
test edx, edx
je 0x5a1a42
mov eax, dword [ebp - 0x48]
and eax, 0xff
mov dword [ebp - 0x50c], eax
mov ecx, dword [ebp - 0x48]
and ecx, 0x100
test ecx, ecx
je 0x5a1a10
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + 4]
mov ecx, dword [ebp - 0x50c]
movzx edx, byte [eax + ecx]
cmp edx, dword [ebp - 0x50c]
jne 0x5a1a10
mov eax, dword [ebp - 0x48]
and eax, 0xfffffeff
mov dword [ebp - 0x52c], eax
jmp 0x5a1a19
mov ecx, dword [ebp - 0x48]
mov dword [ebp - 0x52c], ecx
mov edx, dword [ebp - 0x478]
mov ax, word [ebp - 0x52c]
mov word [edx + 0x16], ax
mov ecx, dword [ebp - 0x478]
mov edx, dword [ecx + 8]
or edx, 0x20000000
mov eax, dword [ebp - 0x478]
mov dword [eax + 8], edx
mov eax, dword [ebp - 0x478]
pop esi
pop ebx
mov esp, ebp
pop ebp
ret