Function at 0x450560
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x110
push esi
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x4c], eax
mov eax, dword [esi + 0x14]
mov dword [ebp - 0x48], eax
mov eax, dword [esi + 0xc]
mov dword [ebp - 0x50], eax
mov eax, dword [esi + 0x40]
mov ecx, eax
shr ecx, 0x13
and ecx, 1
mov dword [ebp - 0x38], ecx
jne 0x45059d
mov dword [ebp - 0x7c], 0
test eax, 0x20000
je 0x4505a4
mov dword [ebp - 0x7c], 1
mov ecx, dword [esi + 0x38]
mov dword [ebp - 0x68], 0
lea eax, [ecx + 1]
mov dword [esi + 0x38], eax
cmp ecx, dword [esi + 0x30]
jb 0x4505c3
mov eax, 0xffffffd1
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0x28]
mov eax, ecx
inc ecx
mov dword [ebp - 0x84], ecx
cmp eax, dword [esi + 0x34]
jbe 0x4505de
mov eax, 0xffffffcb
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x24]
and eax, 0xfffffffe
mov dword [ebp - 0x94], eax
mov eax, 0x2aaaaaab
push ebx
push edi
lea ecx, [ecx - 2]
mov dword [ebp - 0xa0], 0xfffffffd
imul ecx
mov eax, 0x2aaaaaab
xor edi, edi
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
lea ecx, [ecx + ecx*2]
add ecx, ecx
imul ecx
mov ecx, dword [ebp + 0x20]
mov eax, dword [esi + 0x20]
mov ebx, edx
shr ebx, 0x1f
add ecx, 8
add ebx, edx
mov dword [ebp - 0x44], eax
or edx, 0xffffffff
mov dword [ebp - 0x70], ecx
mov dword [ebp - 0x64], edx
mov dword [ebp - 0x14], ebx
lea eax, [ebx + ebx*2]
lea eax, [ecx + eax*4]
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x90], eax
mov edx, eax
mov dword [ebp - 0x5c], ecx
mov al, byte [ecx]
cmp al, 0x81
je 0x450719
cmp al, 0x82
je 0x450719
cmp dword [ebp - 0x84], 1
jne 0x4506b3
test byte [esi + 0x3c], 0x40
je 0x4506b3
mov ebx, ecx
nop
movzx ecx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl ecx, 8
or ecx, eax
add ebx, ecx
cmp byte [ebx], 0x78
je 0x450670
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0x5c], ebx
mov ebx, dword [ebp - 0x70]
cmp dword [eax], 0
mov edi, dword [eax + 4]
jne 0x4506a8
lea eax, [edi + edi*2]
shl eax, 2
push eax
mov eax, edx
push ebx
push eax
call fcn.0045cb10
add esp, 0xc
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x60], eax
jmp 0x45082b
cmp al, 0x89
je 0x4506c8
cmp al, 0x8e
je 0x4506c8
cmp al, 0x8a
je 0x4506c8
mov ecx, 3
cmp al, 0x8f
jne 0x4506d0
mov ecx, 5
nop dword [eax]
mov eax, edi
inc edi
cmp eax, ebx
jge 0x454bc6
sub ecx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x5c]
add ecx, eax
mov dword [edx], ecx
mov dword [edx + 4], 0
add edx, 0xc
movzx ecx, byte [eax + 1]
movzx eax, byte [eax + 2]
shl ecx, 8
or ecx, eax
mov eax, dword [ebp - 0x5c]
add eax, ecx
mov ecx, 3
mov dword [ebp - 0x5c], eax
cmp byte [eax], 0x78
je 0x4506d0
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x60], eax
jmp 0x450828
xor esi, esi
mov edx, ecx
nop dword [eax]
movzx ecx, byte [edx + 4]
movzx eax, byte [edx + 5]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 2]
cmp ecx, esi
cmovbe ecx, esi
mov esi, ecx
movzx ecx, byte [edx + 1]
shl ecx, 8
or ecx, eax
add edx, ecx
cmp byte [edx], 0x78
je 0x450720
mov ebx, dword [ebp + 0x10]
cmp dword [ebp - 0x38], edi
je 0x450787
xor edx, edx
mov dword [ebp - 0x60], ebx
test esi, esi
je 0x450798
mov ecx, dword [ebp - 0x4c]
nop dword [eax]
cmp ebx, ecx
jbe 0x450798
dec ebx
mov dword [ebp - 0x60], ebx
cmp ebx, ecx
jbe 0x450780
nop dword [eax]
mov al, byte [ebx]
and al, 0xc0
cmp al, 0x80
jne 0x45077d
dec ebx
cmp ebx, ecx
ja 0x450770
mov dword [ebp - 0x60], ebx
inc edx
cmp edx, esi
jb 0x450760
jmp 0x450798
mov eax, ebx
mov edx, esi
sub eax, dword [ebp - 0x4c]
cmp eax, esi
cmovb edx, eax
sub ebx, edx
mov dword [ebp - 0x60], ebx
mov eax, dword [ebp + 8]
cmp ebx, dword [eax + 0x18]
jae 0x4507a3
mov dword [eax + 0x18], ebx
mov esi, dword [ebp - 0x90]
mov ebx, dword [ebp - 0x5c]
add esi, 8
mov dword [ebp - 0x5c], ebx
mov bl, byte [ebx + 3]
cmp bl, 0x7d
je 0x4507be
xor ecx, ecx
jmp 0x4507d2
mov eax, dword [ebp - 0x5c]
movzx ecx, byte [eax + 4]
movzx eax, byte [eax + 5]
shl ecx, 8
or ecx, eax
cmp ecx, edx
ja 0x450808
mov eax, edi
inc edi
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
xor eax, eax
mov dword [esi - 4], 0
cmp bl, 0x7d
mov ebx, dword [ebp - 0x50]
cmove eax, dword [ebp - 0xa0]
add ebx, 0xfffffffd
sub eax, dword [ebp - 0x5c]
add eax, ebx
mov dword [esi - 8], eax
mov eax, edx
sub eax, ecx
mov dword [esi], eax
add esi, 0xc
mov ebx, dword [ebp - 0x5c]
movzx ecx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl ecx, 8
or ecx, eax
add ebx, ecx
mov dword [ebp - 0x5c], ebx
cmp byte [ebx], 0x78
je 0x4507b2
mov esi, dword [ebp + 8]
mov eax, dword [ebp - 0x60]
mov ebx, dword [ebp - 0x70]
mov ecx, dword [ebp + 0x20]
mov dword [ecx], 0
mov ecx, dword [ebp + 0x2c]
mov dword [ebp - 0x30], ecx
mov ecx, dword [ebp - 0x68]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x98], 0
mov dword [ebp - 0x74], 0
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x68], 0
cmp eax, dword [esi + 0x1c]
jbe 0x450863
mov dword [esi + 0x1c], eax
mov eax, dword [ebp + 0x20]
mov edx, edi
mov esi, dword [ebp - 0x1c]
mov ecx, ebx
mov ebx, dword [ebp - 0x90]
mov dword [ebp - 8], ecx
xor dword [eax], 1
mov dword [eax + 4], edx
lea eax, [edx + edx*2]
lea edi, [ebx + eax*4]
mov dword [ebp - 0x70], ebx
mov dword [ebp - 0x90], ecx
mov dword [ebp - 4], edx
mov dword [ebp - 0xc], 0
cmp esi, dword [ebp - 0x48]
jae 0x4509cc
cmp dword [ebp - 0x38], 0
movzx ebx, byte [esi]
mov dword [ebp - 0x24], 1
mov dword [ebp - 0x3c], ebx
je 0x4509d9
cmp ebx, 0xc0
jb 0x4509d9
test bl, 0x20
jne 0x4508e1
movzx eax, byte [esi + 1]
and ebx, 0x1f
and eax, 0x3f
shl ebx, 6
or ebx, eax
mov dword [ebp - 0x24], 2
jmp 0x4509d6
test bl, 0x10
jne 0x450910
movzx ecx, byte [esi + 1]
and ebx, 0xf
movzx eax, byte [esi + 2]
and ecx, 0x3f
shl ebx, 6
and eax, 0x3f
or ebx, ecx
mov dword [ebp - 0x24], 3
mov ecx, dword [ebp - 8]
shl ebx, 6
or ebx, eax
jmp 0x4509d6
test bl, 8
jne 0x45094b
movzx ecx, byte [esi + 1]
and ebx, 7
movzx eax, byte [esi + 2]
and ecx, 0x3f
shl ebx, 6
and eax, 0x3f
or ebx, ecx
mov dword [ebp - 0x24], 4
mov ecx, dword [ebp - 8]
shl ebx, 6
or ebx, eax
movzx eax, byte [esi + 3]
shl ebx, 6
and eax, 0x3f
or ebx, eax
jmp 0x4509d6
mov ecx, dword [ebp - 0x1c]
movzx eax, byte [esi + 1]
movzx edx, byte [esi + 2]
and eax, 0x3f
movzx esi, byte [esi + 3]
and edx, 0x3f
movzx ecx, byte [ecx + 4]
and esi, 0x3f
and ecx, 0x3f
mov dword [ebp - 0x6c], ecx
mov ecx, dword [ebp - 8]
test bl, 4
jne 0x450999
and ebx, 3
mov dword [ebp - 0x24], 5
shl ebx, 6
or ebx, eax
shl ebx, 6
or ebx, edx
mov edx, dword [ebp - 4]
shl ebx, 6
or ebx, esi
shl ebx, 6
or ebx, dword [ebp - 0x6c]
jmp 0x4509d6
and ebx, 1
mov dword [ebp - 0x24], 6
shl ebx, 6
or ebx, eax
mov eax, dword [ebp - 0x1c]
shl ebx, 6
or ebx, edx
mov edx, dword [ebp - 4]
shl ebx, 6
movzx eax, byte [eax + 5]
or ebx, esi
shl ebx, 6
and eax, 0x3f
or ebx, dword [ebp - 0x6c]
shl ebx, 6
or ebx, eax
jmp 0x4509d6
mov dword [ebp - 0x24], 0
or ebx, 0xffffffff
mov dword [ebp - 0x3c], ebx
xor eax, eax
mov dword [ebp - 0x6c], eax
test edx, edx
jle 0x454be7
mov esi, ebx
and esi, 7
mov dword [ebp - 0xe8], esi
mov esi, dword [ebp - 0x70]
lea eax, [eax + eax*2]
mov dword [ebp - 0x58], edi
mov dword [ebp - 0x78], edx
mov dword [ebp - 0x8c], edi
lea esi, [esi + eax*4]
mov dword [ebp - 0xec], edx
mov eax, dword [esi]
mov dword [ebp - 0xe4], edi
mov dword [ebp - 0xe0], edx
mov dword [ebp - 0xdc], edi
mov dword [ebp - 0xd8], edx
mov dword [ebp - 0xd4], edi
mov dword [ebp - 0xd0], edx
mov dword [ebp - 0x88], edi
mov dword [ebp - 0xc8], edx
mov dword [ebp - 0xc4], edi
mov dword [ebp - 0xc0], edx
mov dword [ebp - 0xbc], edi
mov dword [ebp - 0xb8], edx
mov dword [ebp - 0xb4], edi
mov dword [ebp - 0xb0], edx
mov dword [ebp - 0xac], edi
mov dword [ebp - 0xa8], edx
mov dword [ebp - 0x9c], edi
mov dword [ebp - 0xa4], edx
mov dword [ebp - 0xf8], edi
mov dword [ebp - 0xf4], edx
mov dword [ebp - 0xf0], edi
mov dword [ebp - 0xcc], edx
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x18], eax
test eax, eax
jns 0x450aed
cmp dword [esi + 8], 0
jle 0x450ae6
mov eax, dword [ebp - 0xc]
inc dword [ebp - 0xc]
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
mov eax, dword [ebp - 0x18]
mov dword [ecx], eax
mov eax, dword [esi + 4]
mov dword [ecx + 4], eax
mov eax, dword [esi + 8]
dec eax
mov dword [ecx + 8], eax
add ecx, 0xc
cmp dword [ebp - 0x54], 0
mov dword [ebp - 8], ecx
je 0x45390f
mov dword [ebp - 0x68], 1
jmp 0x45390f
neg eax
mov dword [ebp - 0x18], eax
mov dword [esi], eax
xor edx, edx
cmp dword [ebp - 0x6c], edx
jle 0x450b13
mov ecx, dword [ebp - 0x70]
cmp dword [ecx], eax
jne 0x450b0a
mov eax, dword [ecx + 4]
cmp eax, dword [esi + 4]
je case.default.0x453723
mov eax, dword [ebp - 0x18]
inc edx
add ecx, 0xc
cmp edx, dword [ebp - 0x6c]
jl 0x450af7
mov esi, dword [ebp - 0x50]
add esi, eax
cmp dword [ebp - 0x24], 0
movzx eax, byte [esi]
mov dword [ebp - 0x10], eax
jne 0x450b39
mov ecx, dword [ebp - 0x54]
mov edx, 1
cmp byte [eax + 0x499610], 0
cmovne ecx, edx
mov dword [ebp - 0x54], ecx
mov al, byte [eax + 0x499560]
test al, al
je 0x450ca2
movzx eax, al
mov ecx, 1
add eax, esi
mov dword [ebp - 0x20], ecx
cmp dword [ebp - 0x38], 0
mov dword [ebp - 0x28], eax
movzx edx, byte [eax]
mov dword [ebp - 0x2c], edx
je 0x450c47
cmp edx, 0xc0
jb 0x450c4a
test dl, 0x20
jne 0x450b89
movzx eax, byte [eax + 1]
and edx, 0x1f
mov ecx, 2
jmp 0x450c3c
movzx ecx, byte [eax + 1]
and ecx, 0x3f
test dl, 0x10
jne 0x450bab
movzx eax, byte [eax + 2]
and edx, 0xf
shl edx, 6
or edx, ecx
mov ecx, 3
jmp 0x450c3c
test dl, 8
jne 0x450bd2
movzx eax, byte [eax + 2]
and edx, 7
shl edx, 6
and eax, 0x3f
or edx, ecx
mov ecx, 4
shl edx, 6
or edx, eax
mov eax, dword [ebp - 0x28]
movzx eax, byte [eax + 3]
jmp 0x450c3c
movzx ebx, byte [eax + 2]
and ebx, 0x3f
mov dword [ebp - 0x20], ebx
movzx ebx, byte [eax + 3]
and ebx, 0x3f
mov dword [ebp - 0x2c], ebx
movzx ebx, byte [eax + 4]
and ebx, 0x3f
mov dword [ebp - 0x28], ebx
mov ebx, dword [ebp - 0x3c]
test dl, 4
jne 0x450c19
and edx, 3
shl edx, 6
or edx, ecx
mov ecx, 5
shl edx, 6
or edx, dword [ebp - 0x20]
shl edx, 6
or edx, dword [ebp - 0x2c]
shl edx, 6
or edx, dword [ebp - 0x28]
jmp 0x450c44
movzx eax, byte [eax + 5]
and edx, 1
shl edx, 6
or edx, ecx
mov ecx, 6
shl edx, 6
or edx, dword [ebp - 0x20]
shl edx, 6
or edx, dword [ebp - 0x2c]
shl edx, 6
or edx, dword [ebp - 0x28]
and eax, 0x3f
shl edx, 6
or edx, eax
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp - 0x10]
cmp eax, 0x55
jb 0x450cb0
lea eax, [edx - 0xe]
cmp eax, 8
ja case.default.0x450c5a
jmp dword [eax*4 + 0x454c60]
mov eax, dword [ebp - 0x10]
add eax, 0x12c
mov dword [ebp - 0x10], eax
jmp 0x450cb0
mov eax, dword [ebp - 0x10]
add eax, 0x154
mov dword [ebp - 0x10], eax
jmp 0x450cb0
mov eax, dword [ebp - 0x10]
add eax, 0x140
mov dword [ebp - 0x10], eax
jmp 0x450cb0
mov eax, dword [ebp - 0x10]
add eax, 0x168
mov dword [ebp - 0x10], eax
jmp 0x450cb0
mov eax, dword [ebp - 0x10]
add eax, 0x17c
mov dword [ebp - 0x10], eax
jmp 0x450cb0
xor ecx, ecx
or edx, 0xffffffff
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp - 0x10]
dec eax
cmp eax, 0x1dc
ja case.0x450cc3.3
movzx eax, byte [eax + 0x454db0]
jmp dword [eax*4 + 0x454c84]
cmp esi, dword [ebp - 0x5c]
je 0x450d33
mov edx, dword [ebp - 4]
mov eax, edx
mov ecx, dword [ebp - 0x14]
inc edx
mov dword [ebp - 4], edx
cmp eax, ecx
jge 0x454bc6
mov eax, dword [ebp - 0x18]
add eax, 3
mov dword [edi + 4], 0
mov dword [edi], eax
add edi, 0xc
cmp dword [ebp - 0x10], 0x79
je case.default.0x453316
mov eax, edx
inc edx
mov dword [ebp - 4], edx
cmp eax, ecx
jge 0x454bc6
movzx ecx, byte [esi + 1]
movzx eax, byte [esi + 2]
shl ecx, 8
or ecx, eax
mov eax, dword [ebp - 0x18]
sub eax, ecx
mov ecx, dword [ebp - 8]
mov dword [edi], eax
mov dword [edi + 4], 0
add edi, 0xc
jmp 0x45390f
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x60]
mov esi, dword [ebp + 8]
cmp ecx, edx
ja 0x450d5d
mov eax, dword [esi + 0x3c]
test al, 4
jne case.default.0x453723
test al, 8
je 0x450d5d
mov eax, dword [esi + 0x24]
add eax, dword [ebp - 0x4c]
cmp edx, eax
jbe case.default.0x453723
mov eax, dword [ebp - 0x64]
test eax, eax
jns 0x450d73
cmp dword [ebp - 0x94], 2
sbb eax, eax
inc eax
mov dword [ebp - 0x64], eax
jmp 0x450d95
jle 0x450d95
inc eax
mov dword [ebp - 0x64], eax
add eax, eax
cmp eax, dword [ebp - 0x94]
jle 0x450d92
mov eax, dword [ebp - 0x94]
mov dword [ebp - 0x64], 0
jmp 0x450da3
mov eax, dword [ebp - 0x64]
test eax, eax
jne 0x450da1
mov eax, dword [ebp - 0x94]
jmp 0x450da3
add eax, eax
add eax, 0xfffffffe
test eax, eax
jle 0x450dc4
shl eax, 2
push eax
mov eax, dword [ebp + 0x18]
push eax
add eax, 8
push eax
call fcn.0045cb10
mov ecx, dword [ebp - 0x1c]
add esp, 0xc
mov edx, dword [ebp - 0x60]
cmp dword [ebp - 0x94], 2
jb 0x450de4
mov ebx, dword [ebp + 0x18]
mov eax, edx
sub eax, dword [ebp - 0x4c]
mov dword [ebx], eax
mov eax, ecx
sub eax, dword [ebp - 0x4c]
mov ecx, ebx
mov ebx, dword [ebp - 0x3c]
mov dword [ecx + 4], eax
test byte [esi + 0x3c], 0x80
je case.default.0x453723
mov eax, dword [ebp - 0x64]
pop edi
pop ebx
pop esi
mov esp, ebp
pop ebp
ret
movzx ecx, byte [esi + 1]
movzx eax, byte [esi + 2]
shl ecx, 8
or ecx, eax
add esi, ecx
cmp byte [esi], 0x78
je case.0x450cc3.120
mov edx, dword [ebp - 4]
mov eax, edx
inc edx
mov dword [ebp - 4], edx
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
sub esi, dword [ebp - 0x50]
mov dword [edi], esi
mov dword [edi + 4], 0
add edi, 0xc
mov ecx, dword [ebp - 8]
jmp 0x45390f
mov edx, dword [ebp - 4]
mov eax, edx
inc edx
mov dword [ebp - 4], edx
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
mov eax, esi
mov dword [edi + 4], 0
sub eax, dword [ebp - 0x50]
add eax, 3
mov dword [edi], eax
add edi, 0xc
movzx ecx, byte [esi + 1]
movzx eax, byte [esi + 2]
shl ecx, 8
or ecx, eax
add esi, ecx
cmp byte [esi], 0x78
je 0x450e40
mov ecx, dword [ebp - 8]
jmp 0x45390f
mov edx, dword [ebp - 4]
mov eax, edx
inc edx
mov dword [ebp - 4], edx
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
mov eax, dword [ebp - 0x18]
add eax, 5
mov dword [edi + 4], 0
mov dword [edi], eax
add edi, 0xc
movzx ecx, byte [esi + 1]
movzx eax, byte [esi + 2]
shl ecx, 8
or ecx, eax
add esi, ecx
cmp byte [esi], 0x78
jne case.default.0x453316
nop dword [eax + eax]
mov eax, edx
inc edx
mov dword [ebp - 4], edx
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
mov eax, esi
mov dword [edi + 4], 0
sub eax, dword [ebp - 0x50]
add eax, 3
mov dword [edi], eax
add edi, 0xc
movzx ecx, byte [esi + 1]
movzx eax, byte [esi + 2]
shl ecx, 8
or ecx, eax
add esi, ecx
cmp byte [esi], 0x78
je 0x450ec0
mov ecx, dword [ebp - 8]
jmp 0x45390f
mov ecx, dword [ebp - 4]
mov eax, ecx
inc ecx
mov dword [ebp - 4], ecx
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
mov eax, dword [ebp - 0x18]
inc eax
mov dword [edi + 4], 0
mov dword [edi], eax
movzx edx, byte [esi + 2]
movzx eax, byte [esi + 3]
shl edx, 8
or edx, eax
inc edx
add edx, esi
cmp byte [edx], 0x78
jne 0x450f47
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
add edx, ecx
cmp byte [edx], 0x78
je 0x450f33
mov ecx, dword [ebp - 4]
mov eax, ecx
inc ecx
mov dword [ebp - 4], ecx
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
sub edx, dword [ebp - 0x50]
add edx, 3
mov dword [edi + 0x10], 0
mov dword [edi + 0xc], edx
add edi, 0x18
jmp case.default.0x453723
movzx edx, byte [esi + 2]
movzx eax, byte [esi + 3]
shl edx, 8
or edx, eax
inc edx
add edx, esi
cmp byte [edx], 0x78
jne 0x450fa4
nop word [eax + eax]
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
add edx, ecx
cmp byte [edx], 0x78
je 0x450f90
mov ecx, dword [ebp - 4]
mov eax, ecx
inc ecx
mov dword [ebp - 4], ecx
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
sub edx, dword [ebp - 0x50]
add edx, 3
mov dword [edi + 4], 0
mov dword [edi], edx
add edi, 0xc
jmp case.default.0x453723
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 4]
cmp eax, dword [ebp - 0x4c]
jne case.default.0x453316
mov eax, dword [ebp + 8]
test byte [eax + 0x3c], 1
jne case.default.0x453316
mov eax, edx
inc edx
mov dword [ebp - 4], edx
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 8]
inc eax
mov dword [edi], eax
mov dword [edi + 4], 0
add edi, 0xc
jmp 0x45390f
mov eax, dword [ebp - 0x1c]
mov esi, dword [ebp + 8]
cmp eax, dword [ebp - 0x4c]
jne 0x451025
test byte [esi + 0x3c], 1
je 0x4510a5
cmp eax, dword [ebp - 0x48]
jne 0x451037
test dword [esi + 0x40], 0x200000
je case.default.0x453723
mov edx, dword [esi + 0x44]
mov ecx, dword [esi + 0x10]
test edx, edx
je 0x451076
cmp eax, ecx
jbe 0x451064
push dword [ebp - 0x38]
lea eax, [esi + 0x48]
push eax
push ecx
push edx
push dword [ebp - 0x1c]
call fcn.00458530
add esp, 0x14
test eax, eax
je 0x451064
mov eax, 1
jmp 0x451066
xor eax, eax
test eax, eax
je case.default.0x453723
mov edx, dword [ebp - 4]
jmp 0x450fe9
mov edx, dword [esi + 0x48]
lea eax, [edx + ecx]
mov ecx, dword [ebp - 0x1c]
cmp ecx, eax
jb case.default.0x453723
sub ecx, edx
mov al, byte [ecx]
cmp al, byte [esi + 0x50]
jne case.default.0x453723
cmp edx, 1
je 0x4510a5
mov al, byte [ecx + 1]
cmp al, byte [esi + 0x51]
jne case.default.0x453723
mov edx, dword [ebp - 4]
jmp 0x450fe9
mov eax, dword [ebp - 0x48]
cmp dword [ebp - 0x1c], eax
jb case.default.0x453723
mov eax, dword [ebp + 8]
test byte [eax + 0x3c], 0x20
jne 0x454b8d
mov edx, dword [ebp - 4]
jmp 0x450fe9
mov eax, dword [ebp - 0x4c]
mov edx, dword [ebp - 4]
cmp dword [ebp - 0x1c], eax
jmp 0x450fe3
mov eax, dword [ebp - 0x4c]
add eax, dword [ebp + 0x14]
mov edx, dword [ebp - 4]
cmp dword [ebp - 0x1c], eax
jmp 0x450fe3
cmp dword [ebp - 0x24], 0
jle case.default.0x453723
mov esi, dword [ebp + 8]
mov edx, dword [esi + 0x44]
test edx, edx
je 0x451137
mov ecx, dword [esi + 0x14]
cmp dword [ebp - 0x1c], ecx
jae 0x451128
push dword [ebp - 0x38]
lea eax, [esi + 0x48]
push eax
push ecx
push edx
push dword [ebp - 0x1c]
call fcn.00458390
add esp, 0x14
test eax, eax
je 0x451128
mov eax, 1
jmp 0x45112a
xor eax, eax
lea edx, [esi + 0x48]
test eax, eax
jne case.default.0x453723
jmp 0x451168
mov eax, dword [esi + 0x14]
lea edx, [esi + 0x48]
mov ecx, dword [edx]
sub eax, ecx
cmp dword [ebp - 0x1c], eax
ja 0x451168
mov eax, dword [ebp - 0x1c]
mov al, byte [eax]
cmp al, byte [esi + 0x50]
jne 0x451168
cmp ecx, 1
je case.default.0x453723
mov eax, dword [ebp - 0x1c]
mov al, byte [eax + 1]
cmp al, byte [esi + 0x51]
je case.default.0x453723
mov eax, dword [ebp - 0x1c]
inc eax
cmp eax, dword [esi + 0x14]
jb case.0x453723.10
test byte [esi + 0x3c], 0x20
je case.0x453723.10
cmp dword [esi + 0x44], 0
jne case.0x453723.10
cmp dword [edx], 2
jne case.0x453723.10
movzx eax, byte [esi + 0x50]
cmp ebx, eax
jne case.0x453723.10
mov dword [ebp - 0x74], 1
mov dword [ebp - 0x54], 1
jmp case.default.0x453723
cmp dword [ebp - 0x24], 0
jle case.default.0x453723
mov esi, dword [ebp - 0xc]
mov eax, esi
inc esi
mov dword [ebp - 0xc], esi
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
mov eax, dword [ebp - 0x18]
inc eax
mov ecx, dword [ebp - 8]
mov dword [ecx], eax
mov dword [ecx + 4], 0
add ecx, 0xc
mov dword [ebp - 8], ecx
jmp 0x45390c
cmp dword [ebp - 0x24], 0
je 0x4510b9
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x44]
lea esi, [edx + 0x48]
mov eax, dword [edx + 0x14]
test ecx, ecx
je 0x45121b
cmp dword [ebp - 0x1c], eax
jae 0x45120f
push dword [ebp - 0x38]
push esi
push eax
push ecx
push dword [ebp - 0x1c]
call fcn.00458390
add esp, 0x14
test eax, eax
je 0x45120f
mov eax, 1
jmp 0x451211
xor eax, eax
test eax, eax
je case.default.0x453723
jmp 0x45124a
mov ecx, dword [esi]
sub eax, ecx
cmp dword [ebp - 0x1c], eax
ja case.default.0x453723
mov eax, dword [ebp - 0x1c]
mov al, byte [eax]
cmp al, byte [edx + 0x50]
jne case.default.0x453723
cmp ecx, 1
je 0x45124a
mov eax, dword [ebp - 0x1c]
mov al, byte [eax + 1]
cmp al, byte [edx + 0x51]
jne case.default.0x453723
mov eax, dword [ebp - 0x48]
sub eax, dword [esi]
cmp dword [ebp - 0x1c], eax
jne case.default.0x453723
jmp 0x4510b9
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0x3c]
test al, 2
jne case.default.0x453723
cmp dword [ebp - 0x24], 0
jne 0x451285
test al, 0x20
je 0x4510a5
mov dword [ebp - 0x54], 1
jmp case.default.0x453723
test byte [esi + 0x40], 0x10
jne 0x4512ca
mov ecx, dword [esi + 0x44]
mov eax, dword [esi + 0x14]
add esi, 0x48
mov edx, dword [ebp - 0x1c]
test ecx, ecx
je 0x451348
cmp edx, eax
jae 0x4512bd
push dword [ebp - 0x38]
push esi
push eax
push ecx
push edx
call fcn.00458390
add esp, 0x14
test eax, eax
je 0x4512bd
mov eax, 1
jmp 0x4512bf
xor eax, eax
test eax, eax
jne 0x45136e
mov esi, dword [ebp + 8]
mov eax, dword [ebp - 0x1c]
inc eax
cmp eax, dword [esi + 0x14]
jb case.default.0x453723
mov ecx, dword [esi + 0x3c]
test cl, 0x30
je case.default.0x453723
cmp dword [esi + 0x44], 0
jne case.default.0x453723
cmp dword [esi + 0x48], 2
jne case.default.0x453723
movzx eax, byte [esi + 0x50]
cmp ebx, eax
jne case.default.0x453723
test cl, 0x20
je 0x45118a
mov esi, dword [ebp - 0xc]
mov eax, esi
inc esi
mov dword [ebp - 0x68], 1
mov dword [ebp - 0xc], esi
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x18]
not eax
mov dword [ecx], eax
mov dword [ecx + 4], 0
mov dword [ecx + 8], 1
add ecx, 0xc
mov dword [ebp - 8], ecx
jmp 0x45390c
mov ecx, dword [esi]
sub eax, ecx
cmp edx, eax
ja 0x4512c7
mov al, byte [edx]
mov edx, dword [ebp + 8]
cmp al, byte [edx + 0x50]
jne 0x451384
cmp ecx, 1
je 0x45136e
mov eax, dword [ebp - 0x1c]
mov al, byte [eax + 1]
cmp al, byte [edx + 0x51]
jne 0x451384
mov eax, dword [ebp - 0x48]
sub eax, dword [esi]
cmp dword [ebp - 0x1c], eax
jne 0x4512c7
mov edx, dword [ebp - 4]
jmp 0x450fe9
mov esi, edx
jmp 0x4512ca
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0x3c]
test al, 2
jne 0x451435
cmp dword [ebp - 0x24], 0
jne 0x4513b3
test al, 0x20
je 0x4510a5
mov dword [ebp - 0x54], 1
jmp case.default.0x453723
test byte [esi + 0x40], 0x10
jne 0x4512ca
mov edx, dword [esi + 0x44]
mov ecx, dword [esi + 0x14]
test edx, edx
je 0x4513fa
cmp dword [ebp - 0x1c], ecx
jae 0x4513eb
push dword [ebp - 0x38]
lea eax, [esi + 0x48]
push eax
push ecx
push edx
push dword [ebp - 0x1c]
call fcn.00458390
add esp, 0x14
test eax, eax
je 0x4513eb
mov eax, 1
jmp 0x4513ed
xor eax, eax
test eax, eax
jne 0x4510a5
jmp 0x4512ca
mov edx, dword [esi + 0x48]
sub ecx, edx
mov eax, dword [ebp - 0x1c]
cmp eax, ecx
ja 0x4512ca
mov al, byte [eax]
cmp al, byte [esi + 0x50]
jne 0x4512ca
cmp edx, 1
je 0x4510a5
mov eax, dword [ebp - 0x1c]
mov al, byte [eax + 1]
cmp al, byte [esi + 0x51]
jne 0x4512ca
mov edx, dword [ebp - 4]
jmp 0x450fe9
mov edx, dword [esi + 0x44]
test edx, edx
je 0x45145e
mov ecx, dword [esi + 0x14]
cmp dword [ebp - 0x1c], ecx
jae 0x451064
push dword [ebp - 0x38]
lea eax, [esi + 0x48]
push eax
push ecx
push edx
push dword [ebp - 0x1c]
call fcn.00458390
jmp 0x451056
mov eax, dword [esi + 0x14]
mov ecx, dword [esi + 0x48]
sub eax, ecx
mov edx, dword [ebp - 0x1c]
cmp edx, eax
ja case.default.0x453723
mov al, byte [edx]
cmp al, byte [esi + 0x50]
jne case.default.0x453723
cmp ecx, 1
je 0x4510a5
mov al, byte [edx + 1]
jmp 0x45109c
cmp dword [ebp - 0x24], 0
jle case.default.0x453723
cmp ebx, 0x100
jae case.default.0x453723
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x10]
mov al, byte [ebx + eax + 0x340]
and al, byte [ecx + 0x4996bc]
cmp al, byte [ecx + 0x4996cc]
je case.default.0x453723
jmp case.0x453723.10
cmp dword [ebp - 0x24], 0
jle case.default.0x453723
cmp ebx, 0x100
jae case.0x453723.10
jmp 0x4514a3
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x4c]
jbe 0x451664
mov eax, dword [ebp + 8]
lea esi, [edx - 1]
cmp esi, dword [eax + 0x18]
jae 0x4514f9
mov dword [eax + 0x18], esi
mov ecx, dword [ebp - 0x38]
test ecx, ecx
je 0x451517
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x451517
mov al, byte [esi - 1]
dec esi
and al, 0xc0
cmp al, 0x80
je 0x451508
movzx edx, byte [esi]
jmp 0x451522
movzx edx, byte [esi]
test ecx, ecx
je 0x4515ec
cmp edx, 0xc0
jb 0x4515ec
test dl, 0x20
jne 0x45153f
movzx eax, byte [esi + 1]
and edx, 0x1f
jmp 0x4515e4
test dl, 0x10
jne 0x45155c
movzx ecx, byte [esi + 1]
and edx, 0xf
movzx eax, byte [esi + 2]
and ecx, 0x3f
shl edx, 6
or edx, ecx
jmp 0x4515e4
test dl, 8
jne 0x451582
movzx ecx, byte [esi + 1]
and edx, 7
movzx eax, byte [esi + 2]
and ecx, 0x3f
shl edx, 6
and eax, 0x3f
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x4515e4
movzx ebx, byte [esi + 3]
movzx eax, byte [esi + 1]
and ebx, 0x3f
movzx ecx, byte [esi + 2]
and eax, 0x3f
mov dword [ebp - 0x28], ebx
and ecx, 0x3f
movzx ebx, byte [esi + 4]
and ebx, 0x3f
mov dword [ebp - 0x20], ebx
mov ebx, dword [ebp - 0x3c]
test dl, 4
jne 0x4515c7
and edx, 3
shl edx, 6
or edx, eax
shl edx, 6
or edx, ecx
shl edx, 6
or edx, dword [ebp - 0x28]
shl edx, 6
or edx, dword [ebp - 0x20]
jmp 0x4515ec
and edx, 1
shl edx, 6
or edx, eax
movzx eax, byte [esi + 5]
shl edx, 6
or edx, ecx
shl edx, 6
or edx, dword [ebp - 0x28]
shl edx, 6
or edx, dword [ebp - 0x20]
and eax, 0x3f
shl edx, 6
or edx, eax
mov eax, dword [ebp - 0x10]
cmp eax, 0xaa
je 0x45161c
cmp eax, 0xa9
je 0x45161c
cmp edx, 0x100
jae 0x451661
mov eax, dword [ebp - 0x44]
test byte [edx + eax + 0x340], 0x10
je 0x451661
mov edx, dword [ebp - 0x1c]
mov esi, 1
jmp 0x451666
mov eax, edx
mov ecx, 0x80
cdq
idiv ecx
movzx eax, word [eax*2 + 0x4a0880]
shl eax, 7
add eax, edx
movzx eax, word [eax*2 + 0x4a4c80]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x49c5c9]
mov ecx, dword [eax*4 + 0x49a078]
cmp ecx, 1
je 0x451612
cmp ecx, 3
je 0x451612
cmp eax, 0xc
je 0x451612
cmp eax, 0x10
je 0x451612
mov edx, dword [ebp - 0x1c]
xor esi, esi
cmp dword [ebp - 0x24], 0
jle 0x4516bd
mov eax, dword [ebp + 8]
cmp edx, dword [eax + 0x1c]
jb 0x451697
cmp dword [ebp - 0x38], 0
lea ecx, [edx + 1]
je 0x451694
mov edx, dword [eax + 0x14]
cmp ecx, edx
jae 0x451694
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
jne 0x451691
inc ecx
cmp ecx, edx
jb 0x451684
mov eax, dword [ebp + 8]
mov dword [eax + 0x1c], ecx
mov eax, dword [ebp - 0x10]
cmp eax, 0xaa
je 0x4516e0
cmp eax, 0xa9
je 0x4516e0
cmp ebx, 0x100
jae 0x4516bd
mov eax, dword [ebp - 0x44]
test byte [ebx + eax + 0x340], 0x10
jne 0x451725
mov eax, 1
mov ecx, dword [ebp - 0x10]
cmp ecx, 4
je 0x451729
cmp ecx, 0xa9
je 0x451729
mov edx, dword [ebp - 4]
xor ecx, ecx
xor eax, esi
cmp eax, ecx
jmp 0x450fe3
mov eax, ebx
mov ecx, 0x80
cdq
idiv ecx
movzx eax, word [eax*2 + 0x4a0880]
shl eax, 7
add eax, edx
movzx eax, word [eax*2 + 0x4a4c80]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x49c5c9]
mov ecx, dword [eax*4 + 0x49a078]
cmp ecx, 1
je 0x451725
cmp ecx, 3
je 0x451725
cmp eax, 0xc
je 0x451725
cmp eax, 0x10
jne 0x4516bd
xor eax, eax
jmp 0x4516c2
mov edx, dword [ebp - 4]
mov ecx, 1
xor eax, esi
cmp eax, ecx
jmp 0x450fe3
cmp dword [ebp - 0x24], 0
jle case.default.0x453723
mov eax, ebx
test eax, eax
jns 0x45174d
add eax, 0x7f
sar eax, 7
movzx ecx, word [eax*2 + 0x4a0880]
mov eax, ebx
shl ecx, 7
and eax, 0x8000007f
jns 0x451769
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x4a4c80]
lea edx, [eax + eax*2]
movzx eax, byte [esi + 1]
cmp eax, 0xd
ja case.default.0x451783
jmp dword [eax*4 + 0x454f90]
mov edx, 1
jmp 0x451a04
mov al, byte [edx*4 + 0x49c5c9]
cmp al, 9
je case.0x451783.0
cmp al, 5
je case.0x451783.0
cmp al, 8
je case.0x451783.0
xor edx, edx
jmp 0x451a04
movzx ecx, byte [edx*4 + 0x49c5c9]
xor edx, edx
movzx eax, byte [esi + 2]
cmp dword [ecx*4 + 0x49a078], eax
sete dl
jmp 0x451a04
mov al, byte [edx*4 + 0x49c5c9]
xor edx, edx
cmp al, byte [esi + 2]
sete dl
jmp 0x451a04
mov al, byte [edx*4 + 0x49c5c8]
xor edx, edx
cmp al, byte [esi + 2]
sete dl
jmp 0x451a04
mov al, byte [esi + 2]
cmp byte [edx*4 + 0x49c5c8], al
je case.0x451783.0
movzx edx, word [edx*4 + 0x49c5d0]
movzx ecx, al
and edx, 0x3ff
mov eax, ecx
shr eax, 5
add edx, eax
and ecx, 0x8000001f
jns 0x451824
dec ecx
or ecx, 0xffffffe0
inc ecx
mov eax, 1
shl eax, cl
test dword [edx*4 + 0x49c2d0], eax
jne case.0x451783.0
xor edx, edx
jmp 0x451a04
movzx eax, byte [edx*4 + 0x49c5c9]
mov eax, dword [eax*4 + 0x49a078]
cmp eax, 1
je case.0x451783.0
cmp eax, 3
je case.0x451783.0
xor edx, edx
jmp 0x451a04
cmp ebx, 0x20
ja 0x451881
je case.0x451783.0
lea eax, [ebx - 9]
cmp eax, 4
ja case.0x4518f5.8203
jmp dword [eax*4 + 0x454fc8]
cmp ebx, 0x2000
ja 0x4518d5
je case.0x451783.0
cmp ebx, 0x1680
ja 0x4518cd
je case.0x451783.0
mov eax, ebx
sub eax, 0x85
je case.0x451783.0
sub eax, 0x1b
je case.0x451783.0
movzx eax, byte [edx*4 + 0x49c5c9]
xor edx, edx
cmp dword [eax*4 + 0x49a078], 6
sete dl
jmp 0x451a04
cmp ebx, 0x180e
jmp 0x4518ad
cmp ebx, 0x3000
ja case.0x4518f5.8203
je case.0x451783.0
lea eax, [ebx - 0x2001]
cmp eax, 0x5e
ja case.0x4518f5.8203
movzx eax, byte [eax + 0x454fe4]
jmp dword [eax*4 + 0x454fdc]
movzx eax, byte [edx*4 + 0x49c5c9]
mov ecx, dword [eax*4 + 0x49a078]
cmp ecx, 1
je case.0x451783.0
cmp ecx, 3
je case.0x451783.0
cmp eax, 0xc
je case.0x451783.0
cmp eax, 0x10
je case.0x451783.0
xor edx, edx
jmp 0x451a04
movzx eax, byte [esi + 2]
mov ecx, dword [eax*4 + 0x49bff8]
lea eax, [eax*4 + 0x49bff8]
cmp ebx, ecx
jb 0x4517a7
lea eax, [eax + 4]
cmp ebx, ecx
je case.0x451783.0
mov ecx, dword [eax]
cmp ebx, ecx
jae 0x451950
xor edx, edx
jmp 0x451a04
cmp ebx, 0x24
je case.0x451783.0
cmp ebx, 0x40
je case.0x451783.0
cmp ebx, 0x60
je case.0x451783.0
cmp ebx, 0xa0
jb 0x451997
cmp ebx, 0xd7ff
jbe case.0x451783.0
cmp ebx, 0xe000
jae case.0x451783.0
xor edx, edx
jmp 0x451a04
mov ax, word [edx*4 + 0x49c5d0]
xor edx, edx
shr ax, 0xb
cmp al, byte [esi + 2]
sete dl
jmp 0x451a04
movzx ecx, byte [esi + 2]
movzx edx, word [edx*4 + 0x49c5d2]
mov eax, ecx
and edx, 0xfff
shr eax, 5
add edx, eax
and ecx, 0x8000001f
jns 0x4519e3
dec ecx
or ecx, 0xffffffe0
inc ecx
mov edx, dword [edx*4 + 0x49ba70]
mov eax, 1
shl eax, cl
and edx, eax
neg edx
sbb edx, edx
neg edx
jmp 0x451a04
xor edx, edx
cmp dword [ebp - 0x10], 0x10
setne dl
xor eax, eax
cmp dword [ebp - 0x10], 0x10
sete al
cmp edx, eax
jne case.default.0x453723
mov esi, dword [ebp - 0xc]
mov eax, esi
inc esi
mov dword [ebp - 0xc], esi
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
mov eax, dword [ebp - 0x18]
add eax, 3
jmp 0x4511bd
mov eax, dword [ebp - 0x40]
mov esi, dword [eax + 4]
mov dword [ebp - 0x20], esi
test esi, esi
jle 0x451a63
mov ecx, dword [ebp - 4]
mov eax, ecx
inc ecx
mov dword [ebp - 4], ecx
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
mov eax, dword [ebp - 0x18]
add eax, 2
mov dword [edi + 4], 0
mov dword [edi], eax
add edi, 0xc
cmp dword [ebp - 0x24], 0
jle case.default.0x453723
cmp edx, 0xc
jne 0x451aa2
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 0x1c]
inc eax
cmp eax, dword [ecx + 0x14]
mov eax, ecx
jb 0x451aa5
test byte [eax + 0x3c], 0x20
je 0x451aa5
cmp dword [eax + 0x44], 0
jne 0x451aa5
cmp dword [eax + 0x48], 2
jne 0x451aa5
movzx eax, byte [eax + 0x50]
cmp ebx, eax
je 0x45118a
mov eax, ecx
jmp 0x451aa5
mov eax, dword [ebp + 8]
cmp ebx, 0x100
jb 0x451acd
cmp edx, 7
je case.default.0x453723
cmp edx, 9
je case.default.0x453723
cmp edx, 0xb
jne 0x451b60
jmp case.default.0x453723
cmp edx, 0xc
jne 0x451b44
mov esi, dword [eax + 0x44]
mov ecx, dword [eax + 0x14]
test esi, esi
je 0x451b13
mov edx, dword [ebp - 0x1c]
cmp edx, ecx
jae 0x451b04
push dword [ebp - 0x38]
add eax, 0x48
push eax
push ecx
push esi
push edx
call fcn.00458390
add esp, 0x14
test eax, eax
je 0x451b04
mov eax, 1
jmp 0x451b06
xor eax, eax
test eax, eax
jne case.default.0x453723
mov edx, dword [ebp - 0x2c]
jmp 0x451b41
mov esi, dword [eax + 0x48]
sub ecx, esi
mov eax, dword [ebp - 0x1c]
cmp eax, ecx
ja 0x451b41
mov ecx, dword [ebp + 8]
mov al, byte [eax]
cmp al, byte [ecx + 0x50]
jne 0x451b41
cmp esi, 1
je case.default.0x453723
mov eax, dword [ebp - 0x1c]
mov al, byte [eax + 1]
cmp al, byte [ecx + 0x51]
je case.default.0x453723
mov esi, dword [ebp - 0x20]
mov eax, dword [ebp - 0x44]
mov al, byte [ebx + eax + 0x340]
and al, byte [edx + 0x4996bc]
cmp al, byte [edx + 0x4996cc]
je case.default.0x453723
mov edx, dword [ebp - 4]
test esi, esi
jle 0x451b74
cmp dword [ebp - 0x10], 0x5f
jne 0x451b74
dec edx
sub edi, 0xc
mov dword [ebp - 4], edx
mov ecx, dword [ebp - 0xc]
mov eax, ecx
inc ecx
mov dword [ebp - 0xc], ecx
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x18]
mov dword [ecx], eax
lea eax, [esi + 1]
mov dword [ecx + 4], eax
add ecx, 0xc
mov dword [ebp - 8], ecx
jmp 0x45390f
mov ecx, dword [ebp - 4]
mov eax, ecx
inc ecx
mov dword [ebp - 4], ecx
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
mov esi, dword [ebp - 0x18]
add esi, 2
mov dword [edi + 4], 0
mov dword [edi], esi
add edi, 0xc
cmp dword [ebp - 0x24], 0
mov dword [ebp - 0x20], esi
jle case.default.0x453723
cmp edx, 0xc
jne 0x451c05
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 0x1c]
inc eax
cmp eax, dword [ecx + 0x14]
mov eax, ecx
jb 0x451c08
test byte [eax + 0x3c], 0x20
je 0x451c08
cmp dword [eax + 0x44], 0
jne 0x451c08
cmp dword [eax + 0x48], 2
jne 0x451c08
movzx eax, byte [eax + 0x50]
cmp ebx, eax
je 0x45118a
mov eax, ecx
jmp 0x451c08
mov eax, dword [ebp + 8]
cmp ebx, 0x100
jb 0x451c30
cmp edx, 7
je case.default.0x453723
cmp edx, 9
je case.default.0x453723
cmp edx, 0xb
jne 0x451cc3
jmp case.default.0x453723
cmp edx, 0xc
jne 0x451ca7
mov esi, dword [eax + 0x44]
mov ecx, dword [eax + 0x14]
test esi, esi
je 0x451c76
mov edx, dword [ebp - 0x1c]
cmp edx, ecx
jae 0x451c67
push dword [ebp - 0x38]
add eax, 0x48
push eax
push ecx
push esi
push edx
call fcn.00458390
add esp, 0x14
test eax, eax
je 0x451c67
mov eax, 1
jmp 0x451c69
xor eax, eax
test eax, eax
jne case.default.0x453723
mov edx, dword [ebp - 0x2c]
jmp 0x451ca4
mov esi, dword [eax + 0x48]
sub ecx, esi
mov eax, dword [ebp - 0x1c]
cmp eax, ecx
ja 0x451ca4
mov ecx, dword [ebp + 8]
mov al, byte [eax]
cmp al, byte [ecx + 0x50]
jne 0x451ca4
cmp esi, 1
je case.default.0x453723
mov eax, dword [ebp - 0x1c]
mov al, byte [eax + 1]
cmp al, byte [ecx + 0x51]
je case.default.0x453723
mov esi, dword [ebp - 0x20]
mov eax, dword [ebp - 0x44]
mov al, byte [ebx + eax + 0x340]
and al, byte [edx + 0x4996bc]
cmp al, byte [edx + 0x4996cc]
je case.default.0x453723
cmp dword [ebp - 0x10], 0x60
jne 0x451cda
mov edx, dword [ebp - 0xcc]
mov edi, dword [ebp - 0xf0]
mov dword [ebp - 4], edx
jmp 0x451cdd
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 0xc]
mov eax, ecx
inc ecx
mov dword [ebp - 0xc], ecx
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
mov ecx, dword [ebp - 8]
mov dword [ecx], esi
mov dword [ecx + 4], 0
add ecx, 0xc
mov dword [ebp - 8], ecx
jmp 0x45390f
mov ecx, dword [ebp - 4]
mov eax, ecx
inc ecx
mov dword [ebp - 4], ecx
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
mov esi, dword [ebp - 0x18]
mov dword [edi + 4], 0
lea eax, [esi + 2]
mov dword [edi], eax
add edi, 0xc
cmp dword [ebp - 0x24], 0
jle case.default.0x453723
cmp edx, 0xc
jne 0x451d69
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 0x1c]
inc eax
cmp eax, dword [ecx + 0x14]
mov eax, ecx
jb 0x451d6c
test byte [eax + 0x3c], 0x20
je 0x451d6c
cmp dword [eax + 0x44], 0
jne 0x451d6c
cmp dword [eax + 0x48], 2
jne 0x451d6c
movzx eax, byte [eax + 0x50]
cmp ebx, eax
je 0x45118a
mov eax, ecx
jmp 0x451d6c
mov eax, dword [ebp + 8]
cmp ebx, 0x100
jb 0x451d94
cmp edx, 7
je case.default.0x453723
cmp edx, 9
je case.default.0x453723
cmp edx, 0xb
jne 0x451e27
jmp case.default.0x453723
cmp edx, 0xc
jne 0x451e0b
mov esi, dword [eax + 0x44]
mov ecx, dword [eax + 0x14]
test esi, esi
je 0x451dda
mov edx, dword [ebp - 0x1c]
cmp edx, ecx
jae 0x451dcb
push dword [ebp - 0x38]
add eax, 0x48
push eax
push ecx
push esi
push edx
call fcn.00458390
add esp, 0x14
test eax, eax
je 0x451dcb
mov eax, 1
jmp 0x451dcd
xor eax, eax
test eax, eax
jne case.default.0x453723
mov edx, dword [ebp - 0x2c]
jmp 0x451e08
mov esi, dword [eax + 0x48]
sub ecx, esi
mov eax, dword [ebp - 0x1c]
cmp eax, ecx
ja 0x451e08
mov ecx, dword [ebp + 8]
mov al, byte [eax]
cmp al, byte [ecx + 0x50]
jne 0x451e08
cmp esi, 1
je case.default.0x453723
mov eax, dword [ebp - 0x1c]
mov al, byte [eax + 1]
cmp al, byte [ecx + 0x51]
je case.default.0x453723
mov esi, dword [ebp - 0x18]
mov eax, dword [ebp - 0x44]
mov al, byte [ebx + eax + 0x340]
and al, byte [edx + 0x4996bc]
cmp al, byte [edx + 0x4996cc]
je case.default.0x453723
cmp dword [ebp - 0x10], 0x5e
jne 0x451cda
mov edx, dword [ebp - 0xf4]
mov edi, dword [ebp - 0xf8]
mov dword [ebp - 4], edx
jmp 0x451cdd
cmp dword [ebp - 0x24], 0
mov eax, dword [ebp - 0x40]
mov ecx, dword [eax + 4]
mov dword [ebp - 0x20], ecx
jle case.default.0x453723
cmp edx, 0xc
jne 0x451e8d
mov ebx, dword [ebp + 8]
mov eax, dword [ebp - 0x1c]
inc eax
cmp eax, dword [ebx + 0x14]
mov ebx, dword [ebp - 0x3c]
mov eax, dword [ebp + 8]
jb 0x451e90
test byte [eax + 0x3c], 0x20
je 0x451e90
cmp dword [eax + 0x44], 0
jne 0x451e90
cmp dword [eax + 0x48], 2
jne 0x451e90
movzx eax, byte [eax + 0x50]
cmp ebx, eax
je 0x45118a
mov eax, dword [ebp + 8]
cmp ebx, 0x100
jb 0x451eb8
cmp edx, 7
je case.default.0x453723
cmp edx, 9
je case.default.0x453723
cmp edx, 0xb
jne 0x451f4e
jmp case.default.0x453723
cmp edx, 0xc
jne 0x451f32
cmp dword [eax + 0x44], 0
mov ecx, dword [eax + 0x14]
je 0x451f02
mov edx, dword [ebp - 0x1c]
cmp edx, ecx
jae 0x451ef3
push dword [ebp - 0x38]
add eax, 0x48
push eax
mov eax, dword [ebp + 8]
push ecx
push dword [eax + 0x44]
push edx
call fcn.00458390
add esp, 0x14
test eax, eax
je 0x451ef3
mov eax, 1
jmp 0x451ef5
xor eax, eax
test eax, eax
jne case.default.0x453723
mov edx, dword [ebp - 0x2c]
jmp 0x451f2f
sub ecx, dword [eax + 0x48]
mov eax, dword [ebp - 0x1c]
cmp eax, ecx
ja 0x451f2f
mov ecx, dword [ebp + 8]
mov al, byte [eax]
cmp al, byte [ecx + 0x50]
jne 0x451f2f
cmp dword [ecx + 0x48], 1
je case.default.0x453723
mov eax, dword [ebp - 0x1c]
mov al, byte [eax + 1]
cmp al, byte [ecx + 0x51]
je case.default.0x453723
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x44]
mov al, byte [ebx + eax + 0x340]
and al, byte [edx + 0x4996bc]
cmp al, byte [edx + 0x4996cc]
je case.default.0x453723
movzx eax, byte [esi + 2]
inc ecx
mov edx, dword [ebp - 0xc]
mov dword [ebp - 0x20], ecx
inc edx
movzx ecx, byte [esi + 1]
mov esi, dword [ebp - 0x20]
shl ecx, 8
or ecx, eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0xc], edx
cmp esi, ecx
jl 0x451f84
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
mov eax, dword [ebp - 0x18]
add eax, 4
jmp 0x4511bd
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x18]
mov dword [ecx], eax
mov dword [ecx + 4], esi
add ecx, 0xc
mov dword [ebp - 8], ecx
jmp 0x45390c
mov ecx, dword [ebp - 4]
mov eax, ecx
inc ecx
mov dword [ebp - 4], ecx
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
mov eax, dword [ebp - 0x18]
add eax, 4
mov dword [edi + 4], 0
mov dword [edi], eax
add edi, 0xc
cmp dword [ebp - 0x24], 0
mov eax, dword [ebp - 0x40]
mov ecx, dword [eax + 4]
mov dword [ebp - 0x20], ecx
jle case.default.0x453723
cmp edx, 0xc
jne 0x45200f
mov ebx, dword [ebp + 8]
mov eax, dword [ebp - 0x1c]
inc eax
cmp eax, dword [ebx + 0x14]
mov ebx, dword [ebp - 0x3c]
mov eax, dword [ebp + 8]
jb 0x452012
test byte [eax + 0x3c], 0x20
je 0x452012
cmp dword [eax + 0x44], 0
jne 0x452012
cmp dword [eax + 0x48], 2
jne 0x452012
movzx eax, byte [eax + 0x50]
cmp ebx, eax
je 0x45118a
mov eax, dword [ebp + 8]
cmp ebx, 0x100
jb 0x45203a
cmp edx, 7
je case.default.0x453723
cmp edx, 9
je case.default.0x453723
cmp edx, 0xb
jne 0x4520d0
jmp case.default.0x453723
cmp edx, 0xc
jne 0x4520b4
cmp dword [eax + 0x44], 0
mov ecx, dword [eax + 0x14]
je 0x452084
mov edx, dword [ebp - 0x1c]
cmp edx, ecx
jae 0x452075
push dword [ebp - 0x38]
add eax, 0x48
push eax
mov eax, dword [ebp + 8]
push ecx
push dword [eax + 0x44]
push edx
call fcn.00458390
add esp, 0x14
test eax, eax
je 0x452075
mov eax, 1
jmp 0x452077
xor eax, eax
test eax, eax
jne case.default.0x453723
mov edx, dword [ebp - 0x2c]
jmp 0x4520b1
sub ecx, dword [eax + 0x48]
mov eax, dword [ebp - 0x1c]
cmp eax, ecx
ja 0x4520b1
mov ecx, dword [ebp + 8]
mov al, byte [eax]
cmp al, byte [ecx + 0x50]
jne 0x4520b1
cmp dword [ecx + 0x48], 1
je case.default.0x453723
mov eax, dword [ebp - 0x1c]
mov al, byte [eax + 1]
cmp al, byte [ecx + 0x51]
je case.default.0x453723
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x44]
mov al, byte [ebx + eax + 0x340]
and al, byte [edx + 0x4996bc]
cmp al, byte [edx + 0x4996cc]
je case.default.0x453723
cmp dword [ebp - 0x10], 0x61
jne 0x451f4e
mov eax, dword [ebp - 0xa4]
mov edi, dword [ebp - 0x9c]
mov dword [ebp - 4], eax
jmp 0x451f4e
mov eax, dword [ebp - 0x40]
mov edx, dword [ebp - 4]
mov eax, dword [eax + 4]
mov dword [ebp - 0x9c], eax
test eax, eax
jle 0x452122
mov eax, edx
inc edx
mov dword [ebp - 4], edx
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
mov eax, dword [ebp - 0x18]
add eax, 4
mov dword [edi + 4], 0
mov dword [edi], eax
add edi, 0xc
cmp dword [ebp - 0x24], 0
jle case.default.0x453316
mov eax, ebx
test eax, eax
jns 0x452135
add eax, 0x7f
sar eax, 7
movzx ecx, word [eax*2 + 0x4a0880]
mov eax, ebx
shl ecx, 7
and eax, 0x8000007f
jns 0x452151
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x4a4c80]
lea edx, [eax + eax*2]
movzx eax, byte [esi + 2]
cmp eax, 0xd
ja case.default.0x45216b
jmp dword [eax*4 + 0x455044]
mov ecx, dword [ebp - 0x10]
mov edx, 1
jmp 0x452418
mov al, byte [edx*4 + 0x49c5c9]
cmp al, 9
je case.0x45216b.0
cmp al, 5
je case.0x45216b.0
cmp al, 8
je case.0x45216b.0
mov ecx, dword [ebp - 0x10]
xor edx, edx
jmp 0x452418
movzx ecx, byte [edx*4 + 0x49c5c9]
xor edx, edx
movzx eax, byte [esi + 3]
cmp dword [ecx*4 + 0x49a078], eax
mov ecx, dword [ebp - 0x10]
sete dl
jmp 0x452418
mov al, byte [edx*4 + 0x49c5c9]
xor edx, edx
cmp al, byte [esi + 3]
mov ecx, dword [ebp - 0x10]
sete dl
jmp 0x452418
mov al, byte [edx*4 + 0x49c5c8]
xor edx, edx
cmp al, byte [esi + 3]
mov ecx, dword [ebp - 0x10]
sete dl
jmp 0x452418
mov al, byte [esi + 3]
cmp byte [edx*4 + 0x49c5c8], al
je case.0x45216b.0
movzx edx, word [edx*4 + 0x49c5d0]
movzx ecx, al
and edx, 0x3ff
mov eax, ecx
shr eax, 5
add edx, eax
and ecx, 0x8000001f
jns 0x45221f
dec ecx
or ecx, 0xffffffe0
inc ecx
mov eax, 1
shl eax, cl
test dword [edx*4 + 0x49c2d0], eax
jne case.0x45216b.0
mov ecx, dword [ebp - 0x10]
xor edx, edx
jmp 0x452418
movzx eax, byte [edx*4 + 0x49c5c9]
mov eax, dword [eax*4 + 0x49a078]
cmp eax, 1
je case.0x45216b.0
cmp eax, 3
je case.0x45216b.0
mov ecx, dword [ebp - 0x10]
xor edx, edx
jmp 0x452418
cmp ebx, 0x20
ja 0x452282
je case.0x45216b.0
lea eax, [ebx - 9]
cmp eax, 4
ja case.0x4522f9.8203
jmp dword [eax*4 + 0x45507c]
cmp ebx, 0x2000
ja 0x4522d9
je case.0x45216b.0
cmp ebx, 0x1680
ja 0x4522d1
je case.0x45216b.0
mov eax, ebx
sub eax, 0x85
je case.0x45216b.0
sub eax, 0x1b
je case.0x45216b.0
movzx eax, byte [edx*4 + 0x49c5c9]
xor edx, edx
mov ecx, dword [ebp - 0x10]
cmp dword [eax*4 + 0x49a078], 6
sete dl
jmp 0x452418
cmp ebx, 0x180e
jmp 0x4522ae
cmp ebx, 0x3000
ja case.0x4522f9.8203
je case.0x45216b.0
lea eax, [ebx - 0x2001]
cmp eax, 0x5e
ja case.0x4522f9.8203
movzx eax, byte [eax + 0x455098]
jmp dword [eax*4 + 0x455090]
movzx eax, byte [edx*4 + 0x49c5c9]
mov ecx, dword [eax*4 + 0x49a078]
cmp ecx, 1
je case.0x45216b.0
cmp ecx, 3
je case.0x45216b.0
cmp eax, 0xc
je case.0x45216b.0
cmp eax, 0x10
je case.0x45216b.0
mov ecx, dword [ebp - 0x10]
xor edx, edx
jmp 0x452418
movzx eax, byte [esi + 3]
mov ecx, dword [eax*4 + 0x49bff8]
lea eax, [eax*4 + 0x49bff8]
cmp ebx, ecx
jb 0x452333
lea eax, [eax + 4]
cmp ebx, ecx
je case.0x45216b.0
mov ecx, dword [eax]
cmp ebx, ecx
jae 0x452353
mov ecx, dword [ebp - 0x10]
xor edx, edx
jmp 0x452418
cmp ebx, 0x24
je case.0x45216b.0
cmp ebx, 0x40
je case.0x45216b.0
cmp ebx, 0x60
je case.0x45216b.0
cmp ebx, 0xa0
jb 0x45239d
cmp ebx, 0xd7ff
jbe case.0x45216b.0
cmp ebx, 0xe000
jae case.0x45216b.0
mov ecx, dword [ebp - 0x10]
xor edx, edx
jmp 0x452418
mov ax, word [edx*4 + 0x49c5d0]
xor edx, edx
mov ecx, dword [ebp - 0x10]
shr ax, 0xb
cmp al, byte [esi + 3]
sete dl
jmp 0x452418
movzx ecx, byte [esi + 3]
movzx edx, word [edx*4 + 0x49c5d2]
mov eax, ecx
and edx, 0xfff
shr eax, 5
add edx, eax
and ecx, 0x8000001f
jns 0x4523f2
dec ecx
or ecx, 0xffffffe0
inc ecx
mov edx, dword [edx*4 + 0x49ba70]
mov eax, 1
shl eax, cl
mov ecx, dword [ebp - 0x10]
and edx, eax
neg edx
sbb edx, edx
neg edx
jmp 0x452418
mov ecx, dword [ebp - 0x10]
xor edx, edx
cmp ecx, 0x10
setne dl
xor eax, eax
cmp dword [ebp - 0x2c], 0x10
sete al
cmp edx, eax
mov edx, dword [ebp - 4]
jne case.default.0x453316
mov esi, dword [ebp - 0x9c]
test esi, esi
jle 0x451b74
cmp ecx, 0x18b
jmp 0x451b6b
mov eax, dword [ebp - 0x40]
mov edx, dword [ebp - 4]
mov esi, dword [eax + 4]
test esi, esi
jle 0x452473
mov eax, edx
inc edx
mov dword [ebp - 4], edx
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
mov eax, dword [ebp - 0x18]
add eax, 2
mov dword [edi + 4], 0
mov dword [edi], eax
add edi, 0xc
cmp dword [ebp - 0x24], 0
jle case.default.0x453316
mov dword [ebp - 0x28], 0
test esi, esi
jle 0x452498
cmp dword [ebp - 0x10], 0x19f
jne 0x452498
dec edx
sub edi, 0xc
mov dword [ebp - 4], edx
lea eax, [ebp - 0x28]
push eax
push dword [ebp - 0x38]
mov eax, dword [ebp + 8]
push dword [ebp - 0x48]
push dword [eax + 0x10]
mov eax, dword [ebp - 0x1c]
add eax, dword [ebp - 0x24]
push eax
push ebx
call fcn.0045a6f0
mov ecx, dword [ebp - 0xc]
add esp, 0x18
mov eax, ecx
inc ecx
mov dword [ebp - 0xc], ecx
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x18]
neg eax
mov dword [ecx], eax
lea eax, [esi + 1]
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x28]
mov dword [ecx + 8], eax
add ecx, 0xc
mov dword [ebp - 8], ecx
jmp 0x45390c
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 4]
mov edx, dword [eax + 4]
test edx, edx
jle 0x452519
mov eax, ecx
inc ecx
mov dword [ebp - 4], ecx
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
mov eax, dword [ebp - 0x18]
add eax, 2
mov dword [edi + 4], 0
mov dword [edi], eax
add edi, 0xc
cmp dword [ebp - 0x24], 0
jle case.default.0x453723
xor esi, esi
cmp ebx, 0x85
ja 0x452557
je case.0x45253b.11
lea eax, [ebx - 0xa]
cmp eax, 3
ja case.default.0x453723
jmp dword [eax*4 + 0x4550f8]
mov eax, dword [ebp - 0x1c]
inc eax
cmp eax, dword [ebp - 0x48]
jae case.0x45253b.10
cmp byte [eax], 0xa
jne case.0x45253b.10
mov esi, 1
jmp case.0x45253b.10
mov eax, ebx
sub eax, 0x2028
je case.0x45253b.11
sub eax, 1
jne case.default.0x453723
mov eax, dword [ebp + 8]
cmp word [eax + 0x54], 2
je case.default.0x453723
test edx, edx
jle 0x45258b
cmp dword [ebp - 0x10], 0x1b3
jne 0x45258b
dec ecx
sub edi, 0xc
mov dword [ebp - 4], ecx
mov ecx, dword [ebp - 0xc]
mov eax, ecx
inc ecx
mov dword [ebp - 0xc], ecx
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x18]
neg eax
mov dword [ecx], eax
lea eax, [edx + 1]
mov dword [ecx + 4], eax
mov dword [ecx + 8], esi
add ecx, 0xc
mov dword [ebp - 8], ecx
jmp 0x45390c
mov eax, dword [ebp - 0x40]
mov esi, dword [eax + 4]
test esi, esi
jle 0x4525e9
mov ecx, dword [ebp - 4]
mov eax, ecx
inc ecx
mov dword [ebp - 4], ecx
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
mov eax, dword [ebp - 0x18]
add eax, 2
mov dword [edi + 4], 0
mov dword [edi], eax
add edi, 0xc
cmp dword [ebp - 0x24], 0
jle case.default.0x453723
cmp ebx, 0x85
ja 0x45260c
je case.0x452605.10
lea eax, [ebx - 0xa]
cmp eax, 3
ja case.default.0x452605
jmp dword [eax*4 + 0x455108]
mov eax, ebx
sub eax, 0x2028
je case.0x452605.10
sub eax, 1
je case.0x452605.10
xor ecx, ecx
jmp 0x452623
mov ecx, 1
xor eax, eax
cmp edx, 0x15
mov edx, dword [ebp - 4]
sete al
cmp ecx, eax
jne case.default.0x453316
test esi, esi
jle 0x45264a
cmp dword [ebp - 0x10], 0x1db
jne 0x45264a
dec edx
sub edi, 0xc
mov dword [ebp - 4], edx
mov ecx, dword [ebp - 0xc]
mov eax, ecx
inc ecx
mov dword [ebp - 0xc], ecx
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x18]
neg eax
mov dword [ecx], eax
lea eax, [esi + 1]
mov dword [ecx + 4], eax
mov dword [ecx + 8], 0
add ecx, 0xc
mov dword [ebp - 8], ecx
jmp 0x45390f
mov eax, dword [ebp - 0x40]
mov esi, dword [eax + 4]
test esi, esi
jle 0x4526ac
mov ecx, dword [ebp - 4]
mov eax, ecx
inc ecx
mov dword [ebp - 4], ecx
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
mov eax, dword [ebp - 0x18]
add eax, 2
mov dword [edi + 4], 0
mov dword [edi], eax
add edi, 0xc
cmp dword [ebp - 0x24], 0
jle case.default.0x453723
cmp ebx, 0x2000
ja 0x452711
je case.0x45272d.8193
cmp ebx, 0xa0
ja 0x452701
je case.0x45272d.8193
cmp ebx, 9
je case.0x45272d.8193
cmp ebx, 0x20
je case.0x45272d.8193
xor ecx, ecx
xor eax, eax
cmp edx, 0x13
mov edx, dword [ebp - 4]
sete al
cmp ecx, eax
jne case.default.0x453316
test esi, esi
jle 0x45264a
cmp dword [ebp - 0x10], 0x1c7
jmp 0x452641
cmp ebx, 0x1680
je case.0x45272d.8193
cmp ebx, 0x180e
jmp 0x4526d6
cmp ebx, 0x3000
ja case.0x45272d.8203
je case.0x45272d.8193
lea eax, [ebx - 0x2001]
cmp eax, 0x5e
ja case.0x45272d.8203
movzx eax, byte [eax + 0x455120]
jmp dword [eax*4 + 0x455118]
mov ecx, 1
jmp 0x4526da
mov dword [ebp - 0x28], 4
jmp 0x45274b
mov dword [ebp - 0x28], 0
mov edx, dword [ebp - 4]
mov eax, edx
inc edx
mov dword [ebp - 4], edx
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
mov eax, dword [ebp - 0x18]
add eax, 4
mov dword [edi + 4], 0
mov dword [edi], eax
add edi, 0xc
cmp dword [ebp - 0x24], 0
jle case.default.0x453316
mov eax, ebx
test eax, eax
jns 0x452782
add eax, 0x7f
sar eax, 7
movzx ecx, word [eax*2 + 0x4a0880]
mov eax, ebx
shl ecx, 7
and eax, 0x8000007f
jns 0x45279e
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x4a4c80]
lea edx, [eax + eax*2]
movzx eax, byte [esi + 2]
cmp eax, 0xd
ja case.default.0x4527b8
jmp dword [eax*4 + 0x455180]
mov ecx, dword [ebp - 0x10]
mov edx, 1
jmp 0x452a65
mov al, byte [edx*4 + 0x49c5c9]
cmp al, 9
je case.0x4527b8.0
cmp al, 5
je case.0x4527b8.0
cmp al, 8
je case.0x4527b8.0
mov ecx, dword [ebp - 0x10]
xor edx, edx
jmp 0x452a65
movzx ecx, byte [edx*4 + 0x49c5c9]
xor edx, edx
movzx eax, byte [esi + 3]
cmp dword [ecx*4 + 0x49a078], eax
mov ecx, dword [ebp - 0x10]
sete dl
jmp 0x452a65
mov al, byte [edx*4 + 0x49c5c9]
xor edx, edx
cmp al, byte [esi + 3]
mov ecx, dword [ebp - 0x10]
sete dl
jmp 0x452a65
mov al, byte [edx*4 + 0x49c5c8]
xor edx, edx
cmp al, byte [esi + 3]
mov ecx, dword [ebp - 0x10]
sete dl
jmp 0x452a65
mov al, byte [esi + 3]
cmp byte [edx*4 + 0x49c5c8], al
je case.0x4527b8.0
movzx edx, word [edx*4 + 0x49c5d0]
movzx ecx, al
and edx, 0x3ff
mov eax, ecx
shr eax, 5
add edx, eax
and ecx, 0x8000001f
jns 0x45286c
dec ecx
or ecx, 0xffffffe0
inc ecx
mov eax, 1
shl eax, cl
test dword [edx*4 + 0x49c2d0], eax
jne case.0x4527b8.0
mov ecx, dword [ebp - 0x10]
xor edx, edx
jmp 0x452a65
movzx eax, byte [edx*4 + 0x49c5c9]
mov eax, dword [eax*4 + 0x49a078]
cmp eax, 1
je case.0x4527b8.0
cmp eax, 3
je case.0x4527b8.0
mov ecx, dword [ebp - 0x10]
xor edx, edx
jmp 0x452a65
cmp ebx, 0x20
ja 0x4528cf
je case.0x4527b8.0
lea eax, [ebx - 9]
cmp eax, 4
ja case.0x452946.8203
jmp dword [eax*4 + 0x4551b8]
cmp ebx, 0x2000
ja 0x452926
je case.0x4527b8.0
cmp ebx, 0x1680
ja 0x45291e
je case.0x4527b8.0
mov eax, ebx
sub eax, 0x85
je case.0x4527b8.0
sub eax, 0x1b
je case.0x4527b8.0
movzx eax, byte [edx*4 + 0x49c5c9]
xor edx, edx
mov ecx, dword [ebp - 0x10]
cmp dword [eax*4 + 0x49a078], 6
sete dl
jmp 0x452a65
cmp ebx, 0x180e
jmp 0x4528fb
cmp ebx, 0x3000
ja case.0x452946.8203
je case.0x4527b8.0
lea eax, [ebx - 0x2001]
cmp eax, 0x5e
ja case.0x452946.8203
movzx eax, byte [eax + 0x4551d4]
jmp dword [eax*4 + 0x4551cc]
movzx eax, byte [edx*4 + 0x49c5c9]
mov ecx, dword [eax*4 + 0x49a078]
cmp ecx, 1
je case.0x4527b8.0
cmp ecx, 3
je case.0x4527b8.0
cmp eax, 0xc
je case.0x4527b8.0
cmp eax, 0x10
je case.0x4527b8.0
mov ecx, dword [ebp - 0x10]
xor edx, edx
jmp 0x452a65
movzx eax, byte [esi + 3]
mov ecx, dword [eax*4 + 0x49bff8]
lea eax, [eax*4 + 0x49bff8]
cmp ebx, ecx
jb 0x452980
lea eax, [eax + 4]
cmp ebx, ecx
je case.0x4527b8.0
mov ecx, dword [eax]
cmp ebx, ecx
jae 0x4529a0
mov ecx, dword [ebp - 0x10]
xor edx, edx
jmp 0x452a65
cmp ebx, 0x24
je case.0x4527b8.0
cmp ebx, 0x40
je case.0x4527b8.0
cmp ebx, 0x60
je case.0x4527b8.0
cmp ebx, 0xa0
jb 0x4529ea
cmp ebx, 0xd7ff
jbe case.0x4527b8.0
cmp ebx, 0xe000
jae case.0x4527b8.0
mov ecx, dword [ebp - 0x10]
xor edx, edx
jmp 0x452a65
mov ax, word [edx*4 + 0x49c5d0]
xor edx, edx
mov ecx, dword [ebp - 0x10]
shr ax, 0xb
cmp al, byte [esi + 3]
sete dl
jmp 0x452a65
movzx ecx, byte [esi + 3]
movzx edx, word [edx*4 + 0x49c5d2]
mov eax, ecx
and edx, 0xfff
shr eax, 5
add edx, eax
and ecx, 0x8000001f
jns 0x452a3f
dec ecx
or ecx, 0xffffffe0
inc ecx
mov edx, dword [edx*4 + 0x49ba70]
mov eax, 1
shl eax, cl
mov ecx, dword [ebp - 0x10]
and edx, eax
neg edx
sbb edx, edx
neg edx
jmp 0x452a65
mov ecx, dword [ebp - 0x10]
xor edx, edx
cmp ecx, 0x10
setne dl
xor eax, eax
cmp dword [ebp - 0x2c], 0x10
sete al
cmp edx, eax
jne case.default.0x453723
cmp ecx, 0x18a
je 0x452a86
cmp ecx, 0x18c
jne 0x452a97
mov edx, dword [ebp - 0xa8]
mov edi, dword [ebp - 0xac]
mov dword [ebp - 4], edx
jmp 0x452a9a
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 0xc]
mov eax, ecx
inc ecx
mov dword [ebp - 0xc], ecx
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x28]
add eax, dword [ebp - 0x18]
mov dword [ecx], eax
mov dword [ecx + 4], 0
add ecx, 0xc
mov dword [ebp - 8], ecx
jmp 0x45390f
mov esi, 2
jmp 0x452ad2
xor esi, esi
mov edx, dword [ebp - 4]
mov eax, edx
inc edx
mov dword [ebp - 4], edx
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
mov eax, dword [ebp - 0x18]
add eax, 2
mov dword [edi + 4], 0
mov dword [edi], eax
add edi, 0xc
cmp dword [ebp - 0x24], 0
jle case.default.0x453316
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x28], 0
cmp eax, 0x19e
je 0x452b18
cmp eax, 0x1a0
jne 0x452b27
mov eax, dword [ebp - 0xb0]
mov edi, dword [ebp - 0xb4]
mov dword [ebp - 4], eax
lea eax, [ebp - 0x28]
push eax
push dword [ebp - 0x38]
mov eax, dword [ebp + 8]
push dword [ebp - 0x48]
push dword [eax + 0x10]
mov eax, dword [ebp - 0x1c]
add eax, dword [ebp - 0x24]
push eax
push ebx
call fcn.0045a6f0
mov ecx, dword [ebp - 0xc]
add esp, 0x18
mov eax, ecx
inc ecx
mov dword [ebp - 0xc], ecx
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
mov eax, dword [ebp - 0x18]
add eax, esi
neg eax
mov ecx, dword [ebp - 8]
mov dword [ecx], eax
mov eax, dword [ebp - 0x28]
mov dword [ecx + 4], 0
mov dword [ecx + 8], eax
add ecx, 0xc
mov dword [ebp - 8], ecx
jmp 0x45390c
mov ecx, 2
jmp 0x452b86
xor ecx, ecx
mov edx, dword [ebp - 4]
mov eax, edx
inc edx
mov dword [ebp - 4], edx
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
mov esi, dword [ebp - 0x18]
mov dword [edi + 4], 0
lea eax, [esi + 2]
mov dword [edi], eax
add edi, 0xc
cmp dword [ebp - 0x24], 0
jle case.default.0x453316
xor edx, edx
cmp ebx, 0x85
ja 0x452be8
je case.0x452bcc.11
lea eax, [ebx - 0xa]
cmp eax, 3
ja case.default.0x453723
jmp dword [eax*4 + 0x455234]
mov eax, dword [ebp - 0x1c]
inc eax
cmp eax, dword [ebp - 0x48]
jae case.0x452bcc.10
cmp byte [eax], 0xa
jne case.0x452bcc.10
mov edx, 1
jmp case.0x452bcc.10
mov eax, ebx
sub eax, 0x2028
je case.0x452bcc.11
sub eax, 1
jne case.default.0x453723
mov eax, dword [ebp + 8]
cmp word [eax + 0x54], 2
je case.default.0x453723
mov eax, dword [ebp - 0x10]
cmp eax, 0x1b2
je 0x452c19
cmp eax, 0x1b4
jne 0x452c28
mov eax, dword [ebp - 0xb8]
mov edi, dword [ebp - 0xbc]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0xc]
inc dword [ebp - 0xc]
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
lea eax, [ecx + esi]
mov ecx, dword [ebp - 8]
neg eax
mov dword [ecx + 8], edx
mov dword [ecx], eax
mov dword [ecx + 4], 0
add ecx, 0xc
mov dword [ebp - 8], ecx
jmp 0x45390c
mov esi, 2
jmp 0x452c5f
xor esi, esi
mov ecx, dword [ebp - 4]
mov eax, ecx
inc ecx
mov dword [ebp - 4], ecx
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
mov eax, dword [ebp - 0x18]
add eax, 2
mov dword [edi + 4], 0
mov dword [edi], eax
add edi, 0xc
cmp dword [ebp - 0x24], 0
jle case.default.0x453723
cmp ebx, 0x85
ja 0x452ca6
je case.0x452c9f.10
lea eax, [ebx - 0xa]
cmp eax, 3
ja case.default.0x452c9f
jmp dword [eax*4 + 0x455244]
mov eax, ebx
sub eax, 0x2028
je case.0x452c9f.10
sub eax, 1
je case.0x452c9f.10
xor ecx, ecx
jmp 0x452cbd
mov ecx, 1
xor eax, eax
cmp edx, 0x15
sete al
cmp ecx, eax
jne case.default.0x453723
mov eax, dword [ebp - 0x10]
cmp eax, 0x1da
je 0x452cde
cmp eax, 0x1dc
jne 0x452cef
mov edx, dword [ebp - 0xc0]
mov edi, dword [ebp - 0xc4]
mov dword [ebp - 4], edx
jmp 0x452cf2
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 0xc]
mov eax, ecx
inc ecx
mov dword [ebp - 0xc], ecx
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x18]
add eax, esi
neg eax
mov dword [ecx], eax
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
add ecx, 0xc
mov dword [ebp - 8], ecx
jmp 0x45390f
mov esi, 2
jmp 0x452d32
xor esi, esi
mov ecx, dword [ebp - 4]
mov eax, ecx
inc ecx
mov dword [ebp - 4], ecx
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
mov eax, dword [ebp - 0x18]
add eax, 2
mov dword [edi + 4], 0
mov dword [edi], eax
add edi, 0xc
cmp dword [ebp - 0x24], 0
jle case.default.0x453723
cmp ebx, 0x2000
ja 0x452dd9
je case.0x452df5.8193
cmp ebx, 0xa0
ja 0x452dc9
je case.0x452df5.8193
cmp ebx, 9
je case.0x452df5.8193
cmp ebx, 0x20
je case.0x452df5.8193
xor ecx, ecx
xor eax, eax
cmp edx, 0x13
sete al
cmp ecx, eax
jne case.default.0x453723
mov eax, dword [ebp - 0x10]
cmp eax, 0x1c6
je 0x452db5
cmp eax, 0x1c8
jne 0x452cef
mov edx, dword [ebp - 0xc8]
mov edi, dword [ebp - 0x88]
mov dword [ebp - 4], edx
jmp 0x452cf2
cmp ebx, 0x1680
je case.0x452df5.8193
cmp ebx, 0x180e
jmp 0x452d88
cmp ebx, 0x3000
ja case.0x452df5.8203
je case.0x452df5.8193
lea eax, [ebx - 0x2001]
cmp eax, 0x5e
ja case.0x452df5.8203
movzx eax, byte [eax + 0x45525c]
jmp dword [eax*4 + 0x455254]
mov ecx, 1
jmp 0x452d90
cmp dword [ebp - 0x10], 0x189
mov edx, dword [ebp - 4]
je 0x452e30
mov eax, edx
inc edx
mov dword [ebp - 4], edx
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
mov eax, dword [ebp - 0x18]
add eax, 6
mov dword [edi + 4], 0
mov dword [edi], eax
add edi, 0xc
cmp dword [ebp - 0x24], 0
mov eax, dword [ebp - 0x40]
mov eax, dword [eax + 4]
mov dword [ebp - 0x20], eax
jle case.default.0x453316
mov eax, ebx
test eax, eax
jns 0x452e4c
add eax, 0x7f
sar eax, 7
movzx ecx, word [eax*2 + 0x4a0880]
mov eax, ebx
shl ecx, 7
and eax, 0x8000007f
jns 0x452e68
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x4a4c80]
lea edx, [eax + eax*2]
movzx eax, byte [esi + 4]
cmp eax, 0xd
ja case.default.0x452e82
jmp dword [eax*4 + 0x4552bc]
mov ecx, dword [ebp - 0x10]
mov edx, 1
jmp 0x453135
mov al, byte [edx*4 + 0x49c5c9]
cmp al, 9
je case.0x452e82.0
cmp al, 5
je case.0x452e82.0
cmp al, 8
je case.0x452e82.0
mov ecx, dword [ebp - 0x10]
xor edx, edx
jmp 0x453135
movzx ecx, byte [edx*4 + 0x49c5c9]
xor edx, edx
movzx eax, byte [esi + 5]
cmp dword [ecx*4 + 0x49a078], eax
mov ecx, dword [ebp - 0x10]
sete dl
jmp 0x453135
mov al, byte [edx*4 + 0x49c5c9]
xor edx, edx
cmp al, byte [esi + 5]
mov ecx, dword [ebp - 0x10]
sete dl
jmp 0x453135
mov al, byte [edx*4 + 0x49c5c8]
xor edx, edx
cmp al, byte [esi + 5]
mov ecx, dword [ebp - 0x10]
sete dl
jmp 0x453135
mov al, byte [esi + 5]
cmp byte [edx*4 + 0x49c5c8], al
je case.0x452e82.0
movzx edx, word [edx*4 + 0x49c5d0]
movzx ecx, al
and edx, 0x3ff
mov eax, ecx
shr eax, 5
add edx, eax
and ecx, 0x8000001f
jns 0x452f36
dec ecx
or ecx, 0xffffffe0
inc ecx
mov eax, 1
shl eax, cl
test dword [edx*4 + 0x49c2d0], eax
jne case.0x452e82.0
mov ecx, dword [ebp - 0x10]
xor edx, edx
jmp 0x453135
movzx eax, byte [edx*4 + 0x49c5c9]
mov eax, dword [eax*4 + 0x49a078]
cmp eax, 1
je case.0x452e82.0
cmp eax, 3
je case.0x452e82.0
mov ecx, dword [ebp - 0x10]
xor edx, edx
jmp 0x453135
cmp ebx, 0x20
ja 0x452f99
je case.0x452e82.0
lea eax, [ebx - 9]
cmp eax, 4
ja case.0x453010.8203
jmp dword [eax*4 + 0x4552f4]
cmp ebx, 0x2000
ja 0x452ff0
je case.0x452e82.0
cmp ebx, 0x1680
ja 0x452fe8
je case.0x452e82.0
mov eax, ebx
sub eax, 0x85
je case.0x452e82.0
sub eax, 0x1b
je case.0x452e82.0
movzx eax, byte [edx*4 + 0x49c5c9]
xor edx, edx
mov ecx, dword [ebp - 0x10]
cmp dword [eax*4 + 0x49a078], 6
sete dl
jmp 0x453135
cmp ebx, 0x180e
jmp 0x452fc5
cmp ebx, 0x3000
ja case.0x453010.8203
je case.0x452e82.0
lea eax, [ebx - 0x2001]
cmp eax, 0x5e
ja case.0x453010.8203
movzx eax, byte [eax + 0x455310]
jmp dword [eax*4 + 0x455308]
movzx eax, byte [edx*4 + 0x49c5c9]
mov ecx, dword [eax*4 + 0x49a078]
cmp ecx, 1
je case.0x452e82.0
cmp ecx, 3
je case.0x452e82.0
cmp eax, 0xc
je case.0x452e82.0
cmp eax, 0x10
je case.0x452e82.0
mov ecx, dword [ebp - 0x10]
xor edx, edx
jmp 0x453135
movzx eax, byte [esi + 5]
mov ecx, dword [eax*4 + 0x49bff8]
lea eax, [eax*4 + 0x49bff8]
cmp ebx, ecx
jb 0x45304a
nop word [eax + eax]
lea eax, [eax + 4]
cmp ebx, ecx
je case.0x452e82.0
mov ecx, dword [eax]
cmp ebx, ecx
jae 0x453070
mov ecx, dword [ebp - 0x10]
xor edx, edx
jmp 0x453135
cmp ebx, 0x24
je case.0x452e82.0
cmp ebx, 0x40
je case.0x452e82.0
cmp ebx, 0x60
je case.0x452e82.0
cmp ebx, 0xa0
jb 0x4530ba
cmp ebx, 0xd7ff
jbe case.0x452e82.0
cmp ebx, 0xe000
jae case.0x452e82.0
mov ecx, dword [ebp - 0x10]
xor edx, edx
jmp 0x453135
mov ax, word [edx*4 + 0x49c5d0]
xor edx, edx
mov ecx, dword [ebp - 0x10]
shr ax, 0xb
cmp al, byte [esi + 5]
sete dl
jmp 0x453135
movzx ecx, byte [esi + 5]
movzx edx, word [edx*4 + 0x49c5d2]
mov eax, ecx
and edx, 0xfff
shr eax, 5
add edx, eax
and ecx, 0x8000001f
jns 0x45310f
dec ecx
or ecx, 0xffffffe0
inc ecx
mov edx, dword [edx*4 + 0x49ba70]
mov eax, 1
shl eax, cl
mov ecx, dword [ebp - 0x10]
and edx, eax
neg edx
sbb edx, edx
neg edx
jmp 0x453135
mov ecx, dword [ebp - 0x10]
xor edx, edx
cmp ecx, 0x10
setne dl
xor eax, eax
cmp dword [ebp - 0x2c], 0x10
sete al
cmp edx, eax
jne case.default.0x453723
cmp ecx, 0x18d
jne 0x453154
dec dword [ebp - 4]
sub edi, 0xc
movzx ecx, byte [esi + 1]
movzx eax, byte [esi + 2]
mov edx, dword [ebp - 0xc]
inc dword [ebp - 0x20]
inc edx
mov esi, dword [ebp - 0x20]
shl ecx, 8
or ecx, eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0xc], edx
cmp esi, ecx
jl 0x451f84
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
mov eax, dword [ebp - 0x18]
add eax, 6
jmp 0x4511bd
cmp dword [ebp - 0x10], 0x19d
je 0x4531ba
mov ecx, dword [ebp - 4]
mov eax, ecx
inc ecx
mov dword [ebp - 4], ecx
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
mov eax, dword [ebp - 0x18]
add eax, 4
mov dword [edi + 4], 0
mov dword [edi], eax
add edi, 0xc
cmp dword [ebp - 0x24], 0
mov ecx, edi
mov eax, dword [ebp - 0x40]
mov edx, dword [ebp - 4]
mov eax, dword [eax + 4]
mov dword [ebp - 0x88], eax
jle case.default.0x453723
add edi, 0xfffffff4
mov dword [ebp - 0x20], 0
cmp dword [ebp - 0x10], 0x1a1
mov eax, edx
cmovne edi, ecx
dec eax
cmp dword [ebp - 0x10], 0x1a1
cmovne eax, edx
mov dword [ebp - 4], eax
lea eax, [ebp - 0x20]
push eax
push dword [ebp - 0x38]
mov eax, dword [ebp + 8]
push dword [ebp - 0x48]
push dword [eax + 0x10]
mov eax, dword [ebp - 0x1c]
add eax, dword [ebp - 0x24]
push eax
push ebx
call fcn.0045a6f0
add esp, 0x18
cmp eax, dword [ebp - 0x48]
jb 0x453233
mov eax, dword [ebp + 8]
mov ecx, 1
test byte [eax + 0x3c], 0x20
mov eax, dword [ebp - 0x68]
cmovne eax, ecx
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0xc]
movzx ecx, byte [esi + 1]
inc eax
mov edx, dword [ebp - 0x88]
mov dword [ebp - 0x28], eax
inc edx
movzx eax, byte [esi + 2]
shl ecx, 8
or ecx, eax
mov eax, dword [ebp - 0xc]
cmp edx, ecx
jl 0x453289
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0xc], ecx
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
mov ecx, dword [ebp - 8]
mov eax, 0xfffffffc
sub eax, dword [ebp - 0x18]
mov dword [ecx], eax
mov eax, dword [ebp - 0x20]
mov dword [ecx + 8], eax
mov dword [ecx + 4], 0
add ecx, 0xc
mov dword [ebp - 8], ecx
jmp 0x45390c
mov esi, dword [ebp - 0x28]
mov dword [ebp - 0xc], esi
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x18]
neg eax
mov dword [ecx], eax
mov eax, dword [ebp - 0x20]
mov dword [ecx + 4], edx
mov edx, dword [ebp - 4]
mov dword [ecx + 8], eax
add ecx, 0xc
mov dword [ebp - 8], ecx
mov dword [ebp - 4], edx
jmp 0x45390f
cmp dword [ebp - 0x10], 0x1b1
mov edx, dword [ebp - 4]
je 0x4532e9
mov eax, edx
inc edx
mov dword [ebp - 4], edx
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
mov eax, dword [ebp - 0x18]
add eax, 4
mov dword [edi + 4], 0
mov dword [edi], eax
add edi, 0xc
cmp dword [ebp - 0x24], 0
mov eax, dword [ebp - 0x40]
mov ecx, dword [eax + 4]
jle case.default.0x453316
mov dword [ebp - 0x20], 0
cmp ebx, 0x85
ja 0x453334
je case.0x453316.11
lea eax, [ebx - 0xa]
cmp eax, 3
ja case.default.0x453316
jmp dword [eax*4 + 0x455370]
mov eax, dword [ebp - 0x1c]
inc eax
cmp eax, dword [ebp - 0x48]
jae case.0x453316.10
cmp byte [eax], 0xa
jne case.0x453316.10
mov dword [ebp - 0x20], 1
jmp case.0x453316.10
mov eax, ebx
sub eax, 0x2028
je case.0x453316.11
sub eax, 1
jne case.default.0x453316
mov eax, dword [ebp + 8]
cmp word [eax + 0x54], 2
je case.default.0x453316
cmp dword [ebp - 0x10], 0x1b5
jne 0x453364
dec edx
sub edi, 0xc
mov dword [ebp - 4], edx
movzx eax, byte [esi + 2]
inc ecx
mov edx, dword [ebp - 0xc]
mov dword [ebp - 0x88], ecx
inc edx
movzx ecx, byte [esi + 1]
mov esi, dword [ebp - 0x88]
shl ecx, 8
or ecx, eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0xc], edx
cmp esi, ecx
jl 0x4533ba
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
mov ecx, dword [ebp - 8]
mov eax, 0xfffffffc
sub eax, dword [ebp - 0x18]
mov dword [ecx], eax
mov eax, dword [ebp - 0x20]
mov dword [ecx + 8], eax
mov dword [ecx + 4], 0
add ecx, 0xc
mov dword [ebp - 8], ecx
jmp 0x45390c
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x18]
neg eax
mov dword [ecx], eax
mov eax, dword [ebp - 0x20]
mov dword [ecx + 4], esi
mov dword [ecx + 8], eax
add ecx, 0xc
mov dword [ebp - 8], ecx
jmp 0x45390c
cmp dword [ebp - 0x10], 0x1d9
je 0x45340e
mov ecx, dword [ebp - 4]
mov eax, ecx
inc ecx
mov dword [ebp - 4], ecx
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
mov eax, dword [ebp - 0x18]
add eax, 4
mov dword [edi + 4], 0
mov dword [edi], eax
add edi, 0xc
cmp dword [ebp - 0x24], 0
mov eax, dword [ebp - 0x40]
mov ecx, dword [eax + 4]
jle case.default.0x453723
cmp ebx, 0x85
ja 0x453437
je case.0x453430.10
lea eax, [ebx - 0xa]
cmp eax, 3
ja case.default.0x453430
jmp dword [eax*4 + 0x455380]
mov eax, ebx
sub eax, 0x2028
je case.0x453430.10
sub eax, 1
je case.0x453430.10
mov dword [ebp - 0x28], 0
jmp 0x453455
mov dword [ebp - 0x28], 1
xor eax, eax
cmp edx, 0x15
sete al
cmp dword [ebp - 0x28], eax
jne case.default.0x453723
cmp dword [ebp - 0x10], 0x1dd
jne 0x453475
dec dword [ebp - 4]
sub edi, 0xc
movzx eax, byte [esi + 2]
inc ecx
mov dword [ebp - 0x88], ecx
movzx ecx, byte [esi + 1]
mov esi, dword [ebp - 0x88]
mov edx, dword [ebp - 0xc]
shl ecx, 8
inc edx
or ecx, eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0xc], edx
cmp esi, ecx
jl 0x4534cc
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
mov ecx, dword [ebp - 8]
mov eax, 0xfffffffc
sub eax, dword [ebp - 0x18]
mov dword [ecx], eax
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
add ecx, 0xc
mov dword [ebp - 8], ecx
jmp 0x45390c
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x18]
neg eax
mov dword [ecx], eax
mov dword [ecx + 4], esi
mov dword [ecx + 8], 0
add ecx, 0xc
mov dword [ebp - 8], ecx
jmp 0x45390c
cmp dword [ebp - 0x10], 0x1c5
je 0x453521
mov ecx, dword [ebp - 4]
mov eax, ecx
inc ecx
mov dword [ebp - 4], ecx
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
mov eax, dword [ebp - 0x18]
add eax, 4
mov dword [edi + 4], 0
mov dword [edi], eax
add edi, 0xc
cmp dword [ebp - 0x24], 0
mov eax, dword [ebp - 0x40]
mov eax, dword [eax + 4]
mov dword [ebp - 0x20], eax
jle case.default.0x453723
cmp ebx, 0x2000
ja 0x4535a2
je case.0x4535be.8193
cmp ebx, 0xa0
ja 0x453592
je case.0x4535be.8193
cmp ebx, 9
je case.0x4535be.8193
cmp ebx, 0x20
je case.0x4535be.8193
xor ecx, ecx
xor eax, eax
cmp edx, 0x13
sete al
cmp ecx, eax
jne case.default.0x453723
cmp dword [ebp - 0x10], 0x1c9
jne 0x45357f
dec dword [ebp - 4]
sub edi, 0xc
inc dword [ebp - 0x20]
movzx ecx, byte [esi + 1]
movzx eax, byte [esi + 2]
mov esi, dword [ebp - 0x20]
jmp 0x45348a
cmp ebx, 0x1680
je case.0x4535be.8193
cmp ebx, 0x180e
jmp 0x45355c
cmp ebx, 0x3000
ja case.0x4535be.8203
je case.0x4535be.8193
lea eax, [ebx - 0x2001]
cmp eax, 0x5e
ja case.0x4535be.8203
movzx eax, byte [eax + 0x455398]
jmp dword [eax*4 + 0x455390]
mov ecx, 1
jmp 0x453560
cmp dword [ebp - 0x24], 0
jle case.default.0x453723
cmp ebx, edx
jne case.default.0x453723
mov esi, dword [ebp - 0xc]
mov eax, esi
inc esi
mov dword [ebp - 0xc], esi
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
mov eax, dword [ebp - 0x18]
inc eax
add eax, ecx
jmp 0x4511bd
cmp dword [ebp - 0x24], 0
je case.default.0x453723
cmp dword [ebp - 0x7c], 0
je 0x45366b
cmp ebx, edx
je 0x4535de
cmp ebx, 0x80
jae 0x453626
mov eax, dword [ebp - 0x44]
movzx eax, byte [ebx + eax + 0x100]
cmp edx, eax
jmp 0x4535d8
mov eax, ebx
test eax, eax
jns 0x45362f
add eax, 0x7f
sar eax, 7
movzx ecx, word [eax*2 + 0x4a0880]
mov eax, ebx
shl ecx, 7
and eax, 0x8000007f
jns 0x45364b
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x4a4c80]
mov ecx, dword [ebp - 0x20]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x49c5cc]
add eax, ebx
cmp edx, eax
jmp 0x4535d8
mov ecx, dword [ebp - 0x44]
mov al, byte [ebx + ecx]
cmp al, byte [edx + ecx]
jne case.default.0x453723
mov esi, dword [ebp - 0xc]
mov eax, esi
inc esi
mov dword [ebp - 0xc], esi
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
mov eax, dword [ebp - 0x18]
add eax, 2
jmp 0x4511bd
cmp dword [ebp - 0x24], 0
jle case.default.0x453723
mov esi, dword [ebp + 8]
lea eax, [ebp - 0x28]
push eax
push dword [ebp - 0x38]
mov eax, dword [ebp - 0x1c]
push dword [ebp - 0x48]
add eax, dword [ebp - 0x24]
push dword [esi + 0x10]
mov dword [ebp - 0x28], 0
push eax
push ebx
call fcn.0045a6f0
add esp, 0x18
cmp eax, dword [ebp - 0x48]
jb 0x4536df
test byte [esi + 0x3c], 0x20
mov ecx, 1
mov eax, dword [ebp - 0x68]
cmovne eax, ecx
mov dword [ebp - 0x68], eax
mov esi, dword [ebp - 0xc]
mov eax, esi
inc esi
mov dword [ebp - 0xc], esi
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
mov eax, dword [ebp - 0x18]
not eax
jmp 0x452b60
cmp dword [ebp - 0x24], 0
jle case.default.0x453723
cmp ebx, 0x85
ja 0x4537af
je case.0x453723.11
lea eax, [ebx - 0xa]
cmp eax, 3
ja case.default.0x453723
jmp dword [eax*4 + 0x4553f8]
mov eax, dword [ebp - 0x1c]
mov esi, dword [ebp - 0xc]
inc eax
cmp eax, dword [ebp - 0x48]
jb 0x453774
mov eax, esi
inc esi
mov dword [ebp - 0xc], esi
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x18]
inc eax
mov dword [ecx], eax
mov eax, dword [ebp + 8]
mov dword [ecx + 4], 0
add ecx, 0xc
mov dword [ebp - 8], ecx
test byte [eax + 0x3c], 0x20
je 0x45390c
mov dword [ebp - 0x68], 1
jmp 0x45390c
cmp byte [eax], 0xa
mov eax, esi
jne 0x4511ac
inc esi
mov dword [ebp - 0xc], esi
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x18]
not eax
mov dword [ecx + 8], 1
mov dword [ecx], eax
mov dword [ecx + 4], 0
add ecx, 0xc
mov dword [ebp - 8], ecx
jmp 0x45390c
mov eax, ebx
sub eax, 0x2028
je case.0x453723.11
sub eax, 1
jne case.default.0x453723
mov eax, dword [ebp + 8]
cmp word [eax + 0x54], 2
je case.default.0x453723
jmp case.0x453723.10
cmp dword [ebp - 0x24], 0
jle case.default.0x453723
cmp ebx, 0x85
ja 0x4537ff
je case.default.0x453723
lea eax, [ebx - 0xa]
cmp eax, 3
ja case.0x453723.10
jmp dword [eax*4 + 0x455408]
mov eax, ebx
sub eax, 0x2028
je case.default.0x453723
sub eax, 1
je case.default.0x453723
jmp case.0x453723.10
cmp dword [ebp - 0x24], 0
jle case.default.0x453723
cmp ebx, 0x85
ja 0x453845
je case.0x453723.10
lea eax, [ebx - 0xa]
cmp eax, 3
ja case.default.0x453723
jmp dword [eax*4 + 0x455418]
mov eax, ebx
sub eax, 0x2028
je case.0x453723.10
sub eax, 1
jne case.default.0x453723
jmp case.0x453723.10
cmp dword [ebp - 0x24], 0
jle case.default.0x453723
cmp ebx, 0x2000
ja 0x4538aa
je case.default.0x453723
cmp ebx, 0xa0
ja 0x453895
je case.default.0x453723
cmp ebx, 9
je case.default.0x453723
cmp ebx, 0x20
je case.default.0x453723
jmp case.0x453723.10
cmp ebx, 0x1680
je case.default.0x453723
cmp ebx, 0x180e
je case.default.0x453723
jmp case.0x453723.10
cmp ebx, 0x3000
ja case.0x453723.10
je case.default.0x453723
lea eax, [ebx - 0x2001]
cmp eax, 0x5e
ja case.0x453723.10
movzx eax, byte [eax + 0x455430]
jmp dword [eax*4 + 0x455428]
cmp dword [ebp - 0x24], 0
jle case.default.0x453723
cmp ebx, 0x2000
ja 0x45394e
je case.0x453723.10
cmp ebx, 0xa0
ja 0x45393a
je case.0x453723.10
cmp ebx, 9
je case.0x453723.10
cmp ebx, 0x20
je case.0x453723.10
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0x6c]
inc eax
mov dword [ebp - 0x6c], eax
cmp eax, edx
jl 0x4509f1
mov edi, dword [ebp - 0xc]
test edi, edi
jle 0x454be7
mov eax, dword [ebp - 0x1c]
add eax, dword [ebp - 0x24]
mov esi, dword [ebp + 8]
mov ebx, dword [ebp - 0x70]
jmp 0x45083a
cmp ebx, 0x1680
je case.0x453723.10
cmp ebx, 0x180e
jmp 0x453903
cmp ebx, 0x3000
ja case.default.0x453723
je case.0x453723.10
lea eax, [ebx - 0x2001]
cmp eax, 0x5e
ja case.default.0x453723
movzx eax, byte [eax + 0x455498]
jmp dword [eax*4 + 0x455490]
cmp dword [ebp - 0x24], 0
jle case.default.0x453723
cmp ebx, edx
je case.default.0x453723
jmp 0x4535de
cmp dword [ebp - 0x24], 0
jle case.default.0x453723
cmp dword [ebp - 0x7c], 0
je 0x4539cc
cmp edx, 0x80
jb 0x4539cc
mov eax, edx
mov esi, 0x80
cdq
idiv esi
movzx eax, word [eax*2 + 0x4a0880]
shl eax, 7
add eax, edx
mov edx, dword [ebp - 0x2c]
movzx eax, word [eax*2 + 0x4a4c80]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x49c5cc]
add eax, edx
jmp 0x4539d7
mov eax, dword [ebp - 0x44]
movzx eax, byte [edx + eax + 0x100]
cmp ebx, edx
je case.default.0x453723
cmp ebx, eax
je case.default.0x453723
jmp 0x4535de
sub dword [ebp - 0x10], 0xd
mov dword [ebp - 0x34], 1
mov eax, dword [ebp - 0x40]
mov esi, dword [eax + 4]
test esi, esi
jle 0x453a22
mov eax, dword [ebp - 4]
inc dword [ebp - 4]
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
mov eax, dword [ebp - 0x18]
inc eax
mov dword [edi + 4], 0
add eax, ecx
mov dword [edi], eax
add edi, 0xc
cmp dword [ebp - 0x24], 0
jle case.default.0x453723
or eax, 0xffffffff
cmp dword [ebp - 0x34], 0
je 0x453a8b
cmp dword [ebp - 0x7c], 0
je 0x453a80
cmp edx, 0x80
jb 0x453a80
mov eax, edx
test eax, eax
jns 0x453a4c
add eax, 0x7f
sar eax, 7
movzx ecx, word [eax*2 + 0x4a0880]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x453a68
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x4a4c80]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x49c5cc]
add eax, edx
jmp 0x453a8b
mov eax, dword [ebp - 0x44]
movzx eax, byte [edx + eax + 0x100]
cmp ebx, edx
je 0x453a97
cmp ebx, eax
je 0x453a97
xor ecx, ecx
jmp 0x453a9c
mov ecx, 1
mov edx, dword [ebp - 0x10]
cmp edx, 0x3b
sbb eax, eax
neg eax
cmp ecx, eax
jne case.default.0x453723
test esi, esi
jle 0x453ac4
cmp edx, 0x2b
je 0x453abc
cmp edx, 0x45
jne 0x453ac4
mov edx, dword [ebp - 4]
jmp 0x451b6d
mov edx, dword [ebp - 4]
jmp 0x451b74
sub dword [ebp - 0x10], 0xd
mov dword [ebp - 0x34], 1
mov esi, dword [ebp - 4]
mov eax, esi
inc esi
mov dword [ebp - 4], esi
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
mov esi, dword [ebp - 0x18]
inc esi
mov dword [edi + 4], 0
add esi, ecx
mov dword [edi], esi
add edi, 0xc
cmp dword [ebp - 0x24], 0
jle case.default.0x453723
or eax, 0xffffffff
cmp dword [ebp - 0x34], 0
je 0x453b64
cmp dword [ebp - 0x7c], 0
je 0x453b59
cmp edx, 0x80
jb 0x453b59
mov eax, edx
test eax, eax
jns 0x453b25
add eax, 0x7f
sar eax, 7
movzx ecx, word [eax*2 + 0x4a0880]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x453b41
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x4a4c80]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x49c5cc]
add eax, edx
jmp 0x453b64
mov eax, dword [ebp - 0x44]
movzx eax, byte [edx + eax + 0x100]
cmp ebx, edx
je 0x453b70
cmp ebx, eax
je 0x453b70
xor ecx, ecx
jmp 0x453b75
mov ecx, 1
mov edx, dword [ebp - 0x10]
cmp edx, 0x3b
sbb eax, eax
neg eax
cmp ecx, eax
jne case.default.0x453723
cmp edx, 0x2c
je 0x453b91
cmp edx, 0x46
jne 0x453ba2
mov edx, dword [ebp - 0xd0]
mov edi, dword [ebp - 0xd4]
mov dword [ebp - 4], edx
jmp 0x453ba5
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 0xc]
mov eax, ecx
inc ecx
mov dword [ebp - 0xc], ecx
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
mov ecx, dword [ebp - 8]
mov dword [ecx], esi
mov dword [ecx + 4], 0
add ecx, 0xc
mov dword [ebp - 8], ecx
jmp 0x45390f
sub dword [ebp - 0x10], 0xd
mov dword [ebp - 0x34], 1
mov esi, dword [ebp - 4]
mov eax, esi
inc esi
mov dword [ebp - 4], esi
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
mov esi, dword [ebp - 0x18]
mov dword [edi + 4], 0
lea eax, [esi + 1]
add eax, ecx
mov dword [edi], eax
add edi, 0xc
cmp dword [ebp - 0x24], 0
jle case.default.0x453723
or eax, 0xffffffff
cmp dword [ebp - 0x34], 0
je 0x453c68
cmp dword [ebp - 0x7c], 0
je 0x453c5d
cmp edx, 0x80
jb 0x453c5d
mov eax, edx
test eax, eax
jns 0x453c29
add eax, 0x7f
sar eax, 7
movzx ecx, word [eax*2 + 0x4a0880]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x453c45
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x4a4c80]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x49c5cc]
add eax, edx
jmp 0x453c68
mov eax, dword [ebp - 0x44]
movzx eax, byte [edx + eax + 0x100]
cmp ebx, edx
je 0x453c74
cmp ebx, eax
je 0x453c74
xor ecx, ecx
jmp 0x453c79
mov ecx, 1
mov edx, dword [ebp - 0x10]
cmp edx, 0x3b
sbb eax, eax
neg eax
cmp ecx, eax
jne case.default.0x453723
cmp edx, 0x2a
je 0x453c99
cmp edx, 0x44
jne 0x453ba2
mov edx, dword [ebp - 0xd8]
mov edi, dword [ebp - 0xdc]
mov dword [ebp - 4], edx
jmp 0x453ba5
sub dword [ebp - 0x10], 0xd
mov dword [ebp - 0x34], 1
cmp dword [ebp - 0x24], 0
mov eax, dword [ebp - 0x40]
mov ecx, dword [eax + 4]
mov dword [ebp - 0x2c], ecx
jle case.default.0x453723
or eax, 0xffffffff
cmp dword [ebp - 0x34], 0
je 0x453d2d
cmp dword [ebp - 0x7c], 0
je 0x453d22
cmp edx, 0x80
jb 0x453d22
mov eax, edx
test eax, eax
jns 0x453ceb
add eax, 0x7f
sar eax, 7
movzx ecx, word [eax*2 + 0x4a0880]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x453d07
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x4a4c80]
mov ecx, dword [ebp - 0x2c]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x49c5cc]
add eax, edx
jmp 0x453d2d
mov eax, dword [ebp - 0x44]
movzx eax, byte [edx + eax + 0x100]
cmp ebx, edx
je 0x453d39
cmp ebx, eax
je 0x453d39
xor edx, edx
jmp 0x453d3e
mov edx, 1
cmp dword [ebp - 0x10], 0x3b
sbb eax, eax
neg eax
cmp edx, eax
jne case.default.0x453723
mov eax, dword [ebp - 0xc]
inc ecx
mov dword [ebp - 0x2c], ecx
inc eax
movzx ecx, byte [esi + 1]
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x28], eax
movzx eax, byte [esi + 2]
shl ecx, 8
or ecx, eax
mov eax, dword [ebp - 0xc]
cmp edx, ecx
jl 0x453d8f
mov esi, dword [ebp - 0x28]
mov dword [ebp - 0xc], esi
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x18]
add edx, 3
add eax, edx
jmp 0x4511bd
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0xc], ecx
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x18]
mov dword [ecx], eax
mov dword [ecx + 4], edx
add ecx, 0xc
mov dword [ebp - 8], ecx
jmp 0x45390c
sub dword [ebp - 0x10], 0xd
mov dword [ebp - 0x34], 1
mov eax, dword [ebp - 4]
inc dword [ebp - 4]
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
mov eax, dword [ebp - 0x18]
add eax, 3
mov dword [edi + 4], 0
add eax, ecx
mov dword [edi], eax
add edi, 0xc
cmp dword [ebp - 0x24], 0
mov eax, dword [ebp - 0x40]
mov eax, dword [eax + 4]
mov dword [ebp - 0x2c], eax
jle case.default.0x453723
or eax, 0xffffffff
cmp dword [ebp - 0x34], 0
je 0x453e54
cmp dword [ebp - 0x7c], 0
je 0x453e49
cmp edx, 0x80
jb 0x453e49
mov eax, edx
test eax, eax
jns 0x453e15
add eax, 0x7f
sar eax, 7
movzx ecx, word [eax*2 + 0x4a0880]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x453e31
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x4a4c80]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x49c5cc]
add eax, edx
jmp 0x453e54
mov eax, dword [ebp - 0x44]
movzx eax, byte [edx + eax + 0x100]
cmp ebx, edx
je 0x453e60
cmp ebx, eax
je 0x453e60
xor ecx, ecx
jmp 0x453e65
mov ecx, 1
mov edx, dword [ebp - 0x10]
cmp edx, 0x3b
sbb eax, eax
neg eax
cmp ecx, eax
jne case.default.0x453723
cmp edx, 0x2d
je 0x453e81
cmp edx, 0x47
jne 0x453e90
mov eax, dword [ebp - 0xe0]
mov edi, dword [ebp - 0xe4]
mov dword [ebp - 4], eax
movzx ecx, byte [esi + 1]
movzx eax, byte [esi + 2]
inc dword [ebp - 0x2c]
mov edx, dword [ebp - 0xc]
mov esi, dword [ebp - 0x2c]
inc edx
shl ecx, 8
or ecx, eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0xc], edx
cmp esi, ecx
jl 0x451f84
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x18]
add edx, 3
add eax, edx
jmp 0x4511bd
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x20], 0
cmp ecx, 0x70
je 0x453f4e
cmp dword [ebp - 0x24], 0
lea edx, [esi + 0x21]
mov dword [ebp - 0x34], edx
jle 0x453f00
cmp ebx, 0xff
jbe 0x453f28
xor eax, eax
cmp ecx, 0x6f
sete al
mov dword [ebp - 0x20], eax
mov esi, dword [ebp - 0x20]
movzx ecx, byte [edx]
mov eax, edx
sub eax, dword [ebp - 0x50]
add ecx, 0xffffff9e
mov dword [ebp - 0x20], eax
cmp ecx, 0xb
ja case.default.0x453f21
movzx eax, byte [ecx + 0x455508]
jmp dword [eax*4 + 0x4554f8]
mov ecx, dword [ebp - 0xe8]
mov edx, ebx
shr edx, 3
mov eax, 1
shl eax, cl
test byte [edx + esi + 1], al
mov eax, 0
mov edx, dword [ebp - 0x34]
setne al
mov dword [ebp - 0x20], eax
jmp 0x453f00
movzx edx, byte [esi + 1]
movzx eax, byte [esi + 2]
shl edx, 8
or edx, eax
add edx, esi
cmp dword [ebp - 0x24], 0
mov dword [ebp - 0x34], edx
jle 0x453f00
push dword [ebp - 0x38]
add esi, 3
push esi
push ebx
call fcn.0045b010
mov edx, dword [ebp - 0x34]
add esp, 0xc
mov esi, eax
jmp 0x453f03
mov ecx, dword [ebp - 4]
mov eax, ecx
inc ecx
mov dword [ebp - 4], ecx
mov ecx, dword [ebp - 0x14]
cmp eax, ecx
jge 0x454bc6
mov eax, dword [ebp - 0x20]
inc eax
mov dword [edi + 4], 0
mov dword [edi], eax
add edi, 0xc
test esi, esi
je case.default.0x453723
cmp byte [edx], 0x6a
jne 0x453fbf
mov edx, dword [ebp - 0xec]
mov edi, dword [ebp - 0x8c]
mov dword [ebp - 4], edx
jmp 0x453fc2
mov edx, dword [ebp - 4]
mov esi, dword [ebp - 0xc]
mov eax, esi
inc esi
mov dword [ebp - 0xc], esi
cmp eax, ecx
jge 0x454bc6
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x18]
mov dword [ecx], eax
mov dword [ecx + 4], 0
add ecx, 0xc
mov dword [ebp - 8], ecx
jmp 0x45390f
mov eax, dword [ebp - 0x40]
mov eax, dword [eax + 4]
mov dword [ebp - 0x28], eax
test eax, eax
jle 0x454023
mov ecx, dword [ebp - 4]
mov eax, ecx
inc ecx
mov dword [ebp - 4], ecx
mov ecx, dword [ebp - 0x14]
cmp eax, ecx
jge 0x454bc6
mov eax, dword [ebp - 0x20]
inc eax
mov dword [edi + 4], 0
mov dword [edi], eax
add edi, 0xc
mov eax, dword [ebp - 0x28]
jmp 0x454026
mov ecx, dword [ebp - 0x14]
test esi, esi
je case.default.0x453723
test eax, eax
jle 0x454043
cmp byte [edx], 0x6b
mov edx, dword [ebp - 4]
jne 0x454046
dec edx
sub edi, 0xc
mov dword [ebp - 4], edx
jmp 0x454046
mov edx, dword [ebp - 4]
mov esi, dword [ebp - 0xc]
mov eax, esi
inc esi
mov dword [ebp - 0xc], esi
cmp eax, ecx
jge 0x454bc6
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x18]
mov dword [ecx], eax
mov eax, dword [ebp - 0x28]
inc eax
mov dword [ecx + 4], eax
add ecx, 0xc
mov dword [ebp - 8], ecx
jmp 0x45390f
mov ecx, dword [ebp - 4]
mov eax, ecx
inc ecx
mov dword [ebp - 4], ecx
mov ecx, dword [ebp - 0x14]
cmp eax, ecx
jge 0x454bc6
mov eax, dword [ebp - 0x20]
inc eax
mov dword [edi + 4], 0
mov dword [edi], eax
add edi, 0xc
mov dword [ebp - 0x8c], eax
test esi, esi
je case.default.0x453723
cmp byte [edx], 0x6c
jne 0x4540b3
mov edx, dword [ebp - 0x78]
mov edi, dword [ebp - 0x58]
mov dword [ebp - 4], edx
jmp 0x4540b6
mov edx, dword [ebp - 4]
mov esi, dword [ebp - 0xc]
mov eax, esi
inc esi
mov dword [ebp - 0xc], esi
cmp eax, ecx
jge 0x454bc6
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x8c]
mov dword [ecx], eax
mov dword [ecx + 4], 0
add ecx, 0xc
mov dword [ebp - 8], ecx
jmp 0x45390f
mov eax, dword [ebp - 0x40]
movzx ecx, byte [edx + 1]
shl ecx, 8
mov eax, dword [eax + 4]
mov dword [ebp - 0x34], eax
movzx eax, byte [edx + 2]
or ecx, eax
cmp dword [ebp - 0x34], ecx
jl 0x454123
mov ecx, dword [ebp - 4]
mov eax, ecx
inc ecx
mov dword [ebp - 4], ecx
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
mov eax, dword [ebp - 0x20]
add eax, 5
mov dword [edi + 4], 0
mov dword [edi], eax
add edi, 0xc
test esi, esi
je case.default.0x453723
movzx esi, byte [edx + 3]
movzx eax, byte [edx + 4]
shl esi, 8
or esi, eax
cmp byte [edx], 0x6d
jne 0x454159
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
mov edx, dword [ebp - 0x34]
shl ecx, 8
or ecx, eax
cmp edx, ecx
jl 0x45415c
dec dword [ebp - 4]
sub edi, 0xc
jmp 0x45415c
mov edx, dword [ebp - 0x34]
inc edx
cmp edx, esi
jl 0x454182
test esi, esi
je 0x454182
mov esi, dword [ebp - 0xc]
mov eax, esi
inc esi
mov dword [ebp - 0xc], esi
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
mov eax, dword [ebp - 0x20]
add eax, 5
jmp 0x4511bd
mov esi, dword [ebp - 0xc]
mov eax, esi
inc esi
mov dword [ebp - 0xc], esi
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x18]
mov dword [ecx], eax
mov dword [ecx + 4], edx
add ecx, 0xc
mov dword [ebp - 8], ecx
jmp 0x45390c
test esi, esi
je case.default.0x453723
mov esi, dword [ebp - 0xc]
mov eax, esi
inc esi
mov dword [ebp - 0xc], esi
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
mov eax, dword [ebp - 0x20]
jmp 0x4511bd
inc dword [ebp - 0x98]
jmp case.default.0x453723
mov ecx, dword [ebp - 0x30]
mov edx, ecx
movzx ebx, byte [esi + 1]
movzx eax, byte [esi + 2]
shl ebx, 8
or ebx, eax
mov dword [ebp - 0x28], ecx
add ebx, esi
mov eax, ecx
cmp dword [ecx + 8], 0x3ea
jae 0x45421a
push dword [ebp + 8]
lea eax, [ebp - 0x28]
push 2
push eax
call fcn.00455520
add esp, 0xc
test eax, eax
jne 0x454c59
mov eax, dword [ebp - 0x28]
mov edx, eax
mov dword [ebp - 0x30], eax
mov eax, dword [eax + 4]
sub eax, dword [edx + 8]
mov ecx, dword [ebp - 0x30]
add dword [edx + 8], 0xfffffc16
lea eax, [ecx + eax*4]
mov dword [ebp - 0x78], eax
add eax, 8
cmp byte [ebx], 0x78
mov dword [ebp - 0x58], eax
jne 0x454254
nop dword [eax + eax]
movzx ecx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl ecx, 8
or ecx, eax
add ebx, ecx
cmp byte [ebx], 0x78
je 0x454240
push dword [ebp - 0x30]
mov ecx, dword [ebp - 0x1c]
mov eax, ecx
push dword [ebp - 0x84]
sub eax, dword [ebp - 0x4c]
push 0x3e8
push dword [ebp - 0x58]
push 2
push dword [ebp - 0x78]
push eax
push ecx
push esi
push dword [ebp + 8]
call fcn.00450560
mov ecx, eax
add esp, 0x28
mov eax, dword [ebp - 0x30]
add dword [eax + 8], 0x3ea
test ecx, ecx
jns 0x454299
cmp ecx, 0xffffffff
jne 0x454b99
mov eax, dword [ebp - 0x10]
cmp eax, 0x7f
je 0x4542ac
cmp eax, 0x81
je 0x4542ac
xor edx, edx
jmp 0x4542b1
mov edx, 1
xor eax, eax
test ecx, ecx
setns al
cmp eax, edx
mov edx, dword [ebp - 4]
jne 0x4542e0
mov eax, edx
inc edx
mov dword [ebp - 4], edx
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
sub ebx, dword [ebp - 0x50]
add ebx, 3
mov dword [edi + 4], 0
mov dword [edi], ebx
add edi, 0xc
mov ebx, dword [ebp - 0x3c]
mov ecx, dword [ebp - 8]
jmp 0x45390f
movzx edx, byte [esi + 1]
movzx eax, byte [esi + 2]
shl edx, 8
or edx, eax
mov al, byte [esi + 3]
mov dword [ebp - 0x20], edx
cmp al, 0x76
je 0x454306
cmp al, 0x77
jne 0x45433b
lea eax, [ebp - 0xfc]
push eax
push 3
push dword [ebp + 8]
push dword [ebp - 0x1c]
push dword [ebp - 0x60]
push dword [ebp + 0x18]
push esi
call fcn.00450480
add esp, 0x1c
test eax, eax
js 0x454c59
jg case.default.0x453723
add esi, dword [ebp - 0xfc]
mov edx, dword [ebp - 0x20]
mov al, byte [esi + 3]
lea ecx, [esi + 3]
mov dword [ebp - 0x8c], ecx
mov byte [ebp - 0x7d], al
cmp al, 0x91
je 0x454ba2
cmp al, 0x92
je 0x454ba2
cmp al, 0x94
je 0x454ba2
cmp al, 0x95
je 0x45450b
cmp al, 0xa3
je 0x45450b
cmp al, 0x96
jne 0x45438d
mov edx, dword [ebp - 4]
cmp edx, dword [ebp - 0x14]
jge 0x454bc6
mov eax, dword [ebp - 0x18]
add eax, 4
jmp 0x454522
cmp al, 0x93
jne 0x4543ce
movzx ecx, byte [esi + 4]
movzx eax, byte [esi + 5]
shl ecx, 8
or ecx, eax
cmp ecx, 0xffff
jne 0x454ba2
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 4], eax
jge 0x454bc6
mov eax, dword [ebp + 8]
cmp dword [eax + 0x64], 0
mov eax, dword [ebp - 0x18]
je 0x45451a
add eax, 6
jmp 0x45451f
movzx esi, byte [ecx + 1]
movzx eax, byte [ecx + 2]
shl esi, 8
or esi, eax
add esi, ecx
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x28], ecx
mov edx, ecx
mov eax, ecx
cmp dword [ecx + 8], 0x3ea
jae 0x454411
push dword [ebp + 8]
lea eax, [ebp - 0x28]
push 2
push eax
call fcn.00455520
add esp, 0xc
test eax, eax
jne 0x454c59
mov eax, dword [ebp - 0x28]
mov edx, eax
mov dword [ebp - 0x30], eax
mov eax, dword [eax + 4]
mov ecx, dword [edx + 8]
sub eax, ecx
mov ebx, dword [ebp - 0x30]
lea eax, [ebx + eax*4]
mov ebx, dword [ebp - 0x3c]
mov dword [ebp - 0x78], eax
add eax, 8
mov dword [ebp - 0x58], eax
lea eax, [ecx - 0x3ea]
mov dword [edx + 8], eax
cmp byte [esi], 0x78
jne 0x454454
nop dword [eax]
movzx ecx, byte [esi + 1]
movzx eax, byte [esi + 2]
shl ecx, 8
or ecx, eax
add esi, ecx
cmp byte [esi], 0x78
je 0x454440
push dword [ebp - 0x30]
mov ecx, dword [ebp - 0x1c]
mov eax, ecx
push dword [ebp - 0x84]
sub eax, dword [ebp - 0x4c]
push 0x3e8
push dword [ebp - 0x58]
push 2
push dword [ebp - 0x78]
push eax
push ecx
push dword [ebp - 0x8c]
push dword [ebp + 8]
call fcn.00450560
mov edx, eax
add esp, 0x28
mov eax, dword [ebp - 0x30]
add dword [eax + 8], 0x3ea
test edx, edx
jns 0x45449e
cmp edx, 0xffffffff
jne 0x454c57
mov cl, byte [ebp - 0x7d]
cmp cl, 0x7f
je 0x4544af
cmp cl, 0x81
je 0x4544af
xor ecx, ecx
jmp 0x4544b4
mov ecx, 1
xor eax, eax
test edx, edx
mov edx, dword [ebp - 4]
setns al
cmp edx, dword [ebp - 0x14]
jge 0x454bc6
mov dword [edi + 4], 0
cmp eax, ecx
jne 0x4544ed
sub esi, dword [ebp - 0x50]
inc edx
mov ecx, dword [ebp - 8]
add esi, 3
mov eax, 0xc
mov dword [edi], esi
mov dword [ebp - 4], edx
add edi, eax
jmp 0x45390f
mov eax, dword [ebp - 0x20]
inc edx
mov ecx, dword [ebp - 8]
add eax, 3
add eax, dword [ebp - 0x18]
mov dword [edi], eax
mov eax, 0xc
mov dword [ebp - 4], edx
add edi, eax
jmp 0x45390f
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 4], eax
jge 0x454bc6
mov eax, dword [ebp - 0x18]
add eax, 3
add eax, edx
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 8]
inc edx
mov dword [edi], eax
mov eax, 0xc
mov dword [edi + 4], 0
add edi, eax
mov dword [ebp - 4], edx
jmp 0x45390f
mov eax, dword [ebp - 0x30]
movzx edx, byte [esi + 1]
mov dword [ebp - 0x28], eax
movzx eax, byte [esi + 2]
shl edx, 8
or edx, eax
mov eax, dword [ebp + 8]
add edx, dword [ebp - 0x50]
mov dword [ebp - 0x58], edx
cmp edx, dword [eax + 0xc]
jne 0x454563
xor esi, esi
jmp 0x454570
movzx esi, byte [edx + 3]
movzx eax, byte [edx + 4]
shl esi, 8
or esi, eax
mov eax, dword [ebp - 0x30]
mov ebx, eax
mov ecx, eax
cmp dword [ebx + 8], 0x7d0
jae 0x4545a7
push dword [ebp + 8]
lea eax, [ebp - 0x28]
push 0x3e8
push eax
call fcn.00455520
add esp, 0xc
test eax, eax
jne 0x454c59
mov eax, dword [ebp - 0x28]
mov ecx, eax
mov edx, dword [ebp - 0x58]
mov dword [ebp - 0x30], eax
mov eax, dword [eax + 4]
mov ecx, dword [ecx + 8]
sub eax, ecx
mov ebx, dword [ebp - 0x30]
lea eax, [ebx + eax*4]
mov dword [ebp - 0x28], eax
lea eax, [ecx - 0x7d0]
mov ecx, ebx
mov ebx, dword [ebp - 0x3c]
mov dword [ecx + 8], eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x64]
test ecx, ecx
je 0x4545f2
cmp esi, dword [ecx + 0xc]
jne 0x4545ec
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ecx + 4]
jne 0x4545ec
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x1c]
cmp eax, dword [ecx + 8]
je 0x454bae
mov ecx, dword [ecx]
test ecx, ecx
jne 0x4545d0
push dword [ebp - 0x30]
mov eax, dword [ebp - 0x1c]
push dword [ebp - 0x84]
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x104], esi
mov esi, dword [ebp + 8]
mov dword [ebp - 0x10c], eax
push 0x3e8
mov eax, dword [esi + 0x1c]
mov dword [ebp - 0x108], eax
mov eax, dword [esi + 0x64]
mov dword [ebp - 0x110], eax
lea eax, [ebp - 0x110]
mov dword [esi + 0x64], eax
lea eax, [ecx + 0xfa0]
push eax
push 0x3e8
push ecx
mov ecx, dword [ebp - 0x1c]
mov eax, ecx
sub eax, dword [ebp - 0x4c]
push eax
push ecx
push edx
push esi
call fcn.00450560
mov ecx, dword [ebp - 0x30]
add esp, 0x28
add dword [ecx + 8], 0x7d0
mov ecx, dword [ebp - 0x110]
mov dword [esi + 0x64], ecx
test eax, eax
je 0x454bba
jle 0x454728
lea esi, [eax*2 - 2]
mov dword [ebp - 0x20], esi
test esi, esi
js case.default.0x453723
mov ecx, dword [ebp - 0x28]
mov eax, dword [ecx + esi*4 + 4]
mov edx, eax
mov ecx, dword [ecx + esi*4]
sub edx, ecx
cmp dword [ebp - 0x38], 0
je 0x4546b4
mov esi, dword [ebp - 0x4c]
add ecx, esi
add esi, eax
cmp ecx, esi
jae 0x4546b1
mov al, byte [ecx]
inc ecx
and al, 0xc0
cmp al, 0x80
jne 0x4546ad
dec edx
cmp ecx, esi
jb 0x4546a3
mov esi, dword [ebp - 0x20]
test edx, edx
je 0x4546f0
mov ecx, dword [ebp - 0xc]
mov eax, ecx
inc ecx
mov dword [ebp - 0xc], ecx
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0xa0]
sub eax, dword [ebp - 0x18]
mov dword [ecx], eax
lea eax, [edx - 1]
mov edx, dword [ebp - 4]
mov dword [ecx + 4], 0
mov dword [ecx + 8], eax
add ecx, 0xc
mov dword [ebp - 8], ecx
jmp 0x454717
mov edx, dword [ebp - 4]
mov eax, edx
inc edx
mov dword [ebp - 4], edx
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 8]
add eax, 3
mov dword [edi], eax
mov dword [edi + 4], 0
add edi, 0xc
sub esi, 2
mov dword [ebp - 0x20], esi
jns 0x454684
jmp 0x45390f
cmp eax, 0xffffffff
jne 0x454c59
jmp case.default.0x453723
mov edx, dword [ebp - 0x30]
mov ecx, edx
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x20], eax
mov eax, edx
mov dword [ebp - 0x28], edx
cmp dword [edx + 8], 0x3ea
jae 0x454772
push dword [ebp + 8]
lea eax, [ebp - 0x28]
push 2
push eax
call fcn.00455520
add esp, 0xc
test eax, eax
jne 0x454c59
mov edx, dword [ebp - 0x28]
mov ecx, edx
mov dword [ebp - 0x30], edx
mov eax, ecx
mov ecx, dword [ecx + 8]
mov eax, dword [eax + 4]
mov ebx, dword [ebp - 0x3c]
sub eax, ecx
cmp dword [ebp - 0x10], 0x99
lea edx, [edx + eax*4]
lea eax, [ecx - 0x3ea]
mov dword [ebp - 0x58], edx
mov ecx, dword [ebp - 0x30]
mov dword [ecx + 8], eax
jne 0x454799
inc esi
push dword [ebp - 0x30]
mov eax, dword [ebp - 0x1c]
lea ecx, [edx + 8]
push dword [ebp - 0x84]
sub eax, dword [ebp - 0x4c]
push 0x3e8
push ecx
push 2
push edx
push eax
push dword [ebp - 0x1c]
mov dword [ebp - 0x34], 0
push esi
push dword [ebp + 8]
mov dword [ebp - 0x78], eax
call fcn.00450560
add esp, 0x28
test eax, eax
js 0x454810
mov edx, dword [ebp - 0x58]
mov eax, dword [edx + 4]
sub eax, dword [edx]
je 0x454819
push dword [ebp - 0x30]
mov ecx, dword [ebp - 0x20]
push dword [ebp - 0x84]
inc dword [ebp - 0x34]
add ecx, eax
push 0x3e8
lea eax, [edx + 8]
mov dword [ebp - 0x20], ecx
push eax
push 2
push edx
push dword [ebp - 0x78]
push ecx
push esi
push dword [ebp + 8]
call fcn.00450560
add esp, 0x28
test eax, eax
jns 0x4547d2
cmp eax, 0xffffffff
jne 0x454c59
mov eax, dword [ebp - 0x30]
add dword [eax + 8], 0x3ea
cmp dword [ebp - 0x34], 0
ja 0x454840
cmp dword [ebp - 0x10], 0x99
jne case.default.0x453723
nop word [eax + eax]
movzx ecx, byte [esi + 1]
movzx eax, byte [esi + 2]
shl ecx, 8
or ecx, eax
add esi, ecx
cmp byte [esi], 0x78
je 0x454840
sub esi, dword [ebp - 0x50]
mov eax, dword [ebp - 0x6c]
add esi, 3
mov edx, dword [ebp - 4]
inc eax
mov dword [ebp - 0x34], esi
cmp eax, edx
jl 0x4548a3
cmp dword [ebp - 0xc], 0
jne 0x4548a3
cmp dword [ebp - 0x14], 0
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x24], 0
mov dword [ebp - 0xc], 1
jle 0x454bc6
mov ecx, dword [ebp - 8]
mov dword [ecx], esi
mov dword [ecx + 4], 0
add ecx, 0xc
mov dword [ebp - 8], ecx
jmp 0x45390f
mov eax, dword [ebp - 0x20]
mov ecx, eax
mov edx, dword [ebp - 0x1c]
sub ecx, edx
cmp dword [ebp - 0x38], 0
mov dword [ebp - 0x2c], ecx
je 0x4548e0
cmp edx, eax
jae 0x4548e0
mov ebx, eax
mov esi, ecx
nop
mov cl, byte [edx]
lea eax, [esi - 1]
and cl, 0xc0
inc edx
cmp cl, 0x80
cmovne eax, esi
mov esi, eax
cmp edx, ebx
jb 0x4548c0
mov ebx, dword [ebp - 0x3c]
mov ecx, eax
mov dword [ebp - 0x2c], esi
mov esi, dword [ebp - 0x34]
mov edx, dword [ebp - 0xc]
mov eax, edx
inc edx
mov dword [ebp - 0xc], edx
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
mov eax, dword [ebp - 8]
neg esi
mov dword [eax], esi
mov dword [eax + 4], 0
lea eax, [ecx - 1]
mov ecx, dword [ebp - 8]
mov dword [ecx + 8], eax
add ecx, 0xc
mov dword [ebp - 8], ecx
jmp 0x45390c
mov ecx, dword [ebp - 0x30]
mov edx, ecx
mov dword [ebp - 0x28], ecx
mov eax, ecx
cmp dword [ecx + 8], 0x3ea
jae 0x454948
push dword [ebp + 8]
lea eax, [ebp - 0x28]
push 2
push eax
call fcn.00455520
add esp, 0xc
test eax, eax
jne 0x454c59
mov eax, dword [ebp - 0x28]
mov edx, eax
mov dword [ebp - 0x30], eax
mov eax, dword [eax + 4]
mov ecx, dword [edx + 8]
sub eax, ecx
mov ebx, dword [ebp - 0x30]
push ebx
push dword [ebp - 0x84]
lea eax, [ebx + eax*4]
mov dword [ebp - 0x28], eax
lea eax, [ecx - 0x3ea]
mov ecx, dword [ebp - 0x28]
push 0x3e8
mov dword [edx + 8], eax
lea eax, [ecx + 8]
push eax
push 2
push ecx
mov ecx, dword [ebp - 0x1c]
mov eax, ecx
sub eax, dword [ebp - 0x4c]
push eax
push ecx
push esi
push dword [ebp + 8]
call fcn.00450560
mov ecx, ebx
add esp, 0x28
mov ebx, dword [ebp - 0x3c]
add dword [ecx + 8], 0x3ea
test eax, eax
js 0x454728
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax + 4]
mov edx, ecx
mov eax, dword [eax]
sub edx, eax
mov dword [ebp - 0x78], ecx
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x20], edx
nop word [eax + eax]
movzx ecx, byte [esi + 1]
movzx eax, byte [esi + 2]
shl ecx, 8
or ecx, eax
mov al, byte [esi + ecx]
add esi, ecx
cmp al, 0x78
je 0x4549c0
mov ecx, esi
sub ecx, dword [ebp - 0x50]
add ecx, 3
mov dword [ebp - 0x2c], ecx
cmp al, 0x7a
je 0x4549ee
cmp al, 0x7b
je 0x4549ee
or esi, 0xffffffff
jmp 0x454a03
movzx ecx, byte [esi + 1]
movzx eax, byte [esi + 2]
shl ecx, 8
or ecx, eax
sub esi, ecx
mov ecx, dword [ebp - 0x2c]
sub esi, dword [ebp - 0x50]
mov dword [ebp - 0x34], esi
test edx, edx
jne 0x454a30
mov edx, dword [ebp - 4]
mov eax, edx
inc edx
mov dword [ebp - 4], edx
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
mov dword [edi], ecx
mov ecx, dword [ebp - 8]
mov dword [edi + 4], 0
add edi, 0xc
jmp 0x45390f
mov eax, dword [ebp - 0x6c]
inc eax
cmp eax, dword [ebp - 4]
jl 0x454a9a
cmp dword [ebp - 0xc], 0
jne 0x454a9a
add dword [ebp - 0x1c], edx
cmp dword [ebp - 0x14], 0
mov dword [ebp - 0x24], 0
mov dword [ebp - 0xc], 1
jle 0x454bc6
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x2c]
mov dword [ecx], eax
mov dword [ecx + 4], 0
add ecx, 0xc
mov dword [ebp - 8], ecx
test esi, esi
js 0x45390c
mov eax, dword [ebp - 0x70]
mov edx, 1
mov dword [ebp - 0x6c], 0xffffffff
mov dword [ebp - 4], edx
mov dword [eax], esi
lea edi, [eax + 0xc]
mov dword [eax + 4], 0
jmp 0x45390f
cmp dword [ebp - 0x38], 0
je 0x454ad9
mov edx, dword [ebp - 0x58]
mov eax, dword [ebp - 0x78]
add eax, dword [ebp - 0x4c]
add edx, dword [ebp - 0x4c]
mov dword [ebp - 0x58], eax
cmp edx, eax
jae 0x454ad6
mov ebx, dword [ebp - 0x20]
mov esi, eax
mov cl, byte [edx]
lea eax, [ebx - 1]
and cl, 0xc0
inc edx
cmp cl, 0x80
cmovne eax, ebx
mov ebx, eax
cmp edx, esi
jb 0x454ab8
mov esi, dword [ebp - 0x34]
mov dword [ebp - 0x20], ebx
mov ebx, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0xc]
mov eax, ecx
inc ecx
mov dword [ebp - 0xc], ecx
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
mov ecx, dword [ebp - 8]
dec edx
mov eax, dword [ebp - 0x2c]
neg eax
mov dword [ecx], eax
mov dword [ecx + 4], 0
mov dword [ecx + 8], edx
add ecx, 0xc
mov dword [ebp - 8], ecx
test esi, esi
js 0x45390c
mov eax, dword [ebp - 0xc]
inc dword [ebp - 0xc]
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
neg esi
mov dword [ecx + 8], edx
mov dword [ecx], esi
mov dword [ecx + 4], 0
add ecx, 0xc
mov dword [ebp - 8], ecx
jmp 0x45390c
lea eax, [ebp - 0x100]
push eax
push 0
push dword [ebp + 8]
push dword [ebp - 0x1c]
push dword [ebp - 0x60]
push dword [ebp + 0x18]
push esi
call fcn.00450480
add esp, 0x1c
test eax, eax
js 0x454c59
mov edx, dword [ebp - 4]
jne case.default.0x453316
mov eax, edx
inc edx
mov dword [ebp - 4], edx
cmp eax, dword [ebp - 0x14]
jge 0x454bc6
mov eax, dword [ebp - 0x100]
add eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 8]
mov dword [edi], eax
mov dword [edi + 4], 0
add edi, 0xc
jmp 0x45390f
pop edi
pop ebx
mov eax, 0xfffffffe
pop esi
mov esp, ebp
pop ebp
ret
pop edi
pop ebx
mov eax, ecx
pop esi
mov esp, ebp
pop ebp
ret
pop edi
pop ebx
mov eax, 0xffffffd8
pop esi
mov esp, ebp
pop ebp
ret
pop edi
pop ebx
mov eax, 0xffffffcc
pop esi
mov esp, ebp
pop ebp
ret
pop edi
pop ebx
mov eax, 0xffffffd9
pop esi
mov esp, ebp
pop ebp
ret
pop edi
pop ebx
mov eax, 0xffffffd5
pop esi
mov esp, ebp
pop ebp
ret
pop edi
pop ebx
xor eax, eax
pop esi
mov esp, ebp
pop ebp
ret
pop edi
pop ebx
mov eax, 0xffffffd6
pop esi
mov esp, ebp
pop ebp
ret
cmp dword [ebp - 0x54], 0
mov edx, dword [ebp - 0x64]
je 0x454c37
mov ecx, dword [ebp + 0x20]
mov eax, dword [ebp - 0x98]
cmp eax, dword [ecx + 4]
mov ecx, dword [ebp + 8]
je 0x454c3a
mov eax, dword [ecx + 0x3c]
test al, 0x20
jne 0x454c10
test al, 0x10
je 0x454c3a
test edx, edx
jns 0x454c3e
cmp dword [ebp - 0x74], 0
jne 0x454c29
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x48]
jb 0x454c3a
cmp eax, dword [ecx + 0x18]
ja 0x454c29
cmp dword [ecx + 0x4c], 0
je 0x454c3a
pop edi
mov edx, 0xfffffffe
pop ebx
mov eax, edx
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 8]
test edx, edx
js 0x454c57
mov eax, dword [ecx + 0x3c]
or eax, dword [ecx + 0x40]
test eax, 0x20000000
je 0x454c57
mov eax, dword [ebp - 0x48]
or ecx, 0xffffffff
cmp dword [ebp - 0x1c], eax
cmovb edx, ecx
mov eax, edx
pop edi
pop ebx
pop esi
mov esp, ebp
pop ebp
ret