Function at 0x470da0
Capabilities:
Enumerate pe sections
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x124
push ebx
push ebp
mov ebp, dword [esp + 0x144]
mov eax, dword [ebp]
push esi
push edi
cmp eax, dword [ebp + 4]
jae 0x4735e0
mov edi, dword [esp + 0x138]
mov ecx, dword [esp + 0x15c]
inc dword [ebp]
cmp ecx, dword [ebp + 8]
jae 0x4735f3
test byte [esp + 0x158], 2
mov edx, dword [esp + 0x150]
mov dword [esp + 0x2c], edx
je 0x470e06
mov eax, dword [esp + 0x154]
lea ecx, [esp + 0x48]
mov dword [esp + 0x4c], edi
mov dword [esp + 0x48], eax
mov dword [esp + 0x154], ecx
mov ebx, dword [esp + 0x13c]
mov cl, byte [ebx]
movzx eax, cl
xor edx, edx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x24], edx
mov dword [esp + 0x18], eax
cmp eax, 0x76
ja case.0x470e30.15
movzx eax, byte [eax + 0x4748b8]
jmp dword [eax*4 + 0x47478c]
movzx esi, byte [ebx + 1]
movzx ecx, byte [ebx + 2]
shl esi, 8
or esi, ecx
cmp byte [ebx + 3], 0x53
jne 0x470f1d
mov ecx, dword [0x4a2bb4]
test ecx, ecx
je 0x470f1a
movzx edx, byte [ebx + 4]
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x8c], eax
mov eax, dword [ebp + 0x60]
mov dword [esp + 0x88], edx
mov edx, dword [ebp + 0x64]
sub edx, eax
mov dword [esp + 0x94], edx
mov edx, dword [esp + 0x140]
sub edx, eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x98], edx
mov edx, edi
sub edx, eax
movzx eax, byte [ebx + 5]
shl eax, 8
mov dword [esp + 0x9c], edx
movzx edx, byte [ebx + 6]
or eax, edx
movzx edx, byte [ebx + 8]
mov dword [esp + 0xac], eax
movzx eax, byte [ebx + 7]
shl eax, 8
or eax, edx
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x148]
cdq
sub eax, edx
mov edx, dword [ebp + 0x90]
sar eax, 1
mov dword [esp + 0xa0], eax
mov eax, dword [ebp + 0x7c]
mov dword [esp + 0xa4], eax
lea eax, [esp + 0x84]
push eax
mov dword [esp + 0x88], 1
mov dword [esp + 0xac], edx
call ecx
add esp, 4
test eax, eax
jg case.0x470e30.115
js 0x474781
add ebx, 0xa
movzx ecx, byte [ebx + 3]
lea eax, [ebx + 3]
cmp ecx, 0x66
je 0x47115a
cmp ecx, 0x67
je 0x47115a
cmp ecx, 0x64
je 0x470fb0
cmp ecx, 0x65
je 0x470fb0
cmp ecx, 0x68
jne 0x470f59
movzx ecx, byte [ebx + 1]
movzx edx, byte [ebx + 2]
shl ecx, 8
or ecx, edx
add ebx, ecx
jmp 0x4712e8
mov ecx, dword [esp + 0x15c]
mov edx, dword [esp + 0x150]
inc ecx
push ecx
mov ecx, dword [esp + 0x14c]
push 1
push 0
push edx
mov edx, dword [esp + 0x154]
push ebp
push ecx
mov ecx, dword [esp + 0x158]
push edx
push ecx
push eax
push edi
call fcn.00470da0
add esp, 0x28
cmp eax, 1
je 0x4732f8
test eax, eax
je 0x470fa9
cmp eax, 0xfffffc1e
jne 0x474781
add ebx, esi
jmp 0x4712e8
movzx eax, byte [ebx + 4]
movzx edx, byte [ebx + 5]
shl eax, 8
or eax, edx
add eax, eax
cmp eax, dword [esp + 0x148]
jge 0x470fd5
mov edx, dword [ebp + 0xc]
cmp dword [edx + eax*4], 0
jge 0x471148
mov dword [esp + 0x20], 0
cmp ecx, 0x65
jne 0x4712ce
mov ecx, dword [ebp + 0x28]
sar eax, 1
cmp dword [ebp + 0x20], 0
mov edx, ecx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], 0
jle 0x471029
nop
movzx esi, byte [edx]
movzx edx, byte [edx + 1]
shl esi, 8
or esi, edx
mov edx, dword [esp + 0x1c]
cmp esi, eax
je 0x471029
mov esi, dword [esp + 0x14]
add edx, dword [ebp + 0x24]
inc esi
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], esi
cmp esi, dword [ebp + 0x20]
jl 0x471000
mov eax, dword [esp + 0x14]
cmp eax, dword [ebp + 0x20]
jge 0x4712ce
cmp edx, ecx
jbe 0x4710aa
lea ebx, [ebx]
sub edx, dword [ebp + 0x24]
mov eax, dword [esp + 0x1c]
lea esi, [edx + 2]
add eax, 2
lea ecx, [ecx]
mov cl, byte [eax]
cmp cl, byte [esi]
jne 0x471070
test cl, cl
je 0x47106c
mov cl, byte [eax + 1]
cmp cl, byte [esi + 1]
jne 0x471070
add eax, 2
add esi, 2
test cl, cl
jne 0x471050
xor eax, eax
jmp 0x471075
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4710aa
movzx eax, byte [edx]
movzx ecx, byte [edx + 1]
shl eax, 8
or eax, ecx
add eax, eax
cmp eax, dword [esp + 0x148]
jge 0x47109d
mov ecx, dword [ebp + 0xc]
cmp dword [ecx + eax*4], 0
jge 0x471148
mov dword [esp + 0x20], 0
cmp edx, dword [ebp + 0x28]
ja 0x471040
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
inc eax
mov edx, ecx
mov dword [esp + 0x14], eax
cmp eax, dword [ebp + 0x20]
jge 0x4712ce
add ecx, 2
mov dword [esp + 0x28], ecx
lea esp, [esp]
add edx, dword [ebp + 0x24]
mov eax, dword [esp + 0x28]
lea esi, [edx + 2]
lea ebx, [ebx]
mov cl, byte [eax]
cmp cl, byte [esi]
jne 0x471100
test cl, cl
je 0x4710fc
mov cl, byte [eax + 1]
cmp cl, byte [esi + 1]
jne 0x471100
add eax, 2
add esi, 2
test cl, cl
jne 0x4710e0
xor eax, eax
jmp 0x471105
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4712ce
movzx eax, byte [edx]
movzx ecx, byte [edx + 1]
shl eax, 8
or eax, ecx
add eax, eax
cmp eax, dword [esp + 0x148]
jge 0x47112d
mov ecx, dword [ebp + 0xc]
cmp dword [ecx + eax*4], 0
jge 0x471148
mov eax, dword [esp + 0x14]
inc eax
mov dword [esp + 0x20], 0
mov dword [esp + 0x14], eax
cmp eax, dword [ebp + 0x20]
jl 0x4710d0
jmp 0x4712ce
mov dword [esp + 0x20], 1
mov eax, 3
jmp 0x4712db
mov edx, dword [ebp + 0x8c]
test edx, edx
jne 0x471178
movzx eax, byte [ebx + 1]
movzx ecx, byte [ebx + 2]
shl eax, 8
or eax, ecx
add ebx, eax
jmp 0x4712e8
movzx eax, byte [ebx + 4]
movzx esi, byte [ebx + 5]
shl eax, 8
or eax, esi
cmp eax, 0xffff
je 0x471148
mov edx, dword [edx + 0x14]
mov dword [esp + 0x28], edx
cmp eax, edx
je 0x471148
xor esi, esi
mov dword [esp + 0x20], esi
cmp ecx, 0x67
jne 0x4712ce
mov edx, dword [ebp + 0x28]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], esi
cmp dword [ebp + 0x20], esi
jle 0x4711db
movzx ecx, byte [edx]
movzx esi, byte [edx + 1]
shl ecx, 8
or ecx, esi
cmp ecx, eax
je 0x4711d7
mov ecx, dword [esp + 0x14]
add edx, dword [ebp + 0x24]
inc ecx
mov dword [esp + 0x14], ecx
cmp ecx, dword [ebp + 0x20]
jl 0x4711b6
mov dword [esp + 0x1c], edx
mov eax, dword [esp + 0x14]
cmp eax, dword [ebp + 0x20]
jge 0x4712ce
cmp edx, dword [ebp + 0x28]
jbe 0x47124f
sub edx, dword [ebp + 0x24]
mov eax, dword [esp + 0x1c]
lea esi, [edx + 2]
add eax, 2
lea ebx, [ebx]
mov cl, byte [eax]
cmp cl, byte [esi]
jne 0x471220
test cl, cl
je 0x47121c
mov cl, byte [eax + 1]
cmp cl, byte [esi + 1]
jne 0x471220
add eax, 2
add esi, 2
test cl, cl
jne 0x471200
xor eax, eax
jmp 0x471225
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x47124f
movzx ecx, byte [edx]
movzx eax, byte [edx + 1]
shl ecx, 8
or ecx, eax
xor eax, eax
cmp ecx, dword [esp + 0x28]
sete al
mov dword [esp + 0x20], eax
test eax, eax
jne 0x471150
cmp edx, dword [ebp + 0x28]
ja 0x4711ed
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
inc eax
mov dword [esp + 0x14], eax
cmp eax, dword [ebp + 0x20]
jge 0x4712ce
mov ecx, edx
add ecx, 2
mov dword [esp + 0x1c], ecx
add edx, dword [ebp + 0x24]
mov eax, dword [esp + 0x1c]
lea esi, [edx + 2]
mov cl, byte [eax]
cmp cl, byte [esi]
jne 0x471294
test cl, cl
je 0x471290
mov cl, byte [eax + 1]
cmp cl, byte [esi + 1]
jne 0x471294
add eax, 2
add esi, 2
test cl, cl
jne 0x471274
xor eax, eax
jmp 0x471299
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4712ce
movzx ecx, byte [edx]
movzx eax, byte [edx + 1]
shl ecx, 8
or eax, ecx
xor ecx, ecx
cmp eax, dword [esp + 0x28]
sete cl
mov eax, ecx
mov dword [esp + 0x20], eax
test eax, eax
jne 0x471150
mov eax, dword [esp + 0x14]
inc eax
mov dword [esp + 0x14], eax
cmp eax, dword [ebp + 0x20]
jl 0x47126a
movzx eax, byte [ebx + 1]
movzx edx, byte [ebx + 2]
shl eax, 8
or eax, edx
add ebx, eax
cmp dword [esp + 0x20], 0
jne 0x473324
cmp byte [ebx], 0x54
je 0x473324
add ebx, 3
mov dword [esp + 0x13c], ebx
jmp 0x470e06
movzx eax, byte [ebx + 1]
movzx ecx, byte [ebx + 2]
shl eax, 8
or eax, ecx
lea ecx, [eax + eax]
mov dword [ebp + 0x7c], eax
cmp ecx, dword [ebp + 0x14]
jl 0x47132e
add ebx, 3
mov dword [ebp + 0x38], 1
mov dword [esp + 0x13c], ebx
jmp 0x470e06
mov esi, dword [ebp + 0x10]
mov edx, dword [ebp + 0xc]
sub esi, eax
mov eax, dword [edx + esi*4]
mov dword [edx + ecx*4], eax
mov eax, dword [ebp + 0xc]
mov edx, edi
sub edx, dword [ebp + 0x60]
mov dword [eax + ecx*4 + 4], edx
cmp dword [esp + 0x148], ecx
jg 0x47135b
add ecx, 2
mov dword [esp + 0x148], ecx
add ebx, 3
mov dword [esp + 0x13c], ebx
jmp 0x470e06
mov ebx, dword [ebp + 0x8c]
test ebx, ebx
je 0x473b99
cmp dword [ebx + 0x14], edx
jne 0x473b99
mov ecx, dword [ebx]
mov dword [ebp + 0x8c], ecx
mov edx, dword [ebx + 0xc]
mov eax, dword [ebx + 8]
mov ecx, dword [ebp + 0xc]
add edx, edx
add edx, edx
push edx
push eax
push ecx
call fcn.004777f0
mov edx, dword [ebx + 0x10]
mov eax, dword [esp + 0x38]
mov ecx, dword [ebx + 4]
add esp, 0xc
mov dword [esp + 0x148], edx
mov dword [esp + 0x150], eax
mov dword [esp + 0x13c], ecx
jmp 0x470e06
movzx edx, byte [ebx + 1]
add ebx, 2
mov dword [esp + 0x150], edx
mov dword [esp + 0x13c], ebx
jmp 0x470e06
mov esi, dword [esp + 0x15c]
inc esi
jmp 0x4713f0
mov eax, dword [esp + 0x150]
mov ecx, dword [esp + 0x148]
mov edx, dword [esp + 0x144]
push esi
push 0
push 0
push eax
mov eax, dword [esp + 0x150]
push ebp
push ecx
push edx
push eax
lea ecx, [ebx + 3]
push ecx
push edi
call fcn.00470da0
add esp, 0x28
cmp eax, 1
je 0x471454
cmp eax, 0xfffffc19
je 0x471454
test eax, eax
je 0x47143e
cmp eax, 0xfffffc1e
jne 0x474781
movzx edx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl edx, 8
or edx, eax
add ebx, edx
cmp byte [ebx], 0x54
je 0x4713f0
jmp 0x47145e
mov ecx, dword [ebp + 0x68]
mov dword [esp + 0x140], ecx
cmp byte [ebx], 0x55
je case.0x470e30.115
test byte [esp + 0x158], 1
jne 0x473e03
movzx edx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl edx, 8
or edx, eax
add ebx, edx
cmp byte [ebx], 0x54
je 0x471475
mov ecx, dword [ebp + 0x78]
add ebx, 3
mov dword [esp + 0x13c], ebx
mov dword [esp + 0x148], ecx
jmp 0x470e06
mov esi, dword [esp + 0x15c]
inc esi
lea ebx, [ebx]
mov edx, dword [esp + 0x150]
mov eax, dword [esp + 0x148]
mov ecx, dword [esp + 0x144]
push esi
push 0
push 0
push edx
mov edx, dword [esp + 0x150]
push ebp
push eax
push ecx
push edx
lea eax, [ebx + 3]
push eax
push edi
call fcn.00470da0
add esp, 0x28
cmp eax, 1
je case.0x472c96.14
cmp eax, 0xfffffc19
je case.0x472c96.14
cmp eax, 0xfffffc1c
je 0x471531
cmp eax, 0xfffffc1b
je 0x471531
cmp eax, 0xfffffc1a
je 0x471531
test eax, eax
je 0x47151b
cmp eax, 0xfffffc1e
jne 0x474781
movzx ecx, byte [ebx + 1]
movzx edx, byte [ebx + 2]
shl ecx, 8
or ecx, edx
add ebx, ecx
cmp byte [ebx], 0x54
je 0x4714b0
jmp 0x471545
movzx eax, byte [ebx + 1]
movzx ecx, byte [ebx + 2]
shl eax, 8
or eax, ecx
add ebx, eax
cmp byte [ebx], 0x54
je 0x471531
test byte [esp + 0x158], 1
jne 0x473e03
add ebx, 3
mov dword [esp + 0x13c], ebx
jmp 0x470e06
movzx edx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl edx, 8
or edx, eax
sub edi, edx
cmp edi, dword [ebp + 0x60]
jb 0x473d93
cmp edi, dword [ebp + 0x70]
jae 0x471582
mov dword [ebp + 0x70], edi
add ebx, 3
mov dword [esp + 0x13c], ebx
jmp 0x470e06
mov ecx, dword [0x4a2bb4]
test ecx, ecx
je 0x471640
movzx edx, byte [ebx + 1]
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x58], eax
mov eax, dword [ebp + 0x60]
mov dword [esp + 0x54], edx
mov edx, dword [ebp + 0x64]
sub edx, eax
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x140]
sub edx, eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x64], edx
mov edx, edi
sub edx, eax
movzx eax, byte [ebx + 6]
shl eax, 8
mov dword [esp + 0x68], edx
movzx edx, byte [ebx + 7]
or eax, edx
movzx edx, byte [ebx + 9]
mov dword [esp + 0x78], eax
movzx eax, byte [ebx + 8]
shl eax, 8
or eax, edx
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x148]
cdq
sub eax, edx
mov edx, dword [ebp + 0x90]
sar eax, 1
mov dword [esp + 0x6c], eax
mov eax, dword [ebp + 0x7c]
mov dword [esp + 0x74], edx
mov dword [esp + 0x70], eax
mov eax, dword [ebx + 2]
lea edx, [esp + 0x50]
push edx
mov dword [esp + 0x54], 1
mov dword [esp + 0x84], eax
call ecx
add esp, 4
test eax, eax
jg case.0x470e30.115
js 0x474781
add ebx, 0xa
mov dword [esp + 0x13c], ebx
jmp 0x470e06
mov esi, dword [esp + 0x140]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x1c], edi
mov edi, edi
mov eax, dword [esp + 0x15c]
mov ecx, dword [esp + 0x150]
mov edx, dword [esp + 0x148]
inc eax
push eax
mov eax, dword [esp + 0x158]
push 0
push eax
mov eax, dword [esp + 0x150]
push ecx
push ebp
push edx
push eax
push esi
lea ecx, [ebx + 3]
push ecx
push edi
call fcn.00470da0
add esp, 0x28
cmp eax, 1
je 0x4716c4
test eax, eax
je 0x4716ae
cmp eax, 0xfffffc1e
jne 0x474781
movzx edx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl edx, 8
or edx, eax
add ebx, edx
cmp byte [ebx], 0x54
je 0x471660
jmp 0x4716ce
mov esi, dword [ebp + 0x68]
mov dword [esp + 0x140], esi
mov al, byte [ebx]
cmp al, 0x5d
je 0x4716e0
cmp al, 0x54
jne 0x473ae1
lea esp, [esp]
movzx ecx, byte [ebx + 1]
movzx edx, byte [ebx + 2]
shl ecx, 8
or ecx, edx
add ebx, ecx
cmp byte [ebx], 0x54
je 0x4716e0
cmp byte [ebx], 0x55
mov eax, dword [ebp + 0x78]
mov edi, dword [ebp + 0x6c]
mov dword [esp + 0x148], eax
je 0x471710
cmp edi, dword [esp + 0x1c]
jne 0x47343b
add ebx, 3
mov dword [esp + 0x13c], ebx
jmp 0x470e06
movzx eax, byte [ebx + 1]
movzx ecx, byte [ebx + 2]
shl eax, 8
or eax, ecx
add ebx, eax
cmp byte [ebx], 0x54
je case.0x470e30.84
mov dword [esp + 0x13c], ebx
jmp 0x470e06
mov edx, dword [esp + 0x15c]
mov eax, dword [esp + 0x154]
mov ecx, dword [esp + 0x150]
inc edx
push edx
mov edx, dword [esp + 0x14c]
push 0
push eax
mov eax, dword [esp + 0x150]
push ecx
mov ecx, dword [esp + 0x150]
push ebp
push edx
push eax
push ecx
inc ebx
push ebx
push edi
call fcn.00470da0
add esp, 0x28
test eax, eax
jne 0x474781
jmp 0x471790
movzx edx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl edx, 8
or edx, eax
add ebx, edx
cmp byte [ebx], 0x54
je 0x471790
add ebx, 3
mov dword [esp + 0x13c], ebx
jmp 0x470e06
inc ebx
mov eax, ebx
jmp 0x4717c0
movzx ecx, byte [eax + 1]
movzx edx, byte [eax + 2]
shl ecx, 8
or ecx, edx
add eax, ecx
cmp byte [eax], 0x54
je 0x4717c0
mov ecx, dword [esp + 0x15c]
mov edx, dword [esp + 0x154]
inc ecx
push ecx
mov ecx, dword [esp + 0x154]
push 0
push edx
mov edx, dword [esp + 0x154]
push ecx
mov ecx, dword [esp + 0x154]
push ebp
push edx
mov edx, dword [esp + 0x158]
push ecx
push edx
add eax, 3
push eax
push edi
call fcn.00470da0
add esp, 0x28
test eax, eax
jne 0x474781
mov dword [esp + 0x13c], ebx
jmp 0x470e06
inc ebx
lea ebx, [ebx]
movzx eax, byte [ebx + 1]
movzx ecx, byte [ebx + 2]
shl eax, 8
or eax, ecx
add ebx, eax
cmp byte [ebx], 0x54
je 0x471830
add ebx, 3
mov dword [esp + 0x13c], ebx
jmp 0x470e06
movzx edx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl edx, 8
or edx, eax
mov ecx, ebx
sub ecx, edx
mov al, byte [ecx]
mov dword [esp + 0x20], ecx
cmp al, 0x61
jb 0x471887
mov edx, dword [esp + 0x154]
mov esi, dword [edx + 4]
mov edx, dword [edx]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x154], edx
jmp 0x47188f
mov dword [esp + 0x1c], 0
cmp al, 0x58
je 0x473e58
cmp al, 0x59
je 0x473e58
cmp al, 0x5a
je 0x473e58
cmp al, 0x5b
je 0x473e58
cmp al, 0x5d
je 0x473e58
cmp al, 0x5f
je 0x4718c3
cmp al, 0x62
jne 0x471964
movzx eax, byte [ecx + 3]
movzx ecx, byte [ecx + 4]
shl eax, 8
or eax, ecx
lea ecx, [eax + eax]
mov dword [ebp + 0x7c], eax
cmp ecx, dword [ebp + 0x14]
jl 0x4718e4
mov dword [ebp + 0x38], 1
jmp 0x471911
mov esi, dword [ebp + 0x10]
mov edx, dword [ebp + 0xc]
sub esi, eax
mov esi, dword [edx + esi*4]
mov dword [edx + ecx*4], esi
mov esi, dword [ebp + 0xc]
mov edx, edi
sub edx, dword [ebp + 0x60]
mov dword [esi + ecx*4 + 4], edx
cmp dword [esp + 0x148], ecx
jg 0x471911
add ecx, 2
mov dword [esp + 0x148], ecx
mov esi, dword [ebp + 0x8c]
test esi, esi
je 0x471964
cmp dword [esi + 0x14], eax
jne 0x471964
mov eax, dword [esi]
mov dword [ebp + 0x8c], eax
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
mov eax, dword [ebp + 0xc]
add ecx, ecx
add ecx, ecx
push ecx
push edx
push eax
call fcn.0047b470
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 4]
mov eax, dword [esp + 0x38]
add esp, 0xc
mov dword [esp + 0x148], ecx
mov dword [esp + 0x13c], edx
mov dword [esp + 0x150], eax
jmp 0x470e06
cmp byte [ebx], 0x55
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x150], esi
je 0x47197e
cmp edi, dword [esp + 0x1c]
jne 0x47350a
add ebx, 3
mov dword [esp + 0x13c], ebx
jmp 0x470e06
cmp dword [ebp + 0x3c], edx
je 0x47199b
cmp edi, dword [ebp + 0x60]
je case.0x472c96.14
test byte [esp + 0x150], 2
je case.0x470e30.1
mov esi, dword [ebp + 0x60]
cmp edi, esi
je 0x471a15
cmp edi, dword [ebp + 0x64]
je 0x473d93
mov eax, dword [ebp + 0x18]
test eax, eax
je 0x4719e7
cmp edi, esi
jbe 0x473d93
lea edx, [ebp + 0x1c]
push eax
mov ecx, edi
call fcn.00475950
add esp, 4
test eax, eax
je 0x473d93
inc ebx
mov dword [esp + 0x13c], ebx
jmp 0x470e06
mov eax, dword [ebp + 0x1c]
lea ecx, [eax + esi]
cmp edi, ecx
jb 0x473d93
mov esi, edi
sub esi, eax
mov dl, byte [esi]
cmp dl, byte [ebp + 0x2c]
jne 0x473d93
cmp eax, 1
je 0x471a15
mov al, byte [esi + 1]
cmp al, byte [ebp + 0x2d]
jne 0x473d93
inc ebx
mov dword [esp + 0x13c], ebx
jmp 0x470e06
cmp edi, dword [ebp + 0x60]
jne case.0x470e30.115
inc ebx
mov dword [esp + 0x13c], ebx
jmp 0x470e06
mov ecx, dword [ebp + 0x80]
add ecx, dword [ebp + 0x60]
cmp edi, ecx
jne case.0x472c96.14
inc ebx
mov dword [esp + 0x13c], ebx
jmp 0x470e06
inc ebx
mov dword [esp + 0x140], edi
mov dword [esp + 0x13c], ebx
jmp 0x470e06
test byte [esp + 0x150], 2
je 0x471af2
mov edx, dword [ebp + 0x64]
cmp edi, edx
jae 0x471adb
mov eax, dword [ebp + 0x18]
test eax, eax
je 0x471aa5
lea esi, [ebp + 0x1c]
push eax
mov ecx, edi
call fcn.004758c0
add esp, 4
test eax, eax
je 0x473d93
inc ebx
mov dword [esp + 0x13c], ebx
jmp 0x470e06
mov eax, dword [ebp + 0x1c]
sub edx, eax
cmp edi, edx
ja 0x473d93
mov dl, byte [edi]
cmp dl, byte [ebp + 0x2c]
jne 0x473d93
cmp eax, 1
je 0x471ae5
mov al, byte [edi + 1]
cmp al, byte [ebp + 0x2d]
jne 0x473d93
inc ebx
mov dword [esp + 0x13c], ebx
jmp 0x470e06
cmp dword [ebp + 0x40], 0
jne case.0x470e30.115
inc ebx
mov dword [esp + 0x13c], ebx
jmp 0x470e06
cmp dword [ebp + 0x40], edx
jne case.0x472c96.14
cmp dword [ebp + 0x48], edx
jne case.0x470e30.24
mov edx, dword [ebp + 0x64]
cmp edi, edx
je 0x471b67
mov eax, dword [ebp + 0x18]
test eax, eax
je 0x471b2e
cmp edi, edx
jae 0x473d93
lea esi, [ebp + 0x1c]
push eax
mov ecx, edi
call fcn.004758c0
add esp, 4
test eax, eax
je 0x473d93
jmp 0x471b5a
mov eax, dword [ebp + 0x1c]
lea esi, [ebp + 0x1c]
sub edx, eax
cmp edi, edx
ja 0x473d93
mov cl, byte [edi]
cmp cl, byte [ebp + 0x2c]
jne 0x473d93
cmp eax, 1
je 0x471b5a
mov dl, byte [edi + 1]
cmp dl, byte [ebp + 0x2d]
jne 0x473d93
mov eax, dword [ebp + 0x64]
sub eax, dword [esi]
cmp edi, eax
jne 0x473d93
inc ebx
mov dword [esp + 0x13c], ebx
jmp 0x470e06
cmp edi, dword [ebp + 0x64]
jb case.0x470e30.115
inc ebx
mov dword [esp + 0x13c], ebx
jmp 0x470e06
mov edx, dword [ebp + 0x64]
cmp edi, edx
je 0x471bf1
mov eax, dword [ebp + 0x18]
test eax, eax
je 0x471bb8
cmp edi, edx
jae case.0x472c96.14
lea esi, [ebp + 0x1c]
push eax
mov ecx, edi
call fcn.004758c0
add esp, 4
test eax, eax
je case.0x472c96.14
jmp 0x471be4
mov eax, dword [ebp + 0x1c]
lea esi, [ebp + 0x1c]
sub edx, eax
cmp edi, edx
ja case.0x472c96.14
mov cl, byte [edi]
cmp cl, byte [ebp + 0x2c]
jne case.0x472c96.14
cmp eax, 1
je 0x471be4
mov dl, byte [edi + 1]
cmp dl, byte [ebp + 0x2d]
jne case.0x472c96.14
mov eax, dword [ebp + 0x64]
sub eax, dword [esi]
cmp edi, eax
jne case.0x472c96.14
inc ebx
mov dword [esp + 0x13c], ebx
jmp 0x470e06
cmp edi, dword [ebp + 0x60]
jne 0x471c07
xor esi, esi
jmp 0x471c23
cmp edi, dword [ebp + 0x70]
ja 0x471c12
lea ecx, [edi - 1]
mov dword [ebp + 0x70], ecx
movzx edx, byte [edi - 1]
mov eax, dword [ebp + 0x34]
movzx esi, byte [edx + eax]
shr esi, 4
and esi, 1
cmp edi, dword [ebp + 0x64]
jb 0x471c4c
mov eax, dword [ebp + 0x74]
test eax, eax
je 0x471c48
cmp edi, dword [esp + 0x140]
jbe 0x471c48
mov dword [ebp + 0x54], 1
cmp eax, 1
jg 0x473eb4
xor eax, eax
jmp 0x471c5c
movzx ecx, byte [edi]
mov edx, dword [ebp + 0x34]
movzx eax, byte [edx + ecx]
shr eax, 4
and eax, 1
mov cl, byte [ebx]
inc ebx
mov dword [esp + 0x13c], ebx
cmp cl, 5
jne 0x471c76
xor edx, edx
cmp eax, esi
sete dl
mov eax, edx
jmp 0x471c7f
xor ecx, ecx
cmp eax, esi
setne cl
mov eax, ecx
test eax, eax
je 0x470e06
mov eax, dword [esp + 0x144]
mov dword [ebp + 0x94], eax
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov eax, dword [ebp + 0x18]
mov edx, dword [ebp + 0x64]
test eax, eax
je 0x471cc7
cmp edi, edx
jae case.0x470e30.13
lea esi, [ebp + 0x1c]
push eax
mov ecx, edi
call fcn.004758c0
add esp, 4
test eax, eax
jne case.0x472c96.14
jmp case.0x470e30.13
mov eax, dword [ebp + 0x1c]
sub edx, eax
cmp edi, edx
ja case.0x470e30.13
mov cl, byte [edi]
cmp cl, byte [ebp + 0x2c]
jne case.0x470e30.13
cmp eax, 1
je case.0x472c96.14
mov dl, byte [edi + 1]
cmp dl, byte [ebp + 0x2d]
je case.0x472c96.14
mov eax, edi
inc edi
cmp eax, dword [ebp + 0x64]
jae 0x473e8c
inc ebx
mov dword [esp + 0x13c], ebx
jmp 0x470e06
mov ecx, edi
inc edi
cmp ecx, dword [ebp + 0x64]
jae 0x473ed1
inc ebx
mov dword [esp + 0x13c], ebx
jmp 0x470e06
cmp edi, dword [ebp + 0x64]
jae 0x473f16
movzx eax, byte [edi]
mov edx, dword [ebp + 0x34]
inc edi
test byte [eax + edx], 4
jne 0x473d93
inc ebx
mov dword [esp + 0x13c], ebx
jmp 0x470e06
cmp edi, dword [ebp + 0x64]
jae 0x473f16
movzx eax, byte [edi]
mov ecx, dword [ebp + 0x34]
inc edi
test byte [eax + ecx], 4
je 0x473d93
inc ebx
mov dword [esp + 0x13c], ebx
jmp 0x470e06
cmp edi, dword [ebp + 0x64]
jae 0x473f16
movzx eax, byte [edi]
mov edx, dword [ebp + 0x34]
inc edi
test byte [eax + edx], 1
jne 0x473d93
inc ebx
mov dword [esp + 0x13c], ebx
jmp 0x470e06
cmp edi, dword [ebp + 0x64]
jae 0x473f16
movzx eax, byte [edi]
mov ecx, dword [ebp + 0x34]
inc edi
test byte [eax + ecx], 1
je 0x473d93
inc ebx
mov dword [esp + 0x13c], ebx
jmp 0x470e06
cmp edi, dword [ebp + 0x64]
jae 0x473f16
movzx eax, byte [edi]
mov edx, dword [ebp + 0x34]
inc edi
test byte [eax + edx], 0x10
jne 0x473d93
inc ebx
mov dword [esp + 0x13c], ebx
jmp 0x470e06
cmp edi, dword [ebp + 0x64]
jae 0x473f16
movzx eax, byte [edi]
mov ecx, dword [ebp + 0x34]
inc edi
test byte [eax + ecx], 0x10
je 0x473d93
inc ebx
mov dword [esp + 0x13c], ebx
jmp 0x470e06
mov ecx, dword [ebp + 0x64]
cmp edi, ecx
jae 0x473f16
movzx eax, byte [edi]
inc edi
cmp eax, 0xd
ja 0x471e45
je 0x471e2e
cmp eax, 0xa
je 0x471e6b
jbe 0x473d93
cmp eax, 0xc
jmp 0x471e5c
cmp edi, ecx
jae 0x471e6b
cmp byte [edi], 0xa
jne 0x471e6b
inc edi
inc ebx
mov dword [esp + 0x13c], ebx
jmp 0x470e06
cmp eax, 0x85
je 0x471e62
cmp eax, 0x2027
jbe 0x473d93
cmp eax, 0x2029
ja 0x473d93
cmp dword [ebp + 0x58], edx
jne case.0x470e30.115
inc ebx
mov dword [esp + 0x13c], ebx
jmp 0x470e06
cmp edi, dword [ebp + 0x64]
jae 0x473ed1
movzx eax, byte [edi]
inc edi
cmp eax, 0x180e
ja 0x471eb4
je case.0x470e30.115
cmp eax, 0xa0
ja 0x471ead
je case.0x470e30.115
cmp eax, 9
je case.0x470e30.115
cmp eax, 0x20
jmp 0x471edf
cmp eax, 0x1680
jmp 0x471edf
cmp eax, 0x205f
ja 0x471eda
je case.0x470e30.115
cmp eax, 0x2000
jb 0x471ee5
cmp eax, 0x200a
jbe case.0x470e30.115
cmp eax, 0x202f
jmp 0x471edf
cmp eax, 0x3000
je case.0x470e30.115
inc ebx
mov dword [esp + 0x13c], ebx
jmp 0x470e06
cmp edi, dword [ebp + 0x64]
jae 0x473ed1
movzx eax, byte [edi]
inc edi
cmp eax, 0x180e
ja 0x471f22
je 0x471f4f
cmp eax, 0xa0
ja 0x471f1b
je 0x471f4f
cmp eax, 9
je 0x471f4f
cmp eax, 0x20
jmp 0x471f49
cmp eax, 0x1680
jmp 0x471f49
cmp eax, 0x205f
ja 0x471f44
je 0x471f4f
cmp eax, 0x2000
jb case.0x470e30.115
cmp eax, 0x200a
jbe 0x471f4f
cmp eax, 0x202f
jmp 0x471f49
cmp eax, 0x3000
jne case.0x470e30.115
inc ebx
mov dword [esp + 0x13c], ebx
jmp 0x470e06
cmp edi, dword [ebp + 0x64]
jae 0x473ed1
movzx eax, byte [edi]
inc edi
cmp eax, 0x85
ja 0x471f80
je case.0x470e30.115
cmp eax, 0xa
jb 0x471f92
cmp eax, 0xd
jmp 0x471f8c
cmp eax, 0x2028
jb 0x471f92
cmp eax, 0x2029
jbe case.0x470e30.115
inc ebx
mov dword [esp + 0x13c], ebx
jmp 0x470e06
cmp edi, dword [ebp + 0x64]
jae 0x473ed1
movzx eax, byte [edi]
inc edi
cmp eax, 0x85
ja 0x471fc3
je 0x471fd9
cmp eax, 0xa
jb case.0x470e30.115
cmp eax, 0xd
jmp 0x471fd3
cmp eax, 0x2028
jb case.0x470e30.115
cmp eax, 0x2029
ja case.0x470e30.115
inc ebx
mov dword [esp + 0x13c], ebx
jmp 0x470e06
movzx eax, byte [ebx + 1]
movzx edx, byte [ebx + 2]
shl eax, 8
or eax, edx
add eax, eax
add ebx, 3
mov dword [esp + 0x28], eax
mov dword [esp + 0x13c], ebx
cmp eax, dword [esp + 0x148]
jge 0x47201f
mov ecx, dword [ebp + 0xc]
lea eax, [ecx + eax*4]
mov ecx, dword [eax]
test ecx, ecx
js 0x47201f
mov esi, dword [eax + 4]
sub esi, ecx
jmp 0x47202f
cmp dword [ebp + 0x44], 0
je 0x472029
xor esi, esi
jmp 0x47202f
mov esi, dword [ebp + 0x64]
sub esi, edi
inc esi
mov cl, byte [ebx]
movzx eax, cl
lea edx, [eax - 0x46]
cmp edx, 7
ja case.default.0x472047
movzx edx, byte [edx + 0x474938]
jmp dword [edx*4 + 0x474930]
lea ecx, [eax - 0x46]
and ecx, 1
mov dword [esp + 0x24], ecx
movsx ecx, byte [eax + 0x496d22]
movsx eax, byte [eax + 0x496d2a]
inc ebx
mov dword [esp + 0x13c], ebx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x18], eax
test eax, eax
jne 0x4720c6
mov dword [esp + 0x18], 0x7fffffff
jmp 0x4720c6
movzx edx, byte [ebx + 2]
xor eax, eax
cmp cl, 0x4d
movzx ecx, byte [ebx + 1]
sete al
shl ecx, 8
or ecx, edx
movzx edx, byte [ebx + 4]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], eax
movzx eax, byte [ebx + 3]
shl eax, 8
or eax, edx
mov dword [esp + 0x18], eax
jne 0x4720bc
mov dword [esp + 0x18], 0x7fffffff
add ebx, 5
mov dword [esp + 0x13c], ebx
test esi, esi
je 0x470e06
mov dword [esp + 0x14], 1
cmp ecx, 1
jl 0x472114
jmp 0x4720e0
mov eax, dword [esp + 0x150]
mov ecx, dword [esp + 0x28]
push eax
push ecx
mov ecx, ebp
mov edx, esi
mov eax, edi
call fcn.00470d20
add esp, 8
test eax, eax
je 0x473f5b
mov eax, dword [esp + 0x14]
inc eax
add edi, esi
mov dword [esp + 0x14], eax
cmp eax, dword [esp + 0x20]
jle 0x4720e0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
cmp eax, ecx
je 0x470e06
cmp dword [esp + 0x24], 0
je 0x473fa9
mov ecx, dword [esp + 0x154]
mov edx, dword [esp + 0x150]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x15c]
inc eax
push eax
push 0
push ecx
mov ecx, dword [esp + 0x150]
push edx
mov edx, dword [esp + 0x150]
push ebp
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x15c]
push eax
push ecx
push edx
push ebx
push edi
call fcn.00470da0
add esp, 0x28
test eax, eax
jne 0x474781
lea ecx, [ecx]
mov eax, dword [esp + 0x18]
cmp dword [esp + 0x14], eax
jge case.0x470e30.115
mov ecx, dword [esp + 0x150]
mov edx, dword [esp + 0x28]
push ecx
push edx
mov ecx, ebp
mov edx, esi
mov eax, edi
call fcn.00470d20
add esp, 8
test eax, eax
je 0x473f5b
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x154]
mov edx, dword [esp + 0x150]
inc dword [esp + 0x14]
push eax
mov eax, dword [esp + 0x14c]
push 0
push ecx
mov ecx, dword [esp + 0x150]
push edx
mov edx, dword [esp + 0x150]
push ebp
push eax
push ecx
push edx
add edi, esi
push ebx
push edi
call fcn.00470da0
add esp, 0x28
test eax, eax
je 0x472180
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov edx, dword [esp + 0x150]
mov eax, dword [esp + 0x28]
push edx
push eax
mov ecx, ebp
mov edx, esi
mov eax, edi
call fcn.00470d20
add esp, 8
test eax, eax
je 0x474094
add edi, esi
jmp 0x470e06
mov al, byte [ebx + 0x21]
lea ecx, [ebx + 1]
add ebx, 0x21
mov dword [esp + 0x28], ecx
movzx ecx, al
lea esi, [ecx - 0x46]
mov dword [esp + 0x13c], ebx
cmp esi, 7
ja case.default.0x472250
movzx esi, byte [esi + 0x474948]
jmp dword [esi*4 + 0x474940]
movsx esi, byte [ecx + 0x496d2a]
movsx eax, byte [ecx + 0x496d22]
add ecx, 0xffffffba
mov edx, ecx
inc ebx
and edx, 1
mov dword [esp + 0x13c], ebx
mov dword [esp + 0x24], edx
mov dword [esp + 0x18], esi
test esi, esi
jne 0x4722d3
mov esi, 0x7fffffff
jmp 0x4722cf
movzx ecx, byte [ebx + 2]
movzx esi, byte [ebx + 3]
xor edx, edx
cmp al, 0x4d
movzx eax, byte [ebx + 1]
sete dl
shl eax, 8
or eax, ecx
movzx ecx, byte [ebx + 4]
shl esi, 8
or esi, ecx
mov dword [esp + 0x24], edx
mov dword [esp + 0x18], esi
jne 0x4722bc
mov esi, 0x7fffffff
mov dword [esp + 0x18], esi
add ebx, 5
mov dword [esp + 0x13c], ebx
jmp 0x4722d3
mov esi, 1
mov eax, esi
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], 1
cmp eax, 1
jl 0x472320
cmp edi, dword [ebp + 0x64]
jae 0x4740ad
movzx esi, byte [edi]
mov ecx, esi
and ecx, 7
mov edx, 1
shl edx, cl
mov ecx, dword [esp + 0x28]
shr esi, 3
mov cl, byte [esi + ecx]
inc edi
test cl, dl
je case.0x470e30.115
mov ecx, dword [esp + 0x14]
inc ecx
mov dword [esp + 0x14], ecx
cmp ecx, eax
jle 0x4722e0
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
cmp eax, esi
je 0x470e06
mov dword [esp + 0x14], eax
test edx, edx
je 0x4740bd
mov eax, dword [esp + 0x15c]
mov ecx, dword [esp + 0x154]
mov edx, dword [esp + 0x150]
inc eax
push eax
push 0
push ecx
mov ecx, dword [esp + 0x150]
push edx
mov edx, dword [esp + 0x150]
push ebp
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x15c]
push eax
push ecx
push edx
push ebx
push edi
call fcn.00470da0
add esp, 0x28
test eax, eax
jne 0x474781
mov edi, edi
cmp dword [esp + 0x14], esi
jge case.0x472c96.14
cmp edi, dword [ebp + 0x64]
jae 0x473e8c
movzx eax, byte [edi]
mov ecx, eax
and ecx, 7
mov edx, 1
shl edx, cl
mov ecx, dword [esp + 0x28]
shr eax, 3
mov al, byte [eax + ecx]
inc edi
test al, dl
je case.0x472c96.14
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x154]
mov eax, dword [esp + 0x150]
inc dword [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x14c]
push 0
push edx
mov edx, dword [esp + 0x150]
push eax
mov eax, dword [esp + 0x150]
push ebp
push ecx
push edx
push eax
push ebx
push edi
call fcn.00470da0
add esp, 0x28
test eax, eax
je 0x472380
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov edx, dword [ebp + 0x64]
sub edx, edi
cmp edx, 1
jl 0x473e8c
mov al, byte [edi]
inc edi
cmp byte [ebx + 1], al
jne case.0x472c96.14
add ebx, 2
mov dword [esp + 0x13c], ebx
jmp 0x470e06
mov ecx, dword [ebp + 0x64]
sub ecx, edi
cmp ecx, 1
jl 0x473e8c
movzx ecx, byte [edi]
mov eax, dword [ebp + 0x30]
movzx edx, byte [ebx + 1]
mov cl, byte [ecx + eax]
inc edi
cmp byte [edx + eax], cl
jne case.0x472c96.14
add ebx, 2
mov dword [esp + 0x13c], ebx
jmp 0x470e06
movzx esi, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl esi, 8
or esi, eax
mov dword [esp + 0x18], esi
add ebx, 3
jmp 0x4724f3
mov dword [esp + 0x1c], 1
movzx eax, byte [ebx + 1]
movzx edx, byte [ebx + 2]
shl eax, 8
or eax, edx
xor edx, edx
xor esi, esi
cmp cl, 0x26
sete dl
mov dword [esp + 0x18], eax
add ebx, 3
jmp 0x4724f3
xor esi, esi
mov dword [esp + 0x1c], 1
inc ebx
jmp 0x4724eb
mov esi, 1
mov dword [esp + 0x1c], esi
add ebx, esi
jmp 0x4724eb
mov eax, 1
xor esi, esi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], eax
add ebx, eax
jmp 0x4724f3
mov eax, dword [esp + 0x18]
movsx esi, byte [eax + 0x496d49]
lea edx, [eax - 0x1f]
movsx eax, byte [eax + 0x496d51]
inc ebx
and edx, 1
mov dword [esp + 0x18], eax
test eax, eax
jne 0x4724f3
mov dword [esp + 0x18], 0x7fffffff
movzx ecx, byte [ebx]
inc ebx
test byte [esp + 0x150], 1
mov dword [esp + 0x20], ecx
mov dword [esp + 0x13c], ebx
mov dword [esp + 0x14], 1
je 0x47262f
mov eax, dword [ebp + 0x30]
movzx eax, byte [ecx + eax]
mov dword [esp + 0x20], eax
cmp esi, 1
jl 0x47255b
jmp 0x472530
cmp edi, dword [ebp + 0x64]
jae 0x473e8c
movzx ecx, byte [edi]
mov eax, dword [ebp + 0x30]
movzx eax, byte [ecx + eax]
inc edi
cmp dword [esp + 0x20], eax
jne case.0x472c96.14
mov eax, dword [esp + 0x14]
inc eax
mov dword [esp + 0x14], eax
cmp eax, esi
jle 0x472530
cmp esi, dword [esp + 0x18]
je 0x470e06
test edx, edx
jne 0x47418f
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x24], edi
cmp esi, ecx
jge 0x4725b6
cmp edi, dword [ebp + 0x64]
jae 0x472596
movzx edx, byte [edi]
mov eax, dword [ebp + 0x30]
movzx eax, byte [edx + eax]
cmp dword [esp + 0x20], eax
jne 0x4725b6
inc esi
inc edi
cmp esi, ecx
jl 0x472579
jmp 0x4725b6
mov eax, dword [ebp + 0x74]
test eax, eax
je 0x4725b6
cmp edi, dword [esp + 0x140]
jbe 0x4725b6
mov dword [ebp + 0x54], 1
cmp eax, 1
jg 0x473eb4
cmp dword [esp + 0x1c], 0
jne 0x470e06
cmp edi, dword [esp + 0x24]
jb 0x472615
mov esi, dword [esp + 0x15c]
inc esi
nop
mov eax, dword [esp + 0x154]
mov ecx, dword [esp + 0x150]
mov edx, dword [esp + 0x148]
push esi
push 0
push eax
mov eax, dword [esp + 0x150]
push ecx
mov ecx, dword [esp + 0x150]
push ebp
push edx
push eax
push ecx
push ebx
push edi
call fcn.00470da0
add esp, 0x28
dec edi
test eax, eax
jne 0x474781
cmp edi, dword [esp + 0x24]
jae 0x4725d0
mov edx, dword [esp + 0x144]
mov dword [ebp + 0x94], edx
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
cmp esi, 1
jl 0x472656
cmp edi, dword [ebp + 0x64]
jae 0x47424e
movzx eax, byte [edi]
inc edi
cmp ecx, eax
jne 0x473d93
mov eax, dword [esp + 0x14]
inc eax
mov dword [esp + 0x14], eax
cmp eax, esi
jle 0x472634
cmp esi, dword [esp + 0x18]
je 0x470e06
test edx, edx
jne 0x474293
mov eax, dword [esp + 0x18]
mov dword [esp + 0x24], edi
cmp esi, eax
jge 0x4726ac
mov ecx, dword [ebp + 0x64]
cmp edi, ecx
jae 0x47268c
movzx edx, byte [edi]
cmp dword [esp + 0x20], edx
jne 0x4726ac
inc esi
inc edi
cmp esi, eax
jl 0x472677
jmp 0x4726ac
mov eax, dword [ebp + 0x74]
test eax, eax
je 0x4726ac
cmp edi, dword [esp + 0x140]
jbe 0x4726ac
mov dword [ebp + 0x54], 1
cmp eax, 1
jg 0x473f8c
cmp dword [esp + 0x1c], 0
jne 0x470e06
cmp edi, dword [esp + 0x24]
jb 0x472715
mov esi, dword [esp + 0x15c]
inc esi
jmp 0x4726d0
mov edx, dword [esp + 0x154]
mov eax, dword [esp + 0x150]
mov ecx, dword [esp + 0x148]
push esi
push 0
push edx
mov edx, dword [esp + 0x150]
push eax
mov eax, dword [esp + 0x150]
push ebp
push ecx
push edx
push eax
push ebx
push edi
call fcn.00470da0
add esp, 0x28
dec edi
test eax, eax
jne 0x474781
cmp edi, dword [esp + 0x24]
jae 0x4726d0
mov ecx, dword [esp + 0x144]
mov dword [ebp + 0x94], ecx
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
cmp edi, dword [ebp + 0x64]
jae 0x473e8c
movzx esi, byte [edi]
inc edi
test byte [esp + 0x150], 1
je 0x47277d
mov eax, dword [ebp + 0x30]
movzx ecx, byte [ebx + 1]
mov dl, byte [esi + eax]
add ebx, 2
mov dword [esp + 0x13c], ebx
cmp byte [ecx + eax], dl
jne 0x470e06
mov ecx, dword [esp + 0x144]
mov dword [ebp + 0x94], ecx
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
movzx eax, byte [ebx + 1]
add ebx, 2
mov dword [esp + 0x13c], ebx
cmp eax, esi
jne 0x470e06
mov edx, dword [esp + 0x144]
mov dword [ebp + 0x94], edx
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
movzx esi, byte [ebx + 1]
movzx ecx, byte [ebx + 2]
shl esi, 8
or esi, ecx
mov eax, esi
add ebx, 3
jmp 0x47284f
movzx esi, byte [ebx + 1]
movzx edx, byte [ebx + 2]
shl esi, 8
or esi, edx
xor edx, edx
xor eax, eax
cmp cl, 0x33
sete dl
add ebx, 3
mov dword [esp + 0x24], edx
jmp 0x47284f
xor eax, eax
mov dword [esp + 0x1c], 1
inc ebx
jmp 0x47284a
mov eax, 1
mov dword [esp + 0x1c], eax
add ebx, eax
jmp 0x47284a
mov esi, 1
xor eax, eax
mov dword [esp + 0x1c], esi
add ebx, esi
jmp 0x47284f
movzx esi, byte [ebx + 1]
movzx ecx, byte [ebx + 2]
shl esi, 8
xor eax, eax
or esi, ecx
mov dword [esp + 0x1c], 1
add ebx, 3
jmp 0x47284f
mov ecx, dword [esp + 0x18]
movsx esi, byte [ecx + 0x496d44]
movsx eax, byte [ecx + 0x496d3c]
lea edx, [ecx - 0x2c]
and edx, 1
inc ebx
mov dword [esp + 0x24], edx
test esi, esi
jne 0x47284f
mov esi, 0x7fffffff
movzx ecx, byte [ebx]
inc ebx
test byte [esp + 0x150], 1
mov dword [esp + 0x20], ecx
mov dword [esp + 0x13c], ebx
mov dword [esp + 0x14], 1
je 0x47298f
mov edx, dword [esp + 0x20]
mov ecx, dword [ebp + 0x30]
movzx ecx, byte [edx + ecx]
mov dword [esp + 0x20], ecx
cmp eax, 1
jl 0x4728bb
jmp 0x472890
cmp edi, dword [ebp + 0x64]
jae 0x47424e
movzx edx, byte [edi]
mov ecx, dword [ebp + 0x30]
movzx ecx, byte [edx + ecx]
inc edi
cmp dword [esp + 0x20], ecx
je 0x473d93
mov ecx, dword [esp + 0x14]
inc ecx
mov dword [esp + 0x14], ecx
cmp ecx, eax
jle 0x472890
cmp eax, esi
je 0x470e06
cmp dword [esp + 0x24], 0
jne 0x47434b
mov dword [esp + 0x24], edi
mov ecx, eax
cmp eax, esi
jge 0x472915
cmp edi, dword [ebp + 0x64]
jae 0x4728f5
movzx edx, byte [edi]
mov eax, dword [ebp + 0x30]
movzx eax, byte [edx + eax]
cmp dword [esp + 0x20], eax
je 0x472915
inc ecx
inc edi
cmp ecx, esi
jl 0x4728d8
jmp 0x472915
mov eax, dword [ebp + 0x74]
test eax, eax
je 0x472915
cmp edi, dword [esp + 0x140]
jbe 0x472915
mov dword [ebp + 0x54], 1
cmp eax, 1
jg 0x474276
cmp dword [esp + 0x1c], 0
jne 0x470e06
cmp edi, dword [esp + 0x24]
jb 0x472975
mov esi, dword [esp + 0x15c]
inc esi
mov edi, edi
mov ecx, dword [esp + 0x154]
mov edx, dword [esp + 0x150]
mov eax, dword [esp + 0x148]
push esi
push 0
push ecx
mov ecx, dword [esp + 0x150]
push edx
mov edx, dword [esp + 0x150]
push ebp
push eax
push ecx
push edx
push ebx
push edi
call fcn.00470da0
add esp, 0x28
test eax, eax
jne 0x474781
dec edi
cmp edi, dword [esp + 0x24]
jae 0x472930
mov eax, dword [esp + 0x144]
mov dword [ebp + 0x94], eax
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
cmp eax, 1
jl 0x4729be
mov edx, dword [esp + 0x20]
cmp edi, dword [ebp + 0x64]
jae 0x4740ad
movzx ecx, byte [edi]
inc edi
cmp edx, ecx
je case.0x470e30.115
mov ecx, dword [esp + 0x14]
inc ecx
mov dword [esp + 0x14], ecx
cmp ecx, eax
jle 0x472998
mov edx, dword [esp + 0x24]
cmp eax, esi
je 0x470e06
test edx, edx
jne 0x474415
mov dword [esp + 0x24], edi
cmp eax, esi
jge 0x472a0e
mov ecx, dword [ebp + 0x64]
cmp edi, ecx
jae 0x4729ee
movzx edx, byte [edi]
cmp dword [esp + 0x20], edx
je 0x472a0e
inc eax
inc edi
cmp eax, esi
jl 0x4729d9
jmp 0x472a0e
mov eax, dword [ebp + 0x74]
test eax, eax
je 0x472a0e
cmp edi, dword [esp + 0x140]
jbe 0x472a0e
mov dword [ebp + 0x54], 1
cmp eax, 1
jg 0x473eb4
cmp dword [esp + 0x1c], 0
jne 0x470e06
cmp edi, dword [esp + 0x24]
jb 0x472a75
mov esi, dword [esp + 0x15c]
inc esi
jmp 0x472a30
mov eax, dword [esp + 0x154]
mov ecx, dword [esp + 0x150]
mov edx, dword [esp + 0x148]
push esi
push 0
push eax
mov eax, dword [esp + 0x150]
push ecx
mov ecx, dword [esp + 0x150]
push ebp
push edx
push eax
push ecx
push ebx
push edi
call fcn.00470da0
add esp, 0x28
test eax, eax
jne 0x474781
dec edi
cmp edi, dword [esp + 0x24]
jae 0x472a30
mov edx, dword [esp + 0x144]
mov dword [ebp + 0x94], edx
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov eax, dword [esp + 0x13c]
movzx ebx, byte [eax + 1]
movzx ecx, byte [eax + 2]
shl ebx, 8
or ebx, ecx
add eax, 3
mov dword [esp + 0x18], ebx
mov dword [esp + 0x24], 1
mov dword [esp + 0x13c], eax
jmp 0x472b95
mov esi, dword [esp + 0x13c]
movzx eax, byte [esi + 1]
movzx edx, byte [esi + 2]
shl eax, 8
or eax, edx
mov dword [esp + 0x18], eax
xor eax, eax
xor ebx, ebx
cmp cl, 0x40
sete al
add esi, 3
mov dword [esp + 0x13c], esi
mov dword [esp + 0x24], eax
jmp 0x472b95
mov eax, 1
xor ebx, ebx
add dword [esp + 0x13c], eax
mov dword [esp + 0x1c], eax
jmp 0x472b8d
mov ebx, 1
add dword [esp + 0x13c], ebx
mov dword [esp + 0x1c], ebx
jmp 0x472b8d
mov eax, 1
xor ebx, ebx
add dword [esp + 0x13c], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], eax
jmp 0x472b95
mov ecx, dword [esp + 0x13c]
movzx eax, byte [ecx + 1]
movzx edx, byte [ecx + 2]
shl eax, 8
or eax, edx
xor ebx, ebx
add ecx, 3
mov dword [esp + 0x1c], 1
mov dword [esp + 0x18], eax
mov dword [esp + 0x13c], ecx
jmp 0x472b95
mov eax, dword [esp + 0x18]
movsx ebx, byte [eax + 0x496d2f]
inc dword [esp + 0x13c]
lea ecx, [eax - 0x39]
movsx eax, byte [eax + 0x496d37]
and ecx, 1
mov dword [esp + 0x24], ecx
mov dword [esp + 0x18], eax
test eax, eax
jne 0x472b95
mov dword [esp + 0x18], 0x7fffffff
mov eax, dword [esp + 0x13c]
movzx ecx, byte [eax]
mov edx, 1
add eax, edx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x13c], eax
test ebx, ebx
jle 0x472ec8
lea eax, [ecx - 6]
cmp eax, 0xf
ja case.0x474613.15
jmp dword [eax*4 + 0x474950]
cmp ebx, edx
jl 0x472ec8
mov dword [esp + 0x20], edx
jmp 0x472be0
mov edx, dword [ebp + 0x64]
cmp edi, edx
jae 0x47424e
mov eax, dword [ebp + 0x18]
test eax, eax
je 0x472c0a
lea esi, [ebp + 0x1c]
push eax
mov ecx, edi
call fcn.004758c0
add esp, 4
test eax, eax
jne 0x473d93
jmp 0x472c2f
mov eax, dword [ebp + 0x1c]
sub edx, eax
cmp edi, edx
ja 0x472c2f
mov cl, byte [edi]
cmp cl, byte [ebp + 0x2c]
jne 0x472c2f
cmp eax, 1
je 0x473d93
mov dl, byte [edi + 1]
cmp dl, byte [ebp + 0x2d]
je 0x473d93
mov eax, dword [esp + 0x20]
inc eax
inc edi
mov dword [esp + 0x20], eax
cmp eax, ebx
jle 0x472be0
jmp 0x472ec8
mov eax, dword [ebp + 0x64]
sub eax, ebx
cmp edi, eax
ja 0x4744d1
add edi, ebx
jmp 0x472ec8
mov ecx, dword [ebp + 0x64]
sub ecx, ebx
cmp edi, ecx
ja 0x474511
add edi, ebx
jmp 0x472ec8
mov ecx, edx
cmp ebx, edx
jl 0x472ec8
mov edx, dword [ebp + 0x64]
cmp edi, edx
jae 0x4740ad
movzx eax, byte [edi]
sub eax, 0xa
inc edi
cmp eax, 0x7b
ja case.0x472c96.14
movzx eax, byte [eax + 0x4749a0]
jmp dword [eax*4 + 0x474990]
cmp edi, edx
jae case.0x472c96.10
cmp byte [edi], 0xa
jne case.0x472c96.10
inc edi
jmp case.0x472c96.10
cmp dword [ebp + 0x58], 0
jne case.0x470e30.115
inc ecx
cmp ecx, ebx
jle 0x472c77
jmp 0x472ec8
mov ecx, edx
cmp ebx, edx
jl 0x472ec8
mov edx, dword [ebp + 0x64]
lea ebx, [ebx]
cmp edi, edx
jae 0x473e8c
movzx eax, byte [edi]
inc edi
cmp eax, 9
je case.0x472c96.14
cmp eax, 0x20
je case.0x472c96.14
cmp eax, 0xa0
je case.0x472c96.14
inc ecx
cmp ecx, ebx
jle 0x472cd0
jmp 0x472ec8
mov ecx, edx
cmp ebx, edx
jl 0x472ec8
mov edx, dword [ebp + 0x64]
cmp edi, edx
jae 0x473e8c
movzx eax, byte [edi]
inc edi
cmp eax, 9
je 0x472d31
cmp eax, 0x20
je 0x472d31
cmp eax, 0xa0
jne case.0x472c96.14
inc ecx
cmp ecx, ebx
jle 0x472d10
jmp 0x472ec8
mov ecx, edx
cmp ebx, edx
jl 0x472ec8
mov edx, dword [ebp + 0x64]
cmp edi, edx
jae 0x473e8c
movzx eax, byte [edi]
inc edi
cmp eax, 0xa
jl 0x472d6d
cmp eax, 0xd
jle case.0x472c96.14
cmp eax, 0x85
je case.0x472c96.14
inc ecx
cmp ecx, ebx
jle 0x472d48
jmp 0x472ec8
mov ecx, edx
cmp ebx, edx
jl 0x472ec8
mov edx, dword [ebp + 0x64]
cmp edi, edx
jae 0x473e8c
movzx eax, byte [edi]
inc edi
cmp eax, 0xa
jl case.0x472c96.14
cmp eax, 0xd
jle 0x472da9
cmp eax, 0x85
jne case.0x472c96.14
inc ecx
cmp ecx, ebx
jle 0x472d84
jmp 0x472ec8
mov eax, edx
cmp ebx, edx
jl 0x472ec8
mov esi, dword [ebp + 0x64]
cmp edi, esi
jae 0x473e8c
movzx ecx, byte [edi]
mov edx, dword [ebp + 0x34]
mov cl, byte [ecx + edx]
inc edi
and cl, 4
jne case.0x472c96.14
inc eax
cmp eax, ebx
jle 0x472dc0
jmp 0x472ec8
mov eax, edx
cmp ebx, edx
jl 0x472ec8
mov esi, dword [ebp + 0x64]
cmp edi, esi
jae 0x473e8c
movzx edx, byte [edi]
mov ecx, dword [ebp + 0x34]
mov dl, byte [edx + ecx]
inc edi
and dl, 4
je case.0x472c96.14
inc eax
cmp eax, ebx
jle 0x472df2
jmp 0x472ec8
mov eax, edx
cmp ebx, edx
jl 0x472ec8
mov esi, dword [ebp + 0x64]
cmp edi, esi
jae 0x473e8c
movzx ecx, byte [edi]
mov edx, dword [ebp + 0x34]
mov cl, byte [ecx + edx]
inc edi
and cl, 1
jne case.0x472c96.14
inc eax
cmp eax, ebx
jle 0x472e24
jmp 0x472ec8
mov eax, edx
cmp ebx, edx
jl 0x472ec8
mov esi, dword [ebp + 0x64]
cmp edi, esi
jae 0x473e8c
movzx edx, byte [edi]
mov ecx, dword [ebp + 0x34]
mov dl, byte [edx + ecx]
inc edi
and dl, 1
je case.0x472c96.14
inc eax
cmp eax, ebx
jle 0x472e52
jmp 0x472ec8
mov eax, edx
cmp ebx, edx
jl 0x472ec8
mov esi, dword [ebp + 0x64]
cmp edi, esi
jae 0x473e8c
movzx ecx, byte [edi]
mov edx, dword [ebp + 0x34]
mov cl, byte [ecx + edx]
inc edi
and cl, 0x10
jne case.0x472c96.14
inc eax
cmp eax, ebx
jle 0x472e7d
jmp 0x472ec8
mov eax, edx
cmp ebx, edx
jl 0x472ec8
mov esi, dword [ebp + 0x64]
cmp edi, esi
jae 0x473e8c
movzx edx, byte [edi]
mov ecx, dword [ebp + 0x34]
mov dl, byte [edx + ecx]
inc edi
and dl, 0x10
je case.0x472c96.14
inc eax
cmp eax, ebx
jle 0x472ea8
cmp ebx, dword [esp + 0x18]
je 0x470e06
cmp dword [esp + 0x24], 0
jne 0x474543
mov eax, dword [esp + 0x28]
add eax, 0xfffffffa
mov dword [esp + 0x24], edi
cmp eax, 0xf
ja case.0x474613.15
jmp dword [eax*4 + 0x474a1c]
cmp ebx, dword [esp + 0x18]
jge 0x473274
mov edx, dword [ebp + 0x64]
cmp edi, edx
jae 0x473254
mov eax, dword [ebp + 0x18]
test eax, eax
je 0x472f2c
lea esi, [ebp + 0x1c]
push eax
mov ecx, edi
call fcn.004758c0
add esp, 4
test eax, eax
jne 0x473274
jmp 0x472f51
mov eax, dword [ebp + 0x1c]
sub edx, eax
cmp edi, edx
ja 0x472f51
mov cl, byte [edi]
cmp cl, byte [ebp + 0x2c]
jne 0x472f51
cmp eax, 1
je 0x473274
mov dl, byte [edi + 1]
cmp dl, byte [ebp + 0x2d]
je 0x473274
inc ebx
inc edi
cmp ebx, dword [esp + 0x18]
jl 0x472f02
jmp 0x473274
mov ecx, dword [ebp + 0x64]
mov eax, dword [esp + 0x18]
mov edx, ecx
sub eax, ebx
sub edx, edi
cmp eax, edx
jbe 0x472f9e
mov edi, ecx
mov eax, dword [ebp + 0x74]
test eax, eax
je 0x473274
cmp edi, dword [esp + 0x140]
jbe 0x473274
mov dword [ebp + 0x54], 1
cmp eax, 1
jg 0x474276
jmp 0x473274
add edi, eax
jmp 0x473274
mov edx, dword [esp + 0x18]
cmp ebx, edx
jge 0x473274
mov ecx, dword [ebp + 0x64]
cmp edi, ecx
jae 0x472fff
movzx eax, byte [edi]
cmp eax, 0xd
jne 0x472fd0
inc edi
cmp edi, ecx
jae 0x473274
cmp byte [edi], 0xa
jne 0x472ff5
jmp 0x472ff4
cmp eax, 0xa
je 0x472ff4
cmp dword [ebp + 0x58], 0
jne 0x473274
cmp eax, 0xb
je 0x472ff4
cmp eax, 0xc
je 0x472ff4
cmp eax, 0x85
jne 0x473274
inc edi
inc ebx
cmp ebx, edx
jl 0x472fb4
jmp 0x473274
mov eax, dword [ebp + 0x74]
test eax, eax
je 0x473274
cmp edi, dword [esp + 0x140]
jbe 0x473274
mov dword [ebp + 0x54], 1
cmp eax, 1
jg 0x473f8c
jmp 0x473274
mov ecx, dword [esp + 0x18]
cmp ebx, ecx
jge 0x473274
mov edx, dword [ebp + 0x64]
jmp 0x473040
cmp edi, edx
jae 0x473254
movzx eax, byte [edi]
cmp eax, 9
je 0x473274
cmp eax, 0x20
je 0x473274
cmp eax, 0xa0
je 0x473274
inc ebx
inc edi
cmp ebx, ecx
jl 0x473040
jmp 0x473274
mov ecx, dword [esp + 0x18]
cmp ebx, ecx
jge 0x473274
mov edx, dword [ebp + 0x64]
cmp edi, edx
jae 0x472f71
movzx eax, byte [edi]
cmp eax, 9
je 0x4730a2
cmp eax, 0x20
je 0x4730a2
cmp eax, 0xa0
jne 0x473274
inc ebx
inc edi
cmp ebx, ecx
jl 0x473082
jmp 0x473274
mov ecx, dword [esp + 0x18]
cmp ebx, ecx
jge 0x473274
mov edx, dword [ebp + 0x64]
lea esp, [esp]
cmp edi, edx
jae 0x472fff
movzx eax, byte [edi]
cmp eax, 0xa
je 0x473274
cmp eax, 0xb
je 0x473274
cmp eax, 0xc
je 0x473274
cmp eax, 0xd
je 0x473274
cmp eax, 0x85
je 0x473274
inc ebx
inc edi
cmp ebx, ecx
jl 0x4730c0
jmp 0x473274
mov ecx, dword [esp + 0x18]
cmp ebx, ecx
jge 0x473274
mov edx, dword [ebp + 0x64]
cmp edi, edx
jae 0x473254
movzx eax, byte [edi]
cmp eax, 0xa
je 0x47313e
cmp eax, 0xb
je 0x47313e
cmp eax, 0xc
je 0x47313e
cmp eax, 0xd
je 0x47313e
cmp eax, 0x85
jne 0x473274
inc ebx
inc edi
cmp ebx, ecx
jl 0x473114
jmp 0x473274
mov eax, dword [esp + 0x18]
cmp ebx, eax
jge 0x473274
mov ecx, dword [ebp + 0x64]
cmp edi, ecx
jae 0x472f71
movzx edx, byte [edi]
mov esi, dword [ebp + 0x34]
test byte [edx + esi], 4
jne 0x473274
inc ebx
inc edi
cmp ebx, eax
jl 0x473158
jmp 0x473274
mov eax, dword [esp + 0x18]
cmp ebx, eax
jge 0x473274
mov ecx, dword [ebp + 0x64]
cmp edi, ecx
jae 0x472fff
movzx edx, byte [edi]
mov esi, dword [ebp + 0x34]
test byte [edx + esi], 4
je 0x473274
inc ebx
inc edi
cmp ebx, eax
jl 0x47318a
jmp 0x473274
mov eax, dword [esp + 0x18]
cmp ebx, eax
jge 0x473274
mov ecx, dword [ebp + 0x64]
cmp edi, ecx
jae 0x473254
movzx edx, byte [edi]
mov esi, dword [ebp + 0x34]
test byte [edx + esi], 1
jne 0x473274
inc ebx
inc edi
cmp ebx, eax
jl 0x4731bc
jmp 0x473274
mov eax, dword [esp + 0x18]
cmp ebx, eax
jge 0x473274
mov ecx, dword [ebp + 0x64]
cmp edi, ecx
jae 0x472f71
movzx edx, byte [edi]
mov esi, dword [ebp + 0x34]
test byte [edx + esi], 1
je 0x473274
inc ebx
inc edi
cmp ebx, eax
jl 0x4731ee
jmp 0x473274
mov eax, dword [esp + 0x18]
cmp ebx, eax
jge 0x473274
mov ecx, dword [ebp + 0x64]
cmp edi, ecx
jae 0x472fff
movzx edx, byte [edi]
mov esi, dword [ebp + 0x34]
test byte [edx + esi], 0x10
jne 0x473274
inc ebx
inc edi
cmp ebx, eax
jl 0x473215
jmp 0x473274
mov eax, dword [esp + 0x18]
cmp ebx, eax
jge 0x473274
mov ecx, dword [ebp + 0x64]
cmp edi, ecx
jae 0x473254
movzx edx, byte [edi]
mov esi, dword [ebp + 0x34]
test byte [edx + esi], 0x10
je 0x473274
inc ebx
inc edi
cmp ebx, eax
jl 0x47323c
jmp 0x473274
mov eax, dword [ebp + 0x74]
test eax, eax
je 0x473274
cmp edi, dword [esp + 0x140]
jbe 0x473274
mov dword [ebp + 0x54], 1
cmp eax, 1
jg 0x473eb4
cmp dword [esp + 0x1c], 0
jne 0x470e06
mov ebx, dword [esp + 0x144]
cmp edi, dword [esp + 0x24]
jb 0x4732e5
mov esi, dword [esp + 0x15c]
inc esi
jmp 0x4732a0
mov eax, dword [esp + 0x154]
mov ecx, dword [esp + 0x150]
mov edx, dword [esp + 0x148]
push esi
push 0
push eax
mov eax, dword [esp + 0x14c]
push ecx
mov ecx, dword [esp + 0x14c]
push ebp
push edx
push ebx
push eax
push ecx
push edi
call fcn.00470da0
add esp, 0x28
dec edi
test eax, eax
jne 0x474781
cmp edi, dword [esp + 0x24]
jae 0x4732a0
mov dword [ebp + 0x94], ebx
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
movzx eax, byte [ebx + 4]
movzx ecx, byte [ebx + 5]
shl eax, 8
or eax, ecx
cmp byte [ebx + eax + 3], 0x54
lea ebx, [ebx + eax + 3]
jne 0x473324
movzx edx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl edx, 8
or edx, eax
add ebx, edx
cmp byte [ebx], 0x54
je 0x473310
add ebx, 3
cmp dword [esp + 0x18], 0x63
mov dword [esp + 0x13c], ebx
je 0x473b50
mov dword [esp + 0x158], 0
jmp 0x4735d4
movzx esi, byte [ebx + 3]
movzx ecx, byte [ebx + 4]
shl esi, 8
or esi, ecx
lea eax, [esi + esi]
cmp eax, dword [ebp + 0x14]
jl 0x4739d8
movzx edx, byte [ebx + 1]
movzx ecx, byte [ebx + 2]
mov esi, dword [esp + 0x144]
xor eax, eax
cmp dword [esp + 0x18], 0x61
setl al
shl edx, 8
or edx, ecx
dec eax
and eax, 2
cmp byte [edx + ebx], 0x54
mov dword [esp + 0x158], eax
jne 0x473422
jmp 0x4733a0
mov eax, dword [esp + 0x15c]
mov edx, dword [esp + 0x158]
mov ecx, dword [esp + 0x150]
inc eax
push eax
mov eax, dword [esp + 0x158]
push edx
mov edx, dword [esp + 0x150]
push eax
mov eax, dword [esp + 0x14c]
push ecx
movzx ecx, byte [ebx]
push ebp
push edx
movzx edx, byte [ecx + 0x4968b0]
push esi
push eax
add edx, ebx
push edx
push edi
call fcn.00470da0
add esp, 0x28
test eax, eax
je 0x4733f8
cmp eax, 0xfffffc1e
jne 0x474781
movzx eax, byte [ebx + 1]
movzx ecx, byte [ebx + 2]
shl eax, 8
or eax, ecx
movzx edx, byte [ebx + eax + 1]
add ebx, eax
movzx eax, byte [ebx + 2]
shl edx, 8
or edx, eax
cmp byte [edx + ebx], 0x54
je 0x4733a0
mov eax, dword [esp + 0x158]
test eax, eax
jne 0x473aee
movzx ecx, byte [ebx]
movzx edx, byte [ecx + 0x4968b0]
add ebx, edx
jmp 0x4735cd
cmp byte [ebx + 3], 0x19
lea ecx, [ebx + 3]
mov dword [esp + 0x2c], ecx
jne 0x47345f
mov edx, dword [esp + 0x150]
movzx ecx, byte [ebx + 4]
and edx, 0xfffffff8
or ecx, edx
mov dword [esp + 0x150], ecx
cmp byte [ebx], 0x57
jne 0x4734b7
mov ecx, dword [esp + 0x15c]
mov edx, dword [esp + 0x154]
inc ecx
push ecx
mov ecx, dword [esp + 0x154]
push 0
push edx
mov edx, dword [esp + 0x150]
push ecx
push ebp
push eax
mov eax, dword [esp + 0x44]
push edx
push esi
push eax
push edi
call fcn.00470da0
add esp, 0x28
test eax, eax
jne 0x474781
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x13c], ecx
mov dword [esp + 0x158], eax
jmp 0x4735d4
mov edx, dword [esp + 0x15c]
mov ecx, dword [esp + 0x154]
inc edx
push edx
mov edx, dword [esp + 0x154]
push 2
push ecx
mov ecx, dword [esp + 0x2c]
push edx
push ebp
push eax
mov eax, dword [esp + 0x15c]
push eax
push esi
push ecx
push edi
call fcn.00470da0
add esp, 0x28
test eax, eax
jne 0x474781
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x13c], edx
mov dword [esp + 0x158], eax
jmp 0x4735d4
mov eax, dword [esp + 0x20]
cmp byte [eax], 0x61
mov ecx, dword [esp + 0x15c]
sbb eax, eax
and eax, 0xfffffffe
add eax, 2
inc ecx
cmp byte [ebx], 0x57
mov dword [esp + 0x158], eax
push ecx
jne 0x473583
mov edx, dword [esp + 0x158]
mov eax, dword [esp + 0x14c]
mov ecx, dword [esp + 0x148]
push 0
push edx
mov edx, dword [esp + 0x14c]
push esi
push ebp
push eax
push ecx
push edx
add ebx, 3
push ebx
push edi
call fcn.00470da0
add esp, 0x28
test eax, eax
jne 0x474781
mov eax, dword [esp + 0x158]
test eax, eax
jne 0x473e13
mov eax, dword [esp + 0x20]
mov dword [esp + 0x13c], eax
jmp 0x4735d4
mov edx, dword [esp + 0x15c]
mov eax, dword [esp + 0x158]
mov ecx, dword [esp + 0x14c]
push edx
mov edx, dword [esp + 0x14c]
push eax
mov eax, dword [esp + 0x14c]
push esi
push ebp
push ecx
mov ecx, dword [esp + 0x38]
push edx
push eax
push ecx
push edi
call fcn.00470da0
add esp, 0x28
test eax, eax
jne 0x474781
add ebx, 3
mov dword [esp + 0x158], eax
mov dword [esp + 0x13c], ebx
mov edx, dword [ebp]
cmp edx, dword [ebp + 4]
jb 0x470dc4
inc dword [ebp]
mov eax, 0xfffffff8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov eax, 0xffffffeb
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov eax, dword [esp + 0x15c]
mov ecx, dword [esp + 0x158]
mov edx, dword [esp + 0x154]
inc eax
push eax
mov eax, dword [esp + 0x154]
push ecx
mov ecx, dword [esp + 0x150]
push edx
mov edx, dword [esp + 0x14c]
push eax
movzx eax, byte [ebx]
push ebp
push ecx
movzx ecx, byte [eax + 0x4968b0]
lea esi, [ebx + 2]
push esi
push edx
movzx edx, byte [ebx + 1]
add ecx, ebx
add edx, ecx
push edx
push edi
call fcn.00470da0
add esp, 0x28
cmp eax, 0xfffffc1d
jne 0x47369d
mov edx, dword [ebp + 0x68]
mov ecx, esi
mov bl, byte [ecx]
cmp bl, byte [edx]
jne 0x473681
test bl, bl
je 0x47367d
mov bl, byte [ecx + 1]
cmp bl, byte [edx + 1]
jne 0x473681
add ecx, 2
add edx, 2
test bl, bl
jne 0x473661
xor ecx, ecx
jmp 0x473686
sbb ecx, ecx
sbb ecx, 0xffffffff
test ecx, ecx
jne 0x47369d
mov dword [ebp + 0x68], edi
mov eax, 0xfffffc1c
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
cmp dword [ebp + 0x94], 0
jne 0x474781
mov dword [ebp + 0x94], esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov ecx, dword [esp + 0x15c]
mov edx, dword [esp + 0x158]
mov eax, dword [esp + 0x154]
mov esi, dword [esp + 0x144]
inc ecx
push ecx
mov ecx, dword [esp + 0x154]
push edx
mov edx, dword [esp + 0x150]
push eax
mov eax, dword [esp + 0x14c]
push ecx
movzx ecx, byte [ebx]
push ebp
push edx
movzx edx, byte [ecx + 0x4968b0]
push esi
push eax
add edx, ebx
push edx
push edi
call fcn.00470da0
add esp, 0x28
test eax, eax
jne 0x474781
mov dword [ebp + 0x94], esi
mov eax, 0xfffffc1a
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov eax, dword [esp + 0x15c]
mov ecx, dword [esp + 0x158]
mov edx, dword [esp + 0x154]
mov esi, dword [esp + 0x144]
inc eax
push eax
mov eax, dword [esp + 0x154]
push ecx
mov ecx, dword [esp + 0x150]
push edx
mov edx, dword [esp + 0x14c]
push eax
movzx eax, byte [ebx]
push ebp
push ecx
movzx ecx, byte [eax + 0x4968b0]
push esi
push edx
add ecx, ebx
push ecx
push edi
call fcn.00470da0
add esp, 0x28
test eax, eax
jne 0x474781
mov dword [ebp + 0x94], esi
mov eax, 0xfffffc1b
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov edx, dword [esp + 0x15c]
mov eax, dword [esp + 0x158]
mov ecx, dword [esp + 0x154]
inc edx
push edx
mov edx, dword [esp + 0x154]
push eax
mov eax, dword [esp + 0x150]
push ecx
mov ecx, dword [esp + 0x150]
push edx
mov edx, dword [esp + 0x150]
push ebp
push eax
movzx eax, byte [ebx]
push ecx
movzx ecx, byte [eax + 0x4968b0]
push edx
movzx edx, byte [ebx + 1]
add ecx, ebx
add edx, ecx
push edx
push edi
call fcn.00470da0
add esp, 0x28
test eax, eax
jne 0x474781
add ebx, 2
mov dword [ebp + 0x94], ebx
mov eax, 0xfffffc1b
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov eax, dword [esp + 0x15c]
mov ecx, dword [esp + 0x158]
mov edx, dword [esp + 0x154]
mov esi, dword [esp + 0x144]
inc eax
push eax
mov eax, dword [esp + 0x154]
push ecx
mov ecx, dword [esp + 0x150]
push edx
mov edx, dword [esp + 0x14c]
push eax
movzx eax, byte [ebx]
push ebp
push ecx
movzx ecx, byte [eax + 0x4968b0]
push esi
push edx
add ecx, ebx
push ecx
push edi
call fcn.00470da0
add esp, 0x28
test eax, eax
jne 0x474781
mov dword [ebp + 0x68], edi
mov dword [ebp + 0x94], esi
mov eax, 0xfffffc1c
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov edx, dword [esp + 0x15c]
mov eax, dword [esp + 0x158]
mov ecx, dword [esp + 0x154]
inc edx
push edx
mov edx, dword [esp + 0x154]
push eax
mov eax, dword [esp + 0x150]
push ecx
mov ecx, dword [esp + 0x150]
push edx
mov edx, dword [esp + 0x150]
push ebp
push eax
movzx eax, byte [ebx]
push ecx
movzx ecx, byte [eax + 0x4968b0]
push edx
movzx edx, byte [ebx + 1]
add ecx, ebx
add edx, ecx
push edx
push edi
call fcn.00470da0
add esp, 0x28
test eax, eax
jne 0x474781
add ebx, 2
mov dword [ebp + 0x68], ebx
mov eax, 0xfffffc1d
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov eax, dword [esp + 0x15c]
mov ecx, dword [esp + 0x158]
mov edx, dword [esp + 0x154]
mov esi, dword [esp + 0x144]
inc eax
push eax
mov eax, dword [esp + 0x154]
push ecx
mov ecx, dword [esp + 0x150]
push edx
mov edx, dword [esp + 0x14c]
push eax
movzx eax, byte [ebx]
push ebp
push ecx
movzx ecx, byte [eax + 0x4968b0]
push esi
push edx
add ecx, ebx
push ecx
push edi
call fcn.00470da0
add esp, 0x28
test eax, eax
jne 0x474781
mov dword [ebp + 0x94], esi
mov eax, 0xfffffc1e
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov edx, dword [esp + 0x15c]
mov eax, dword [esp + 0x158]
mov ecx, dword [esp + 0x154]
inc edx
push edx
mov edx, dword [esp + 0x154]
push eax
mov eax, dword [esp + 0x150]
push ecx
mov ecx, dword [esp + 0x150]
push edx
mov edx, dword [esp + 0x150]
push ebp
push eax
movzx eax, byte [ebx]
push ecx
movzx ecx, byte [eax + 0x4968b0]
push edx
movzx edx, byte [ebx + 1]
add ecx, ebx
add edx, ecx
push edx
push edi
call fcn.00470da0
add esp, 0x28
test eax, eax
jne 0x474781
add ebx, 2
mov dword [ebp + 0x94], ebx
mov eax, 0xfffffc1e
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov eax, dword [ebp + 0xc]
lea ecx, [esi + esi]
mov edx, dword [eax + ecx*4]
mov ecx, dword [eax + ecx*4 + 4]
mov dword [esp + 0x28], edx
mov edx, dword [ebp + 0x10]
sub edx, esi
lea eax, [eax + edx*4]
mov edx, dword [ebp + 0x7c]
mov dword [esp + 0x20], ecx
mov ecx, dword [eax]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x2c], edx
xor edx, edx
mov ecx, edi
sub ecx, dword [ebp + 0x60]
cmp dword [esp + 0x18], 0x62
mov dword [eax], ecx
mov eax, dword [esp + 0x15c]
setne dl
dec edx
and edx, 2
inc eax
mov dword [esp + 0x158], edx
mov dword [esp + 0x1c], eax
lea ebx, [ebx]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x158]
mov eax, dword [esp + 0x154]
push ecx
mov ecx, dword [esp + 0x154]
push edx
mov edx, dword [esp + 0x150]
push eax
mov eax, dword [esp + 0x150]
push ecx
mov ecx, dword [esp + 0x150]
push ebp
push edx
movzx edx, byte [ebx]
push eax
movzx eax, byte [edx + 0x4968b0]
push ecx
add eax, ebx
push eax
push edi
call fcn.00470da0
add esp, 0x28
test eax, eax
je 0x473a8b
cmp eax, 0xfffffc1e
jne 0x474781
mov ecx, dword [esp + 0x2c]
mov dword [ebp + 0x7c], ecx
movzx edx, byte [ebx + 1]
movzx ecx, byte [ebx + 2]
shl edx, 8
or edx, ecx
add ebx, edx
cmp byte [ebx], 0x54
je 0x473a30
mov edx, dword [ebp + 0xc]
mov edi, dword [esp + 0x28]
lea ecx, [esi + esi]
mov dword [edx + ecx*4], edi
mov edx, dword [ebp + 0xc]
mov edi, dword [esp + 0x20]
mov dword [edx + ecx*4 + 4], edi
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0xc]
sub ecx, esi
mov esi, dword [esp + 0x24]
mov dword [edx + ecx*4], esi
cmp eax, 0xfffffc1e
je 0x473ae1
mov eax, dword [esp + 0x144]
mov dword [ebp + 0x94], eax
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov ecx, dword [esp + 0x15c]
mov edx, dword [esp + 0x158]
mov eax, dword [esp + 0x154]
inc ecx
push ecx
mov ecx, dword [esp + 0x154]
push edx
mov edx, dword [esp + 0x150]
push eax
mov eax, dword [esp + 0x14c]
push ecx
movzx ecx, byte [ebx]
push ebp
push edx
movzx edx, byte [ecx + 0x4968b0]
push esi
push eax
add edx, ebx
push edx
push edi
call fcn.00470da0
add esp, 0x28
test eax, eax
jne 0x474781
mov dword [ebp + 0x94], esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov ecx, dword [esp + 0x15c]
mov edx, dword [esp + 0x154]
mov eax, dword [esp + 0x150]
inc ecx
push ecx
mov ecx, dword [esp + 0x14c]
push 2
push edx
mov edx, dword [esp + 0x150]
push eax
mov eax, dword [esp + 0x150]
push ebp
push ecx
push edx
push eax
push ebx
push edi
call fcn.00470da0
add esp, 0x28
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov eax, dword [esp + 0x140]
cmp edi, eax
jne 0x473bc3
cmp dword [ebp + 0x4c], edx
jne 0x473d93
cmp dword [ebp + 0x50], edx
je 0x473bc3
mov ecx, dword [ebp + 0x80]
add ecx, dword [ebp + 0x60]
cmp eax, ecx
je 0x473d93
mov ecx, dword [esp + 0x148]
mov edx, dword [esp + 0x144]
mov dword [ebp + 0x68], eax
mov eax, dword [esp + 0x18]
neg eax
sbb eax, eax
and eax, 0xfffffc18
mov dword [ebp + 0x6c], edi
mov dword [ebp + 0x78], ecx
mov dword [ebp + 0x94], edx
inc eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
movzx esi, byte [ebx + 1]
movzx ecx, byte [ebx + 2]
mov eax, dword [ebp + 0x5c]
shl esi, 8
or esi, ecx
add esi, eax
cmp esi, eax
je 0x473c1c
movzx edx, byte [esi + 3]
movzx eax, byte [esi + 4]
shl edx, 8
or edx, eax
mov ecx, dword [ebp + 0x8c]
mov dword [esp + 0x30], ecx
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x44], edx
add ebx, 3
lea edx, [esp + 0x30]
mov dword [ebp + 0x8c], edx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x3c], ecx
cmp ecx, 0x1e
jg 0x473c54
lea eax, [esp + 0xb8]
mov dword [esp + 0x38], eax
jmp 0x473c81
lea eax, [ecx*4]
push eax
call dword [0x49d2d0]
add esp, 4
mov dword [esp + 0x38], eax
test eax, eax
jne 0x473c7d
mov eax, 0xfffffffa
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov ecx, dword [esp + 0x3c]
mov edx, dword [ebp + 0xc]
add ecx, ecx
add ecx, ecx
push ecx
push edx
push eax
call fcn.0047b470
mov eax, dword [esp + 0x154]
mov dword [esp + 0x4c], eax
mov al, byte [esi]
add esp, 0xc
cmp al, 0x61
sbb ecx, ecx
and ecx, 0xfffffffe
add ecx, 2
mov dword [esp + 0x158], ecx
mov ecx, dword [esp + 0x15c]
inc ecx
mov dword [esp + 0x1c], ecx
lea ecx, [ecx]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x158]
push edx
mov edx, dword [esp + 0x158]
push ecx
mov ecx, dword [esp + 0x158]
push edx
mov edx, dword [esp + 0x154]
push ecx
mov ecx, dword [esp + 0x154]
push ebp
push edx
mov edx, dword [esp + 0x158]
push ecx
movzx eax, al
movzx ecx, byte [eax + 0x4968b0]
push edx
add ecx, esi
push ecx
push edi
call fcn.00470da0
mov ebx, eax
add esp, 0x28
cmp ebx, 1
je 0x473dd3
cmp ebx, 0xfffffc19
je 0x473dd3
test ebx, ebx
je 0x473d2f
cmp ebx, 0xfffffc1e
jne 0x473dad
mov eax, dword [esp + 0x3c]
lea edx, [esp + 0x30]
lea ecx, [eax*4]
mov eax, dword [ebp + 0xc]
mov dword [ebp + 0x8c], edx
mov edx, dword [esp + 0x38]
push ecx
push edx
push eax
call fcn.0047b470
movzx ecx, byte [esi + 1]
movzx edx, byte [esi + 2]
shl ecx, 8
or ecx, edx
mov al, byte [esi + ecx]
add esi, ecx
add esp, 0xc
cmp al, 0x54
je 0x473cc0
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x30]
lea ecx, [esp + 0xb8]
mov dword [ebp + 0x8c], edx
cmp eax, ecx
je 0x473d93
push eax
call dword [0x49d2d4]
add esp, 4
mov edx, dword [esp + 0x144]
mov dword [ebp + 0x94], edx
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov eax, dword [esp + 0x38]
lea ecx, [esp + 0xb8]
cmp eax, ecx
je 0x473dc6
push eax
call dword [0x49d2d4]
add esp, 4
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov eax, dword [esp + 0x30]
mov dword [ebp + 0x8c], eax
mov eax, dword [esp + 0x38]
lea ecx, [esp + 0xb8]
cmp eax, ecx
je 0x473df6
push eax
call dword [0x49d2d4]
add esp, 4
mov edx, dword [esp + 0x144]
mov dword [ebp + 0x94], edx
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov ecx, dword [esp + 0x15c]
mov edx, dword [esp + 0x154]
inc ecx
push ecx
mov ecx, dword [esp + 0x148]
push eax
mov eax, dword [esp + 0x150]
push edx
mov edx, dword [esp + 0x14c]
push esi
push ebp
push eax
mov eax, dword [esp + 0x38]
push ecx
push edx
push eax
push edi
call fcn.00470da0
add esp, 0x28
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov eax, dword [esp + 0x144]
mov ecx, dword [esp + 0x148]
mov edx, dword [esp + 0x140]
mov dword [ebp + 0x94], eax
mov dword [ebp + 0x6c], edi
mov dword [ebp + 0x78], ecx
mov dword [ebp + 0x68], edx
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov eax, dword [ebp + 0x74]
test eax, eax
je case.0x470e30.115
cmp edi, dword [esp + 0x140]
jbe case.0x470e30.115
mov dword [ebp + 0x54], 1
cmp eax, 1
jle case.0x470e30.115
mov edx, dword [esp + 0x144]
mov dword [ebp + 0x94], edx
mov eax, 0xfffffff4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov eax, dword [ebp + 0x74]
test eax, eax
je 0x473d93
cmp edi, dword [esp + 0x140]
jbe 0x473d93
mov dword [ebp + 0x54], 1
cmp eax, 1
jle 0x473d93
mov ecx, dword [esp + 0x144]
mov dword [ebp + 0x94], ecx
mov eax, 0xfffffff4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov eax, dword [ebp + 0x74]
test eax, eax
je case.0x472c96.14
cmp edi, dword [esp + 0x140]
jbe case.0x472c96.14
mov dword [ebp + 0x54], 1
cmp eax, 1
jle case.0x472c96.14
mov eax, dword [esp + 0x144]
mov dword [ebp + 0x94], eax
mov eax, 0xfffffff4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov eax, dword [ebp + 0x74]
test eax, eax
je 0x473d93
cmp edi, dword [ebp + 0x64]
jb 0x473d93
cmp edi, dword [esp + 0x140]
jbe 0x473d93
mov dword [ebp + 0x54], 1
cmp eax, 1
jle 0x473d93
mov ecx, dword [esp + 0x144]
mov dword [ebp + 0x94], ecx
mov eax, 0xfffffff4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov dword [esp + 0x24], edi
mov dword [esp + 0x14], eax
cmp eax, ecx
jge 0x47401d
jmp 0x473fc0
mov eax, dword [esp + 0x150]
mov ecx, dword [esp + 0x28]
push eax
push ecx
mov ecx, ebp
mov edx, esi
mov eax, edi
call fcn.00470d20
add esp, 8
test eax, eax
je 0x473ff2
mov eax, dword [esp + 0x14]
inc eax
add edi, esi
mov dword [esp + 0x14], eax
cmp eax, dword [esp + 0x18]
jl 0x473fc0
jmp 0x474017
mov eax, dword [ebp + 0x74]
test eax, eax
je 0x474017
cmp edi, dword [ebp + 0x64]
jb 0x474017
cmp edi, dword [esp + 0x140]
jbe 0x474017
mov dword [ebp + 0x54], 1
cmp eax, 1
jg 0x473eb4
cmp edi, dword [esp + 0x24]
jb case.0x472c96.14
mov eax, dword [esp + 0x15c]
inc eax
mov dword [esp + 0x1c], eax
lea esp, [esp]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x154]
mov eax, dword [esp + 0x150]
push ecx
mov ecx, dword [esp + 0x14c]
push 0
push edx
mov edx, dword [esp + 0x150]
push eax
mov eax, dword [esp + 0x150]
push ebp
push ecx
push edx
push eax
push ebx
push edi
call fcn.00470da0
add esp, 0x28
test eax, eax
jne 0x474781
sub edi, esi
cmp edi, dword [esp + 0x24]
jae 0x474030
mov ecx, dword [esp + 0x144]
mov dword [ebp + 0x94], ecx
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov eax, dword [ebp + 0x74]
test eax, eax
je case.0x470e30.115
cmp edi, dword [ebp + 0x64]
jb case.0x470e30.115
jmp 0x473e97
mov eax, dword [ebp + 0x74]
test eax, eax
je 0x473d93
jmp 0x473f6f
mov dword [esp + 0x24], edi
cmp eax, esi
jge 0x47411d
cmp edi, dword [ebp + 0x64]
jae 0x4740f7
movzx eax, byte [edi]
mov ecx, eax
and ecx, 7
mov edx, 1
shl edx, cl
mov ecx, dword [esp + 0x28]
shr eax, 3
mov al, byte [eax + ecx]
test al, dl
je 0x474117
mov eax, dword [esp + 0x14]
inc eax
inc edi
mov dword [esp + 0x14], eax
cmp eax, esi
jl 0x4740c5
jmp 0x474117
mov eax, dword [ebp + 0x74]
test eax, eax
je 0x474117
cmp edi, dword [esp + 0x140]
jbe 0x474117
mov dword [ebp + 0x54], 1
cmp eax, 1
jg 0x473f8c
cmp edi, dword [esp + 0x24]
jb 0x474175
mov esi, dword [esp + 0x15c]
inc esi
jmp 0x474130
mov edx, dword [esp + 0x154]
mov eax, dword [esp + 0x150]
mov ecx, dword [esp + 0x148]
push esi
push 0
push edx
mov edx, dword [esp + 0x150]
push eax
mov eax, dword [esp + 0x150]
push ebp
push ecx
push edx
push eax
push ebx
push edi
call fcn.00470da0
add esp, 0x28
test eax, eax
jne 0x474781
dec edi
cmp edi, dword [esp + 0x24]
jae 0x474130
mov ecx, dword [esp + 0x144]
mov dword [ebp + 0x94], ecx
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov edx, dword [esp + 0x154]
mov eax, dword [esp + 0x150]
mov ecx, dword [esp + 0x148]
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x15c]
inc esi
push esi
push 0
push edx
mov edx, dword [esp + 0x150]
push eax
mov eax, dword [esp + 0x150]
push ebp
push ecx
push edx
push eax
push ebx
push edi
call fcn.00470da0
add esp, 0x28
test eax, eax
jne 0x474781
mov ecx, dword [esp + 0x14]
cmp ecx, dword [esp + 0x18]
jge case.0x472c96.14
cmp edi, dword [ebp + 0x64]
jae 0x473e8c
movzx edx, byte [edi]
mov eax, dword [ebp + 0x30]
movzx ecx, byte [edx + eax]
inc edi
cmp dword [esp + 0x20], ecx
jne case.0x472c96.14
mov edx, dword [esp + 0x154]
mov eax, dword [esp + 0x150]
mov ecx, dword [esp + 0x148]
inc dword [esp + 0x14]
push esi
push 0
push edx
mov edx, dword [esp + 0x150]
push eax
mov eax, dword [esp + 0x150]
push ebp
push ecx
push edx
push eax
push ebx
push edi
call fcn.00470da0
add esp, 0x28
test eax, eax
je 0x4741d9
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov eax, dword [ebp + 0x74]
test eax, eax
je case.0x472c96.14
cmp edi, dword [esp + 0x140]
jbe case.0x472c96.14
mov dword [ebp + 0x54], 1
cmp eax, 1
jle case.0x472c96.14
mov eax, dword [esp + 0x144]
mov dword [ebp + 0x94], eax
mov eax, 0xfffffff4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov eax, dword [esp + 0x154]
mov ecx, dword [esp + 0x150]
mov edx, dword [esp + 0x148]
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x15c]
inc esi
push esi
push 0
push eax
mov eax, dword [esp + 0x150]
push ecx
mov ecx, dword [esp + 0x150]
push ebp
push edx
push eax
push ecx
push ebx
push edi
call fcn.00470da0
add esp, 0x28
test eax, eax
jne 0x474781
mov edx, dword [esp + 0x14]
cmp edx, dword [esp + 0x18]
jge case.0x470e30.115
cmp edi, dword [ebp + 0x64]
jae 0x4740ad
movzx eax, byte [edi]
inc edi
cmp dword [esp + 0x20], eax
jne case.0x470e30.115
mov ecx, dword [esp + 0x154]
mov edx, dword [esp + 0x150]
mov eax, dword [esp + 0x148]
inc dword [esp + 0x14]
push esi
push 0
push ecx
mov ecx, dword [esp + 0x150]
push edx
mov edx, dword [esp + 0x150]
push ebp
push eax
push ecx
push edx
push ebx
push edi
call fcn.00470da0
add esp, 0x28
test eax, eax
je 0x4742dd
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov ecx, dword [esp + 0x150]
mov edx, dword [esp + 0x148]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x15c]
inc eax
push eax
push 0
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x15c]
push eax
mov eax, dword [esp + 0x150]
push ecx
mov ecx, dword [esp + 0x150]
push ebp
push edx
push eax
push ecx
push ebx
push edi
call fcn.00470da0
add esp, 0x28
test eax, eax
jne 0x474781
lea esp, [esp]
cmp dword [esp + 0x14], esi
jge 0x473d93
cmp edi, dword [ebp + 0x64]
jae 0x47424e
movzx edx, byte [edi]
mov eax, dword [ebp + 0x30]
movzx ecx, byte [edx + eax]
inc edi
cmp dword [esp + 0x20], ecx
je 0x473d93
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x154]
mov ecx, dword [esp + 0x150]
inc dword [esp + 0x14]
push edx
mov edx, dword [esp + 0x14c]
push 0
push eax
mov eax, dword [esp + 0x150]
push ecx
mov ecx, dword [esp + 0x150]
push ebp
push edx
push eax
push ecx
push ebx
push edi
call fcn.00470da0
add esp, 0x28
test eax, eax
je 0x4743a0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov ecx, dword [esp + 0x154]
mov edx, dword [esp + 0x150]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x15c]
inc eax
push eax
push 0
push ecx
mov ecx, dword [esp + 0x150]
push edx
mov edx, dword [esp + 0x150]
push ebp
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x15c]
push eax
push ecx
push edx
push ebx
push edi
call fcn.00470da0
add esp, 0x28
test eax, eax
jne 0x474781
cmp dword [esp + 0x14], esi
jge case.0x472c96.14
cmp edi, dword [ebp + 0x64]
jae 0x473e8c
movzx eax, byte [edi]
inc edi
cmp dword [esp + 0x20], eax
je case.0x472c96.14
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x154]
mov eax, dword [esp + 0x150]
inc dword [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x14c]
push 0
push edx
mov edx, dword [esp + 0x150]
push eax
mov eax, dword [esp + 0x150]
push ebp
push ecx
push edx
push eax
push ebx
push edi
call fcn.00470da0
add esp, 0x28
test eax, eax
je 0x474463
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov eax, dword [ebp + 0x74]
test eax, eax
je case.0x472c96.14
cmp edi, dword [esp + 0x140]
jbe case.0x472c96.14
mov dword [ebp + 0x54], edx
cmp eax, edx
jle case.0x472c96.14
mov eax, dword [esp + 0x144]
mov dword [ebp + 0x94], eax
mov eax, 0xfffffff4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov eax, dword [ebp + 0x74]
test eax, eax
je case.0x470e30.115
cmp edi, dword [esp + 0x140]
jbe case.0x470e30.115
mov dword [ebp + 0x54], edx
cmp eax, edx
jmp 0x473eae
mov eax, 0xfffffff2
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov edx, dword [esp + 0x154]
mov eax, dword [esp + 0x150]
mov ecx, dword [esp + 0x148]
mov esi, dword [esp + 0x144]
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x15c]
inc ebx
push ebx
push 0
push edx
mov edx, dword [esp + 0x14c]
push eax
mov eax, dword [esp + 0x14c]
push ebp
push ecx
push esi
push edx
push eax
push edi
call fcn.00470da0
add esp, 0x28
test eax, eax
jne 0x474781
mov ecx, dword [esp + 0x14]
cmp ecx, dword [esp + 0x18]
jge case.0x474629.14
mov edx, dword [ebp + 0x64]
cmp edi, edx
jae 0x47473e
cmp dword [esp + 0x28], 0xc
jne 0x4745ff
mov eax, dword [ebp + 0x18]
test eax, eax
je 0x4745d3
lea esi, [ebp + 0x1c]
push eax
mov ecx, edi
call fcn.004758c0
add esp, 4
test eax, eax
jne case.0x472c96.14
jmp 0x4745f8
mov eax, dword [ebp + 0x1c]
sub edx, eax
cmp edi, edx
ja 0x4745ff
mov dl, byte [edi]
cmp dl, byte [ebp + 0x2c]
jne 0x4745ff
cmp eax, 1
je case.0x472c96.14
mov al, byte [edi + 1]
cmp al, byte [ebp + 0x2d]
je case.0x472c96.14
mov esi, dword [esp + 0x144]
mov ecx, dword [esp + 0x28]
movzx eax, byte [edi]
add ecx, 0xfffffffa
inc edi
cmp ecx, 0xf
ja case.0x474613.15
jmp dword [ecx*4 + 0x474a5c]
add eax, 0xfffffff6
cmp eax, 0x7b
ja case.0x474629.14
movzx ecx, byte [eax + 0x474aac]
jmp dword [ecx*4 + 0x474a9c]
cmp edi, dword [ebp + 0x64]
jae case.0x474613.12
cmp byte [edi], 0xa
jne case.0x474613.12
inc edi
jmp case.0x474613.12
cmp dword [ebp + 0x58], 0
je case.0x474613.12
mov dword [ebp + 0x94], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
cmp eax, 9
je case.0x474629.14
cmp eax, 0x20
je case.0x474629.14
cmp eax, 0xa0
jmp 0x4746eb
cmp eax, 9
je case.0x474613.12
cmp eax, 0x20
je case.0x474613.12
cmp eax, 0xa0
jne case.0x474629.14
jmp case.0x474613.12
cmp eax, 0xa
jb case.0x474613.12
cmp eax, 0xd
jbe case.0x474629.14
cmp eax, 0x85
jmp 0x4746eb
cmp eax, 0xa
jb case.0x474629.14
cmp eax, 0xd
jbe case.0x474613.12
cmp eax, 0x85
jne case.0x474629.14
jmp case.0x474613.12
mov edx, dword [ebp + 0x34]
test byte [eax + edx], 4
jne case.0x474629.14
jmp case.0x474613.12
mov ecx, dword [ebp + 0x34]
test byte [eax + ecx], 4
jmp 0x4746eb
mov edx, dword [ebp + 0x34]
test byte [eax + edx], 1
jne case.0x474629.14
jmp case.0x474613.12
mov ecx, dword [ebp + 0x34]
test byte [eax + ecx], 1
jmp 0x4746eb
mov edx, dword [ebp + 0x34]
test byte [eax + edx], 0x10
jne case.0x474629.14
jmp case.0x474613.12
mov ecx, dword [ebp + 0x34]
test byte [eax + ecx], 0x10
je case.0x474629.14
mov edx, dword [esp + 0x154]
mov eax, dword [esp + 0x150]
mov ecx, dword [esp + 0x148]
inc dword [esp + 0x14]
push ebx
push 0
push edx
mov edx, dword [esp + 0x14c]
push eax
mov eax, dword [esp + 0x14c]
push ebp
push ecx
push esi
push edx
push eax
push edi
call fcn.00470da0
add esp, 0x28
test eax, eax
je 0x474594
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov eax, dword [ebp + 0x74]
test eax, eax
je case.0x474629.14
cmp edi, dword [esp + 0x140]
jbe case.0x474629.14
mov dword [ebp + 0x54], 1
cmp eax, 1
jle case.0x474629.14
mov dword [ebp + 0x94], esi
mov eax, 0xfffffff4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov eax, 0xfffffffb
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret