Function at 0x4fd7f0
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x53098c
mov eax, dword fs:[0]
push eax
sub esp, 0x334
mov eax, dword [0x53a090]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, edx
mov dword [ebp - 0x2bc], edi
mov esi, ecx
mov dword [ebp - 0x278], esi
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
mov edx, dword [eax]
mov dword [ebp - 0x304], edx
mov edx, dword [eax + 4]
mov dword [ebp - 0x2fc], edx
mov edx, dword [eax + 8]
mov dword [ebp - 0x2f0], edx
mov edx, dword [eax + 0xc]
mov dword [ebp - 0x2dc], edx
mov edx, dword [eax + 0x10]
mov eax, dword [eax + 0x14]
mov dword [ebp - 0x31c], eax
mov eax, dword [ecx]
push 0xffffffffffffffff
mov dword [ebp - 0x274], ecx
mov dword [ecx + 0xfbc], 0xffffffff
mov ecx, dword [eax]
push esi
push eax
mov dword [ebp - 0x2f4], edx
call dword [ecx + 0x2c]
mov ebx, dword [ebp + 8]
mov edx, dword [ebp - 0x274]
lea eax, [ebx - 0x69]
mov dword [edx + 0x1f6c], esi
mov byte [ebp - 0x268], 0
mov byte [ebp - 0xd8], 0
cmp eax, 0xc
jbe 0x4fd8be
lea eax, [ebx - 0x50]
cmp eax, 7
ja 0x4fd8b6
add ebx, 0xfffffff6
jmp 0x4fd8c1
lea eax, [ebx - 0x37]
cmp eax, 0xc
ja 0x4fd8c4
add ebx, 0xfffffff1
mov dword [ebp + 8], ebx
mov ecx, ebx
mov byte [ebp - 0x1a0], 0
mov dword [ebp - 0x2f8], 0
mov byte [ebp - 0x2c8], 0
call fcn.004fd1b0
test al, al
je 0x4fd98d
test esi, esi
je 0x4fd986
mov ecx, dword [edx]
dec esi
mov eax, dword [ecx]
push esi
push ecx
call dword [eax + 0x10]
mov edx, dword [ebp - 0x274]
and al, byte [edx + 0xfbc]
movsx eax, al
cmp eax, 1
je 0x4fd939
cmp eax, 2
je 0x4fd939
cmp eax, 0xe
je 0x4fd939
cmp eax, 3
je 0x4fd939
cmp eax, 4
je 0x4fd939
cmp eax, 5
je 0x4fd939
cmp eax, 8
je 0x4fd939
cmp eax, 6
je 0x4fd939
cmp eax, 7
jne 0x4fd97a
mov eax, dword [edx]
push esi
mov ecx, dword [eax]
push eax
call dword [ecx + 0x14]
mov ecx, dword [ebp - 0x274]
push eax
mov ecx, dword [ecx]
push ecx
mov edx, dword [ecx]
call dword [edx + 0x18]
mov esi, dword [ebp - 0x278]
mov edx, dword [ebp - 0x274]
sub esi, eax
add edi, esi
mov esi, eax
mov dword [ebp - 0x278], esi
test eax, eax
jne 0x4fd8f3
mov dword [ebp - 0x2bc], edi
xor ebx, ebx
jmp 0x4fda43
mov esi, dword [ebp - 0x278]
mov dword [ebp - 0x2bc], edi
xor ebx, ebx
jmp 0x4fda43
cmp ebx, 0x77
je 0x4fd9a5
cmp ebx, 0x78
je 0x4fd9a5
cmp ebx, 0x7e
je 0x4fd9a5
cmp ebx, 0x68
jne 0x4fda46
test esi, esi
je 0x4fda3b
dec esi
mov edi, edi
cmp ebx, 0x77
je 0x4fd9fb
cmp ebx, 0x78
je 0x4fd9fb
cmp ebx, 0x7e
je 0x4fd9fb
cmp ebx, 0x68
je 0x4fd9fb
cmp esi, dword [edx + 0xfa8]
jl 0x4fd9d4
cmp esi, dword [edx + 0xfac]
jl 0x4fd9e2
push esi
mov ecx, edx
call fcn.004d7350
mov edx, dword [ebp - 0x274]
mov eax, edx
sub eax, dword [edx + 0xfa8]
mov al, byte [eax + esi + 4]
movsx eax, al
cmp eax, 0xd
je 0x4fda2f
cmp eax, 0xa
je 0x4fda2f
mov ebx, dword [ebp - 0x278]
mov eax, dword [edx]
dec ebx
mov ecx, dword [eax]
push ebx
push eax
mov dword [ebp - 0x278], ebx
dec esi
inc edi
call dword [ecx + 0x10]
mov edx, dword [ebp - 0x274]
movsx ebx, al
movsx eax, byte [edx + 0xfbc]
and ebx, eax
mov eax, dword [ebp - 0x278]
test eax, eax
jne 0x4fd9b0
mov esi, dword [ebp - 0x278]
mov dword [ebp - 0x2bc], edi
mov eax, esi
neg eax
sbb eax, eax
and ebx, eax
mov dword [ebp + 8], ebx
mov eax, dword [edx]
push 0xffffffffffffffff
mov dword [edx + 0xfbc], 0xffffffff
mov ecx, dword [eax]
push esi
push eax
call dword [ecx + 0x2c]
mov esi, dword [ebp - 0x274]
mov edx, dword [ebp - 0x278]
mov eax, dword [esi]
mov dword [esi + 0x1f6c], edx
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x14]
mov dword [ebp - 0x2d4], eax
test eax, eax
jle 0x4fda94
mov edx, dword [esi]
lea ecx, [eax - 1]
mov esi, dword [edx]
push ecx
push edx
call dword [esi + 0x24]
mov esi, dword [ebp - 0x274]
jmp 0x4fdaac
mov ecx, dword [esi + 0x1f74]
push 1
push 0x43f5f0
call fcn.0050d4c0
or eax, 0x10
shl eax, 4
mov ecx, eax
sar ecx, 2
and ecx, 0xffffff01
mov dword [ebp - 0x2c4], ecx
mov ecx, eax
sar ecx, 3
and ecx, 0xffffff01
mov dword [ebp - 0x2b8], ecx
mov ecx, eax
sar ecx, 4
and ecx, 0xf
mov dword [ebp - 0x2c0], ecx
mov ecx, eax
mov edx, eax
sar ecx, 8
and ecx, 0xf
sar eax, 0xc
and eax, 0xff
and edx, 3
mov dword [ebp - 0x2e4], ecx
mov ecx, ebx
mov dword [ebp - 0x284], edx
mov byte [ebp - 0x29e], 0
mov dword [ebp - 0x2b4], eax
call fcn.004fc470
mov dword [ebp - 0x28c], eax
cmp edx, 1
jne 0x4fdb2b
cmp ebx, 9
jne 0x4fdb2b
mov dword [ebp - 0x28c], 8
mov ecx, dword [ebp - 0x2b4]
call fcn.004fc470
mov ecx, dword [esi + 0x1f74]
push 0
push 0x432200
mov dword [ebp - 0x2d8], eax
call fcn.0050d4c0
test eax, eax
setne al
mov byte [ebp - 0x28d], al
test al, al
je 0x4fdb7a
mov ecx, dword [esi + 0x1f74]
push 0
push 0x4321d8
call fcn.0050d4c0
mov byte [ebp - 0x299], 1
test eax, eax
jne 0x4fdb81
mov byte [ebp - 0x299], 0
cmp byte [ebp - 0x28d], 0
je 0x4fdba7
mov ecx, dword [esi + 0x1f74]
push 1
push 0x43f608
call fcn.0050d4c0
mov byte [ebp - 0x29f], 1
test eax, eax
jne 0x4fdbae
mov byte [ebp - 0x29f], 0
mov ecx, dword [esi + 0x1f74]
push 1
push 0x4321e0
call fcn.0050d4c0
test eax, eax
setne byte [ebp - 0x2cd]
cmp byte [ebp - 0x299], 0
je 0x4fdbef
mov ecx, dword [esi + 0x1f74]
push 0
push 0x43f620
call fcn.0050d4c0
mov byte [ebp - 0x2ad], 1
test eax, eax
jne 0x4fdbf6
mov byte [ebp - 0x2ad], 0
cmp byte [ebp - 0x299], 0
je 0x4fdc1c
mov ecx, dword [esi + 0x1f74]
push 0
push 0x43f638
call fcn.0050d4c0
mov byte [ebp - 0x2a0], 1
test eax, eax
jne 0x4fdc23
mov byte [ebp - 0x2a0], 0
mov ecx, dword [esi + 0x1f74]
push 0
push 0x43f650
call fcn.0050d4c0
mov ecx, dword [esi + 0x1f74]
push 1
test eax, eax
push 0x4320dc
setne byte [ebp - 0x308]
call fcn.0050d4c0
mov ecx, dword [esi + 0x1f74]
push 0
test eax, eax
push 0x43f66c
setne byte [ebp - 0x30c]
call fcn.0050d4c0
mov ecx, dword [esi + 0x1f74]
push 0
test eax, eax
push 0x43f67c
setne byte [ebp - 0x29d]
call fcn.0050d4c0
push 1
push ecx
push 0x43f690
test eax, eax
push 7
lea ecx, [ebp - 0x318]
setne byte [ebp - 0x2a5]
call fcn.004d8e70
push 1
push ecx
push 0x43f698
push 7
lea ecx, [ebp - 0x328]
mov dword [ebp - 4], 0
call fcn.004d8e70
push 1
push ecx
push 0x43f6a0
push 7
lea ecx, [ebp - 0x340]
mov byte [ebp - 4], 1
call fcn.004d8e70
push 0
push ecx
push 0x43f6a8
push 0
lea ecx, [ebp - 0x334]
mov byte [ebp - 4], 2
call fcn.004d8e70
push dword [ebp - 0x2d4]
mov byte [ebp - 4], 3
mov eax, dword [esi]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x1c]
and eax, 0xfff
cmp dword [ebp - 0x28c], 1
mov esi, 0x20
mov dword [ebp - 0x2e8], eax
mov dword [ebp - 0x280], eax
mov eax, dword [ebp - 0x278]
mov dword [ebp - 0x294], 0
mov dword [ebp - 0x2e0], 0
mov dword [ebp - 0x300], esi
jne 0x4fdda1
test eax, eax
je 0x4fdda1
lea esi, [eax - 1]
test esi, esi
je 0x4fdd9c
mov edi, dword [ebp - 0x274]
mov eax, dword [edi]
push esi
mov ecx, dword [eax]
push eax
call dword [ecx + 0x10]
movsx ecx, al
movsx eax, byte [edi + 0xfbc]
and ecx, eax
lea eax, [ecx - 0x29]
cmp eax, 3
ja 0x4fdd74
dec esi
jne 0x4fdd54
mov edi, dword [ebp - 0x2bc]
cmp ecx, 0x32
jne 0x4fdd96
mov ecx, dword [ebp - 0x274]
push 0x20
push esi
call fcn.004d7410
movzx eax, al
mov dword [ebp - 0x300], eax
mov eax, dword [ebp - 0x278]
mov esi, 0x20
mov edx, dword [ebp - 0x274]
lea ecx, [eax + edi]
mov dword [edx + 0x1f68], eax
mov dword [ebp - 0x2cc], ecx
cmp eax, ecx
jge 0x501237
mov edi, 0x20
jmp 0x4fddd0
mov dword [ebp - 0x2bc], esi
mov dword [ebp - 0x288], edi
cmp edi, 0x20
je 0x4fde00
cmp edi, 9
jl 0x4fddeb
cmp edi, 0xd
jle 0x4fde00
cmp ebx, 0x2a
je 0x4fde00
cmp ebx, 0x2b
je 0x4fde00
cmp ebx, 0x2c
je 0x4fde00
mov dword [ebp - 0x300], edi
cmp eax, dword [edx + 0xfa8]
jl 0x4fde10
cmp eax, dword [edx + 0xfac]
jl 0x4fde1e
push eax
mov ecx, edx
call fcn.004d7350
mov edx, dword [ebp - 0x274]
mov ecx, dword [edx + 0xfa8]
mov edi, dword [ebp - 0x278]
mov eax, edx
sub eax, ecx
movzx esi, byte [eax + edi + 4]
lea eax, [edi + 1]
mov dword [ebp - 0x270], esi
mov dword [ebp - 0x298], eax
cmp eax, ecx
jl 0x4fde4e
cmp eax, dword [edx + 0xfac]
jl 0x4fde74
push eax
mov ecx, edx
call fcn.004d7350
mov edx, dword [ebp - 0x274]
mov eax, dword [ebp - 0x298]
mov ecx, dword [edx + 0xfa8]
cmp eax, ecx
jl 0x4fde8a
cmp eax, dword [edx + 0xfac]
jge 0x4fde8a
mov eax, edx
mov edx, dword [ebp - 0x298]
sub eax, ecx
mov al, byte [eax + edx + 4]
mov edx, dword [ebp - 0x274]
jmp 0x4fde8c
mov al, 0x20
movzx eax, al
mov dword [ebp - 0x26c], eax
lea eax, [edi + 2]
mov dword [ebp - 0x2ac], eax
cmp eax, ecx
jl 0x4fdeaa
cmp eax, dword [edx + 0xfac]
jl 0x4fded0
push eax
mov ecx, edx
call fcn.004d7350
mov edx, dword [ebp - 0x274]
mov eax, dword [ebp - 0x2ac]
mov ecx, dword [edx + 0xfa8]
cmp eax, ecx
jl 0x4fdee0
cmp eax, dword [edx + 0xfac]
jge 0x4fdee0
mov eax, edx
sub eax, ecx
mov ecx, dword [ebp - 0x2ac]
mov al, byte [eax + ecx + 4]
jmp 0x4fdee2
mov al, 0x20
movzx eax, al
mov dword [ebp - 0x2a4], eax
mov eax, dword [edx]
push esi
mov ecx, dword [eax]
push eax
call dword [ecx + 0x48]
test al, al
je 0x4fdf1a
mov eax, dword [ebp - 0x298]
mov edx, dword [ebp - 0x274]
mov edi, dword [ebp - 0x270]
mov esi, 0x20
mov dword [ebp - 0x278], eax
jmp 0x50121c
cmp esi, 0x20
je 0x4fdf29
cmp esi, 9
jl 0x4fdf32
cmp esi, 0xd
jg 0x4fdf32
cmp byte [ebp - 0x2cd], 0
jne 0x4fdf41
cmp byte [ebp - 0x299], 0
je 0x4fdf41
inc dword [ebp - 0x294]
cmp esi, 0x20
je 0x4fdf56
cmp esi, 9
jl 0x4fdf50
cmp esi, 0xd
jle 0x4fdf56
inc dword [ebp - 0x2e0]
mov edx, dword [ebp - 0x284]
mov ecx, ebx
call fcn.004fc4d0
cmp byte [ebp - 0x299], 0
mov dword [ebp - 0x27c], eax
je 0x4fdf8b
mov ecx, dword [ebp - 0x28c]
dec ecx
je 0x4fe108
sub ecx, 2
je 0x4fdfba
dec ecx
je 0x4fe108
mov ecx, dword [ebp - 0x280]
mov al, byte [ebp - 0x29d]
cmp esi, 0xd
jne 0x4fe299
mov edx, dword [ebp - 0x26c]
cmp edx, 0xa
jne 0x4fe067
mov edi, dword [ebp - 0x274]
jmp 0x4fe2ae
mov al, byte [ebp - 0x29d]
cmp ebx, 0x5c
je 0x4fe28e
test al, al
jne 0x4fe28e
cmp esi, 0x3a
jne 0x4fe002
mov edx, dword [ebp - 0x26c]
cmp edx, 0xa
je 0x4fdff7
cmp edx, 0xd
jne 0x4fe40e
cmp dword [ebp - 0x2a4], 0xa
jne 0x4fe40e
inc dword [ebp - 0x280]
jmp 0x4fe40e
cmp esi, 0xa
jne 0x4fe28e
mov edx, dword [ebp - 0x26c]
cmp edx, 0xd
jne 0x4fe01e
cmp dword [ebp - 0x2a4], esi
jmp 0x4fe021
cmp edx, 0xa
je 0x4fe061
mov ecx, dword [ebp - 0x280]
mov esi, ecx
and esi, 0xfffffbff
shl esi, 3
test esi, esi
jle 0x4fe067
mov edi, dword [ebp - 0x298]
mov edi, edi
mov ecx, dword [ebp - 0x274]
push 0x20
push edi
call fcn.004d7410
cmp al, 9
jne 0x4fe057
sub esi, 8
jmp 0x4fe05c
cmp al, 0x20
jne 0x4fe0ca
dec esi
inc edi
test esi, esi
jg 0x4fe040
mov ecx, dword [ebp - 0x280]
cmp byte [ebp - 0x299], 0
je 0x4fe2d6
mov eax, dword [ebp - 0x294]
mov esi, dword [ebp - 0x2e8]
mov edx, esi
test eax, eax
jne 0x4fe08c
or edx, 0x1000
cmp ecx, esi
jle 0x4fe09a
test eax, eax
jle 0x4fe09a
or edx, 0x2000
mov edi, dword [ebp - 0x274]
push edx
mov eax, dword [edi]
push dword [ebp - 0x2d4]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x20]
mov ecx, dword [ebp - 0x280]
mov dword [ebp - 0x294], 0
mov dword [ebp - 0x2e8], ecx
jmp 0x4fe2dc
mov ecx, dword [ebp - 0x280]
test esi, esi
jle 0x4fe067
mov eax, esi
cdq
and edx, 7
add eax, edx
sar eax, 3
neg eax
add ecx, eax
mov dword [ebp - 0x280], ecx
and esi, 0x80000007
jns 0x4fe0f6
dec esi
or esi, 0xfffffff8
inc esi
je 0x4fe067
dec ecx
mov dword [ebp - 0x280], ecx
jmp 0x4fe067
cmp ebx, 0x7c
je 0x4fe257
cmp ebx, 0x7d
je 0x4fe24e
cmp ebx, 0x2a
je 0x4fe257
cmp ebx, 0x2b
je 0x4fe24e
cmp ebx, 0x2c
je 0x4fe24e
mov ecx, ebx
call fcn.004fc5c0
test al, al
jne 0x4fe24e
cmp esi, 0x23
jne 0x4fe1f1
mov esi, dword [ebp - 0x298]
mov edi, dword [ebp - 0x274]
cmp esi, dword [ebp - 0x2cc]
jge 0x4fe186
mov ebx, dword [ebp - 0x2cc]
push 0x20
push esi
mov ecx, edi
call fcn.004d7410
movsx eax, al
cmp eax, 0x20
je 0x4fe17e
cmp eax, 9
jne 0x4fe183
inc esi
cmp esi, ebx
jl 0x4fe167
mov ebx, dword [ebp + 8]
push 0x43e0d4
push esi
mov ecx, edi
call fcn.004d7460
test al, al
jne 0x4fe1da
push 0x43e0b0
push esi
mov ecx, edi
call fcn.004d7460
test al, al
jne 0x4fe1da
push 0x43e0dc
push esi
mov ecx, edi
call fcn.004d7460
mov esi, dword [ebp - 0x270]
mov edx, dword [ebp - 0x26c]
test al, al
mov al, byte [ebp - 0x29d]
je 0x4fe2ae
dec dword [ebp - 0x280]
jmp 0x4fe2ae
inc dword [ebp - 0x280]
mov esi, dword [ebp - 0x270]
mov al, byte [ebp - 0x29d]
jmp 0x4fe2a8
cmp esi, 0x7b
je 0x4fe220
cmp esi, 0x7d
je 0x4fe238
cmp byte [ebp - 0x2ad], 0
je 0x4fdf8b
cmp esi, 0x2f
jne 0x4fdf8b
mov edx, dword [ebp - 0x26c]
cmp edx, 0x2a
jne 0x4fe35f
mov ecx, dword [ebp - 0x280]
mov eax, 1
add ecx, eax
mov dword [ebp - 0x280], ecx
jmp 0x4fdf91
mov ecx, dword [ebp - 0x280]
or eax, 0xffffffff
add ecx, eax
mov dword [ebp - 0x280], ecx
jmp 0x4fdf91
cmp ebx, 0x2a
jne 0x4fdf8b
cmp byte [ebp - 0x2ad], 0
je 0x4fe288
cmp esi, 0x2a
jne 0x4fdf8b
mov edx, dword [ebp - 0x26c]
mov edi, dword [ebp - 0x274]
mov al, byte [ebp - 0x29d]
cmp edx, 0x2f
jne 0x4fe2ae
dec dword [ebp - 0x280]
jmp 0x4fe2ae
mov al, byte [ebp - 0x29d]
mov ecx, dword [ebp - 0x280]
jmp 0x4fdf97
cmp esi, 0xa
je 0x4fe067
mov edi, dword [ebp - 0x274]
mov edx, dword [ebp - 0x26c]
test al, al
je 0x4fe3ab
cmp esi, 0x23
jne 0x4fe370
cmp edx, esi
jne 0x4fe370
mov dword [ebp - 0x2f8], 1
jmp 0x4fe408
mov edi, dword [ebp - 0x274]
mov eax, dword [ebp - 0x2b4]
movzx ecx, al
mov eax, dword [ebp - 0x2e4]
and eax, 0xf
shl ecx, 4
or ecx, eax
mov eax, dword [ebp - 0x2c0]
and eax, 0xf
shl ecx, 4
or ecx, eax
mov eax, dword [ebp - 0x2b8]
mov edx, dword [edi]
movzx eax, al
mov esi, dword [edx]
and eax, 1
add ecx, ecx
or ecx, eax
mov eax, dword [ebp - 0x2c4]
movzx eax, al
add ecx, ecx
and eax, 1
or ecx, eax
mov eax, dword [ebp - 0x284]
shl ecx, 2
and eax, 3
or ecx, eax
push ecx
push dword [ebp - 0x2d4]
push edx
call dword [esi + 0x28]
inc dword [ebp - 0x2d4]
mov esi, dword [ebp - 0x270]
mov al, byte [ebp - 0x29d]
mov dword [ebp - 0x2e0], 0
jmp 0x4fe2a8
mov edi, dword [ebp - 0x274]
mov al, byte [ebp - 0x29d]
jmp 0x4fe2ae
cmp dword [ebp - 0x2f8], 0
je 0x4fe3ab
cmp esi, 0xd
je 0x4fe383
cmp esi, 0xa
jne 0x4fe3ab
mov eax, dword [ebp - 0x278]
push 0x5c
push eax
mov ecx, edi
mov dword [ebp - 0x2f8], 0
call fcn.004d7520
mov al, byte [ebp - 0x29d]
mov ebx, 0x5b
mov dword [ebp + 8], ebx
mov edx, dword [ebp - 0x26c]
cmp esi, 0xd
jne 0x4fe3bd
cmp edx, 0xa
jne 0x4fe3c2
jmp 0x4fe408
cmp esi, 0xa
jne 0x4fe408
test al, al
je 0x4fe511
mov ecx, 0x43e0f8
lea eax, [ebp - 0x1a0]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4fe3f5
test dl, dl
je 0x4fe3f1
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4fe3f5
add eax, 2
add ecx, 2
test dl, dl
jne 0x4fe3d5
xor eax, eax
jmp 0x4fe3fa
sbb eax, eax
or eax, 1
mov edx, dword [ebp - 0x26c]
test eax, eax
jne 0x4fe511
mov edi, dword [ebp - 0x278]
mov ecx, dword [ebp - 0x284]
cmp ecx, 1
jne 0x4fe52e
cmp esi, 0x3c
jne 0x4fe52e
cmp edx, 0x2f
jne 0x4fe52e
lea eax, [ebx - 6]
cmp eax, 0x77
ja case.0x4fe43e.8
movzx eax, byte [eax + 0x5013d0]
jmp dword [eax*4 + 0x5013c8]
cmp ebx, 0x2b
je 0x4fe4c3
cmp byte [ebp + 0x14], 0
jne 0x4fe4c3
xor eax, eax
cmp ebx, 9
setne al
dec eax
and eax, 0x43e770
jne 0x4fe4c8
push dword [ebp - 0x27c]
mov eax, dword [ebp - 0x278]
mov ecx, dword [ebp - 0x274]
dec eax
push eax
call fcn.004d7520
mov eax, dword [ebp - 0x2ac]
mov edi, dword [ebp - 0x270]
mov ebx, 2
add dword [ebp - 0x294], ebx
mov dword [ebp + 8], ebx
mov dword [ebp - 0x284], 0
mov dword [ebp - 0x28c], 0
mov dword [ebp - 0x2e4], 1
mov dword [ebp - 0x278], eax
mov byte [ebp - 0x2b8], 1
jmp 0x501210
mov eax, 0x43f5c0
mov edi, dword [ebp - 0x2ac]
mov edi, edi
movsx esi, byte [eax]
inc eax
mov dword [ebp - 0x2ec], eax
test esi, esi
je 0x4fe460
mov ecx, dword [ebp - 0x274]
push 0x20
push edi
call fcn.004d7410
movsx ecx, al
lea eax, [ecx - 0x41]
cmp eax, 0x19
ja 0x4fe4fa
add ecx, 0x20
mov eax, dword [ebp - 0x2ec]
inc edi
cmp esi, ecx
je 0x4fe4d0
mov esi, dword [ebp - 0x270]
mov edx, dword [ebp - 0x26c]
mov ecx, dword [ebp - 0x284]
cmp ebx, 0x7f
ja case.default.0x4fe527
movzx eax, byte [ebx + 0x501514]
jmp dword [eax*4 + 0x501448]
cmp ebx, 0x10
je 0x4fe675
mov ecx, ebx
call fcn.004fd4c0
test al, al
jne 0x4fe675
cmp ebx, 0x7c
je 0x4fe675
cmp ebx, 0x7d
je 0x4fe675
cmp esi, 0x3c
jne 0x4fe675
cmp edx, 0x3f
jne 0x4fe675
call fcn.004fd1f0
test al, al
jne 0x4fe675
mov eax, dword [ebp - 0x28c]
mov esi, dword [ebp - 0x274]
mov edx, dword [ebp - 0x2ac]
mov dword [ebp - 0x2d8], eax
xor eax, eax
cmp byte [ebp + 0x14], al
mov ecx, esi
setne al
add eax, 4
push eax
lea eax, [edi + 6]
push eax
call fcn.004fc2a0
add esp, 8
mov dword [ebp - 0x28c], eax
cmp eax, 4
je 0x4fe5cc
mov ecx, ebx
call fcn.004fc5c0
test al, al
jne 0x4febfc
cmp ebx, 9
je 0x4febfc
push dword [ebp - 0x27c]
lea eax, [edi - 1]
push eax
mov ecx, esi
call fcn.004d7520
mov edx, dword [esi + 0x1f68]
inc dword [ebp - 0x294]
mov dword [ebp - 0x2b4], ebx
mov ebx, dword [ebp - 0x298]
add edx, 2
lea eax, [ebx + 6]
push eax
mov ecx, esi
call fcn.004fc410
mov edi, dword [ebp - 0x28c]
add ebx, eax
add esp, 4
mov dword [ebp - 0x278], ebx
mov ecx, esi
cmp edi, 5
jne 0x4fe61f
push 0xc
jmp 0x4fe621
push 0x12
push ebx
call fcn.004d7520
mov ecx, edi
call fcn.004fd0b0
mov ebx, eax
mov eax, dword [ebp - 0x284]
dec eax
neg eax
sbb eax, eax
add eax, 3
cmp byte [ebp - 0x29f], 0
mov dword [ebp + 8], ebx
mov dword [ebp - 0x284], eax
je 0x4fe65b
cmp edi, 5
je 0x4fe65b
inc dword [ebp - 0x280]
mov eax, dword [ebp - 0x278]
push 0x20
push eax
mov ecx, esi
call fcn.004d7410
movzx edi, al
mov edx, esi
jmp 0x501216
mov cl, byte [ebp - 0x29d]
mov eax, dword [ebp - 0x28c]
test cl, cl
je 0x4fe838
test eax, eax
jne 0x4fe838
cmp esi, 0x3c
jne 0x4fe6a3
cmp edx, 0x25
jne 0x4fe6a3
mov edx, dword [ebp - 0x2ac]
jmp 0x4fe714
cmp dword [ebp - 0x2e0], 1
jne 0x4fe6d3
cmp esi, 0x25
je 0x4fe6bf
cmp esi, 0x2f
jne 0x4fe6d3
cmp edx, 0x25
jne 0x4fe838
mov esi, dword [ebp - 0x274]
mov eax, 0x25
mov word [ebp - 0x1a0], ax
jmp 0x4fe72c
cmp esi, 0x24
jne 0x4fe6f2
cmp edx, 0x7b
jne 0x4fe838
mov esi, dword [ebp - 0x274]
mov eax, edx
mov word [ebp - 0x1a0], ax
jmp 0x4fe72c
cmp esi, 0x3c
jne 0x4fe838
cmp edx, 0x2f
jne 0x4fe838
cmp dword [ebp - 0x2a4], 0x25
jne 0x4fe838
lea edx, [edi + 3]
mov esi, dword [ebp - 0x274]
push ecx
lea eax, [ebp - 0x1a0]
push eax
mov ecx, esi
call fcn.004fc1e0
add esp, 8
push dword [ebp - 0x27c]
lea eax, [edi - 1]
push eax
mov ecx, esi
call fcn.004d7520
mov eax, dword [ebp - 0x284]
mov edi, dword [ebp - 0x294]
dec eax
neg eax
sbb eax, eax
add eax, 3
cmp dword [ebp - 0x26c], 0x2f
mov dword [ebp - 0x2b4], ebx
mov dword [ebp - 0x284], eax
jne 0x4fe77d
mov eax, dword [ebp - 0x2ac]
add edi, 2
mov dword [ebp - 0x278], eax
mov dword [ebp - 0x294], edi
jmp 0x4fe7a1
cmp dword [ebp - 0x270], 0x25
je 0x4fe79b
mov eax, dword [ebp - 0x298]
inc edi
mov dword [ebp - 0x278], eax
mov dword [ebp - 0x294], edi
jmp 0x4fe7a1
mov eax, dword [ebp - 0x278]
push 0xf
mov ebx, 0x5a
push eax
mov ecx, esi
mov dword [ebp + 8], ebx
mov dword [ebp - 0x28c], 3
call fcn.004d7520
mov eax, dword [ebp - 0x270]
cmp eax, 0x25
je 0x4fe821
cmp eax, 0x24
je 0x4fe821
cmp eax, 0x2f
je 0x4fe821
lea ecx, [ebp - 0x1a0]
lea edx, [ecx + 1]
jmp 0x4fe7e0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4fe7e0
sub ecx, edx
add dword [ebp - 0x278], ecx
add edi, ecx
mov ecx, dword [ebp - 0x2dc]
lea eax, [ebp - 0x1a0]
push eax
mov dword [ebp - 0x294], edi
call fcn.0050e250
test al, al
mov eax, dword [ebp - 0x278]
mov ecx, esi
je 0x4fe819
push 0x60
jmp 0x4fe81b
push 2
push eax
call fcn.004d7520
push 0x20
push dword [ebp - 0x278]
mov ecx, esi
call fcn.004d7410
movzx edi, al
jmp 0x501210
mov ch, byte [ebp - 0x2a5]
test ch, ch
je 0x4fe9b6
cmp ebx, 9
je 0x4fe8e5
cmp esi, 0x7b
jne 0x4fe956
cmp edx, 0x23
jne 0x4fe956
push dword [ebp - 0x27c]
mov esi, dword [ebp - 0x274]
lea eax, [edi - 1]
push eax
mov ecx, esi
call fcn.004d7520
mov eax, dword [ebp - 0x28c]
mov dword [ebp - 0x2b4], ebx
mov dword [ebp - 0x2d8], eax
mov dword [ebp - 0x28c], 8
mov ebx, 9
mov eax, dword [ebp - 0x284]
dec eax
neg eax
sbb eax, eax
inc dword [ebp - 0x294]
add eax, 3
mov dword [ebp - 0x284], eax
mov eax, dword [ebp - 0x298]
push 0xf
push eax
mov ecx, esi
mov dword [ebp + 8], ebx
mov dword [ebp - 0x278], eax
call fcn.004d7520
push 0x20
push dword [ebp - 0x278]
mov ecx, esi
call fcn.004d7410
movzx edi, al
mov edx, esi
jmp 0x501216
cmp esi, 0x23
jne 0x4fe956
cmp edx, 0x7d
jne 0x4fe956
push dword [ebp - 0x27c]
mov ecx, dword [ebp - 0x274]
lea eax, [edi - 1]
push eax
call fcn.004d7520
mov eax, dword [ebp - 0x298]
mov ecx, dword [ebp - 0x274]
inc dword [ebp - 0x294]
push 0xf
push eax
mov dword [ebp - 0x278], eax
call fcn.004d7520
mov ebx, dword [ebp - 0x2b4]
mov edi, dword [ebp - 0x270]
xor eax, eax
cmp dword [ebp - 0x284], 3
mov dword [ebp + 8], ebx
sete al
mov dword [ebp - 0x284], eax
mov eax, dword [ebp - 0x2d8]
mov dword [ebp - 0x28c], eax
jmp 0x501210
cmp eax, 3
je 0x4fe9b6
cmp esi, 0x7b
jne 0x4fe9b6
cmp edx, 0x25
je 0x4fe96d
cmp edx, esi
jne 0x4fe9b6
mov eax, esi
jmp 0x4fe972
mov eax, 0x25
push dword [ebp - 0x27c]
mov esi, dword [ebp - 0x274]
mov word [ebp - 0x2c8], ax
lea eax, [edi - 1]
push eax
mov ecx, esi
call fcn.004d7520
mov ecx, dword [ebp - 0x28c]
mov dword [ebp - 0x2b4], ebx
mov ebx, 0x5a
mov dword [ebp - 0x2d8], ecx
mov dword [ebp - 0x28c], 3
jmp 0x4fe899
test cl, cl
jne 0x4feb04
test ch, ch
jne 0x4feb04
mov ecx, ebx
call fcn.004fc6b0
test al, al
jne 0x4feb04
cmp esi, 0x3c
jne 0x4feb04
cmp edx, 0x25
jne 0x4feb04
mov ecx, ebx
call fcn.004fd4c0
test al, al
jne 0x4feb04
push dword [ebp - 0x27c]
lea eax, [edi - 1]
mov edi, dword [ebp - 0x274]
push eax
mov ecx, edi
call fcn.004d7520
mov esi, dword [ebp - 0x284]
mov eax, dword [ebp - 0x2a4]
dec esi
neg esi
sbb esi, esi
add esi, 3
mov dword [ebp - 0x2b4], ebx
mov dword [ebp - 0x284], esi
cmp eax, 0x40
jne 0x4fea4f
mov edx, dword [ebp - 0x2ac]
add dword [ebp - 0x294], 2
mov ebx, 0x10
mov dword [ebp - 0x278], edx
mov dword [ebp + 8], ebx
jmp 0x4feaca
cmp eax, 0x2d
jne 0x4fea94
mov esi, dword [ebp - 0x278]
push 0x20
add esi, 3
push esi
mov ecx, edi
call fcn.004d7410
cmp al, 0x2d
jne 0x4feaa8
push 0xf
push esi
mov ecx, edi
call fcn.004d7520
mov ebx, 0x14
mov edx, edi
mov edi, dword [ebp - 0x270]
mov dword [ebp + 8], ebx
mov dword [ebp - 0x28c], 2
jmp 0x501216
cmp eax, 0x3d
jne 0x4feaa8
mov edx, dword [ebp - 0x2ac]
add dword [ebp - 0x294], 2
jmp 0x4feab4
mov edx, dword [ebp - 0x298]
inc dword [ebp - 0x294]
mov ecx, dword [ebp - 0x2c0]
mov dword [ebp - 0x278], edx
call fcn.004fd0b0
mov ebx, eax
mov dword [ebp + 8], eax
push 0xf
push edx
mov ecx, edi
mov dword [ebp - 0x28c], 2
call fcn.004d7520
cmp byte [ebp - 0x29f], 0
je 0x4feaed
inc dword [ebp - 0x280]
push 0x20
push dword [ebp - 0x278]
mov ecx, edi
call fcn.004d7410
movzx edi, al
jmp 0x501210
mov edx, dword [ebp - 0x28c]
test edx, edx
je 0x4feb17
cmp edx, 5
jne 0x4fec09
cmp dword [ebp - 0x288], 0x3c
jne 0x4fec09
cmp esi, 0x21
jne 0x4fec09
mov ecx, dword [ebp - 0x27c]
cmp ecx, 0x11
je 0x4fec09
cmp ecx, 9
je 0x4fec09
cmp ecx, 0x1d
je 0x4fec09
call fcn.004fd1f0
test al, al
jne 0x4fec09
mov esi, dword [ebp - 0x274]
mov dword [ebp - 0x2b4], ebx
mov ebx, dword [ebp - 0x278]
push ecx
lea eax, [ebx - 2]
push eax
mov ecx, esi
call fcn.004d7520
cmp dword [ebp - 0x26c], 0x2d
jne 0x4febaa
cmp dword [ebp - 0x2a4], 0x2d
jne 0x4febaa
mov edi, dword [ebp - 0x2ac]
mov ebx, 9
push ebx
push edi
mov ecx, esi
mov dword [ebp + 8], ebx
call fcn.004d7520
mov dword [ebp - 0x278], edi
jmp 0x4febe3
mov ecx, dword [ebp - 0x298]
push esi
lea edx, [ebx + 7]
call fcn.004fcff0
add esp, 4
test al, al
je 0x4febc7
mov ebx, 0x11
jmp 0x4febe0
push 0x15
push ebx
mov ecx, esi
call fcn.004d7520
mov dword [ebp - 0x28c], 6
mov ebx, 0x16
mov dword [ebp + 8], ebx
cmp byte [ebp - 0x29f], 0
jne 0x4febf6
cmp ebx, 9
je 0x4febf6
cmp ebx, 0x11
jne 0x4febfc
inc dword [ebp - 0x280]
mov edi, dword [ebp - 0x270]
mov edx, esi
jmp 0x501216
cmp byte [ebp - 0x29d], 0
mov eax, dword [ebp - 0x284]
je 0x4fedcd
cmp eax, 2
je 0x4fec2a
cmp eax, 3
jne 0x4fedcd
test edx, edx
je 0x4fedcd
mov ecx, ebx
call fcn.004fc640
test al, al
je 0x4fedc1
mov edx, dword [ebp - 0x26c]
lea eax, [ebp - 0x1a0]
push eax
mov ecx, esi
call fcn.004fd220
add esp, 4
test al, al
je 0x4fedc1
cmp ebx, 0x10
jne 0x4fecc7
mov ebx, dword [ebp - 0x274]
push dword [ebp - 0x2c0]
mov edx, dword [ebx + 0x1f68]
lea eax, [edi - 1]
push eax
mov ecx, ebx
call fcn.004fc2a0
add esp, 8
mov dword [ebp - 0x2c0], eax
push dword [ebp - 0x27c]
lea eax, [edi - 1]
push eax
mov ecx, ebx
call fcn.004d7520
mov ecx, 0x43e0f8
lea eax, [ebp - 0x1a0]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4fecff
test dl, dl
je 0x4fecc3
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4fecff
add eax, 2
add ecx, 2
test dl, dl
jne 0x4feca7
xor esi, esi
jmp 0x4fed04
cmp ebx, 0x60
mov ebx, dword [ebp - 0x274]
jne 0x4fec8b
push dword [ebp - 0x29d]
mov ecx, dword [ebx + 0x1f68]
push dword [ebp - 0x284]
lea eax, [ebp - 0x268]
push eax
push ebx
push dword [ebp - 0x2dc]
lea edx, [edi - 1]
call fcn.004fcc50
add esp, 0x14
jmp 0x4fec9c
sbb esi, esi
or esi, 1
test esi, esi
je 0x4fed5b
mov ecx, 0x43f5ec
lea eax, [ebp - 0x1a0]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4fed33
test dl, dl
je 0x4fed2f
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4fed33
add eax, 2
add ecx, 2
test dl, dl
jne 0x4fed13
xor eax, eax
jmp 0x4fed38
sbb eax, eax
or eax, 1
mov edi, dword [ebp - 0x270]
test eax, eax
je 0x4fed61
cmp edi, 0x3e
je 0x4fed61
mov eax, dword [ebp - 0x298]
inc dword [ebp - 0x294]
mov dword [ebp - 0x278], eax
jmp 0x4fed84
mov edi, dword [ebp - 0x270]
test esi, esi
jne 0x4fed7e
cmp edi, 0x2f
jne 0x4fed7e
mov eax, dword [ebp - 0x298]
inc dword [ebp - 0x294]
mov dword [ebp - 0x278], eax
jmp 0x4fed84
mov eax, dword [ebp - 0x278]
test esi, esi
jne 0x4fed8d
cmp edi, 0x2f
jne 0x4fed97
push 0xf
push eax
mov ecx, ebx
call fcn.004d7520
mov ebx, dword [ebp - 0x2b4]
xor eax, eax
cmp dword [ebp - 0x284], 3
mov dword [ebp + 8], ebx
sete al
mov dword [ebp - 0x28c], 0
mov dword [ebp - 0x284], eax
jmp 0x501210
mov edx, dword [ebp - 0x28c]
mov eax, dword [ebp - 0x284]
mov cl, byte [ebp - 0x2a5]
test cl, cl
je 0x4feeee
cmp eax, 2
je 0x4fede9
cmp eax, 3
jne 0x4feeee
test edx, edx
je 0x4feeee
mov ecx, ebx
call fcn.004fc640
test al, al
je 0x4feee8
mov edx, dword [ebp - 0x26c]
lea eax, [ebp - 0x2c8]
push eax
mov ecx, esi
call fcn.004fd3f0
add esp, 4
test al, al
je 0x4feee8
cmp ebx, 0x10
jne 0x4feead
mov ebx, dword [ebp - 0x274]
push dword [ebp - 0x2c0]
mov edx, dword [ebx + 0x1f68]
lea eax, [edi - 1]
push eax
mov ecx, ebx
call fcn.004fc2a0
add esp, 8
mov dword [ebp - 0x2c0], eax
push dword [ebp - 0x27c]
lea eax, [edi - 1]
push eax
mov ecx, ebx
call fcn.004d7520
mov eax, dword [ebp - 0x298]
inc dword [ebp - 0x294]
push 0xf
push eax
mov ecx, ebx
mov dword [ebp - 0x278], eax
call fcn.004d7520
mov ebx, dword [ebp - 0x2b4]
mov edi, dword [ebp - 0x270]
xor eax, eax
cmp dword [ebp - 0x284], 3
mov dword [ebp + 8], ebx
sete al
mov dword [ebp - 0x284], eax
mov eax, dword [ebp - 0x2d8]
mov dword [ebp - 0x28c], eax
jmp 0x501210
cmp ebx, 0x60
mov ebx, dword [ebp - 0x274]
jne 0x4fee4e
push dword [ebp - 0x29d]
mov ecx, dword [ebx + 0x1f68]
push dword [ebp - 0x284]
lea eax, [ebp - 0x268]
push eax
push ebx
push dword [ebp - 0x2dc]
lea edx, [edi - 1]
call fcn.004fcc50
add esp, 0x14
jmp 0x4fee5f
mov cl, byte [ebp - 0x2a5]
cmp byte [ebp - 0x29d], 0
jne 0x4fef3e
test cl, cl
mov ecx, dword [ebp - 0x284]
jne 0x4fef36
cmp ecx, 2
je 0x4fef0b
cmp ecx, 3
jne 0x4fef36
cmp dword [ebp - 0x28c], 0
je 0x4fef36
mov ecx, ebx
call fcn.004fc640
test al, al
je 0x4fef3e
cmp esi, 0x25
je 0x4fef29
cmp esi, 0x3f
jne 0x4fef3e
mov edx, dword [ebp - 0x26c]
cmp edx, 0x3e
jne 0x4fef44
jmp 0x4fef69
mov edx, dword [ebp - 0x26c]
jmp 0x4fef4a
mov edx, dword [ebp - 0x26c]
mov ecx, dword [ebp - 0x284]
cmp dword [ebp - 0x28c], 6
jne case.0x4fe43e.6
cmp esi, 0x3e
jne case.0x4fe43e.6
cmp ebx, 0x1d
je case.0x4fe43e.6
mov esi, dword [ebp - 0x274]
cmp ebx, 0x10
jne 0x4fef94
push dword [ebp - 0x2c0]
mov edx, dword [esi + 0x1f68]
lea eax, [edi - 1]
push eax
mov ecx, esi
call fcn.004fc2a0
add esp, 8
mov dword [ebp - 0x2c0], eax
lea eax, [ebx - 0x14]
cmp eax, 0x65
ja case.0x4fefa7.21
movzx eax, byte [eax + 0x5015ac]
jmp dword [eax*4 + 0x501594]
push dword [ebp - 0x284]
mov ecx, dword [esi + 0x1f68]
push esi
push dword [ebp - 0x2fc]
lea edx, [edi - 1]
call fcn.004fca10
add esp, 0xc
jmp 0x4ff04c
push dword [ebp - 0x284]
mov ecx, dword [esi + 0x1f68]
push esi
push dword [ebp - 0x2f0]
lea edx, [edi - 1]
call fcn.004fcb20
add esp, 0xc
jmp 0x4ff04c
push dword [ebp - 0x29d]
mov ecx, dword [esi + 0x1f68]
push dword [ebp - 0x284]
lea eax, [ebp - 0x268]
push eax
push esi
push dword [ebp - 0x2dc]
lea edx, [edi - 1]
call fcn.004fcc50
add esp, 0x14
jmp 0x4ff04c
mov ecx, dword [esi + 0x1f68]
push esi
push dword [ebp - 0x2f4]
lea edx, [edi - 1]
call fcn.004fce50
add esp, 8
jmp 0x4ff04c
push ebx
jmp 0x4ff041
push dword [ebp - 0x27c]
lea eax, [edi - 1]
push eax
mov ecx, esi
call fcn.004d7520
mov ecx, dword [ebp - 0x28c]
cmp ecx, 6
je 0x4ff06b
mov eax, dword [ebp - 0x298]
inc dword [ebp - 0x294]
mov dword [ebp - 0x278], eax
jmp 0x4ff071
mov eax, dword [ebp - 0x278]
mov edi, dword [ebp - 0x270]
cmp edi, 0x25
jne 0x4ff080
push 0xf
jmp 0x4ff094
cmp ecx, 5
jne 0x4ff089
push 0xd
jmp 0x4ff094
cmp ecx, 6
jne 0x4ff092
push 0x15
jmp 0x4ff094
push 0x12
push eax
mov ecx, esi
call fcn.004d7520
mov ebx, dword [ebp - 0x2b4]
xor eax, eax
cmp dword [ebp - 0x284], 3
mov dword [ebp + 8], ebx
sete al
cmp byte [ebp - 0x29f], 0
mov dword [ebp - 0x284], eax
je 0x4ff0cf
cmp dword [ebp - 0x28c], 5
je 0x4ff0cf
dec dword [ebp - 0x280]
mov eax, dword [ebp - 0x2d8]
mov dword [ebp - 0x28c], eax
jmp 0x501210
cmp esi, 0x3c
jne 0x4ff133
push dword [ebp - 0x27c]
mov ecx, dword [ebp - 0x274]
cmp edx, 0x2f
sete al
mov byte [ebp - 0x2b8], al
mov eax, dword [ebp - 0x278]
dec eax
push eax
mov byte [ebp - 0x2c4], 1
call fcn.004d7520
mov esi, dword [ebp - 0x26c]
mov edi, dword [ebp - 0x270]
cmp esi, 0x21
je 0x4ff1ee
mov ebx, 2
mov dword [ebp + 8], ebx
jmp 0x4ff1ee
cmp esi, 0x26
jne case.default.0x4fe527
mov eax, dword [ebp - 0x278]
mov ecx, dword [ebp - 0x274]
push 0
dec eax
push eax
call fcn.004d7520
lea ebx, [esi - 0x1c]
jmp 0x4ff1df
cmp esi, 0x22
jne 0x4ff17c
push dword [ebp - 0x27c]
mov eax, dword [ebp - 0x278]
mov ecx, dword [ebp - 0x274]
dec eax
push eax
call fcn.004d7520
lea ebx, [esi - 0xa]
jmp 0x4ff1df
cmp esi, 0x27
jne 0x4ff19f
push dword [ebp - 0x27c]
mov eax, dword [ebp - 0x278]
mov ecx, dword [ebp - 0x274]
dec eax
push eax
call fcn.004d7520
lea ebx, [esi - 0xe]
jmp 0x4ff1df
cmp esi, 0x2d
jne 0x4ff22a
cmp dword [ebp - 0x288], esi
jne 0x4ff236
mov edx, dword [ebp - 0x278]
mov ecx, dword [ebp - 0x274]
lea eax, [edx - 2]
cmp dword [ecx + 0x1f68], eax
jg 0x4ff1da
push dword [ebp - 0x27c]
lea eax, [edx - 2]
push eax
call fcn.004d7520
mov ebx, 0x1d
mov dword [ebp + 8], ebx
mov edi, dword [ebp - 0x270]
mov esi, dword [ebp - 0x26c]
mov edx, dword [ebp - 0x274]
mov ecx, dword [ebp - 0x278]
cmp ecx, dword [edx + 0x1f68]
setge al
cmp ebx, 0x47
jne 0x501107
cmp edi, 0x22
jne 0x5010c7
test al, al
je 0x5010d9
mov ebx, 0x4b
mov dword [ebp + 8], ebx
jmp 0x501216
test esi, esi
js 0x4ff273
cmp esi, 0x80
jge 0x4ff273
push esi
call fcn.005114ca
add esp, 4
test eax, eax
mov eax, dword [ebp - 0x288]
je 0x4ff279
cmp eax, 0x25
jne 0x4ff279
push dword [ebp - 0x27c]
mov eax, dword [ebp - 0x278]
mov ecx, dword [ebp - 0x274]
add eax, 0xfffffffe
push eax
call fcn.004d7520
mov ebx, 0x1c
jmp 0x4ff1df
mov eax, dword [ebp - 0x288]
cmp esi, 0x23
jne 0x4ff29f
push dword [ebp - 0x27c]
mov eax, dword [ebp - 0x278]
mov ecx, dword [ebp - 0x274]
dec eax
push eax
call fcn.004d7520
lea ebx, [esi - 8]
jmp 0x4ff1df
cmp esi, 0x5b
jne 0x4ff2cf
push dword [ebp - 0x27c]
mov eax, dword [ebp - 0x278]
mov ecx, dword [ebp - 0x274]
dec eax
push eax
call fcn.004d7520
mov dword [ebp - 0x28c], 7
lea ebx, [esi - 0x3c]
jmp 0x4ff1df
cmp esi, 0x5d
jne 0x4ff32d
cmp dword [ebp - 0x28c], 7
push dword [ebp - 0x27c]
mov ecx, dword [ebp - 0x274]
jne 0x4ff306
push dword [ebp - 0x278]
call fcn.004d7520
mov dword [ebp - 0x28c], 6
lea ebx, [esi - 0x48]
jmp 0x4ff1df
mov esi, dword [ebp - 0x278]
lea eax, [esi - 1]
push eax
call fcn.004d7520
mov ecx, dword [ebp - 0x274]
push 0x1a
push esi
call fcn.004d7520
mov ebx, 0x15
jmp 0x4ff1df
cmp dword [ebp - 0x28c], 7
jne case.default.0x4fe527
cmp esi, 0x21
jne 0x4ff37b
cmp eax, 0x3c
jne case.default.0x4fe527
mov esi, dword [ebp - 0x278]
push dword [ebp - 0x27c]
mov ecx, dword [ebp - 0x274]
lea eax, [esi - 2]
push eax
call fcn.004d7520
mov ecx, dword [ebp - 0x274]
push 0x15
push esi
call fcn.004d7520
mov ebx, 0x16
jmp 0x4ff1df
cmp esi, 0x3e
jne case.default.0x4fe527
mov edi, dword [ebp - 0x278]
push dword [ebp - 0x27c]
mov ecx, dword [ebp - 0x274]
lea eax, [edi - 1]
push eax
call fcn.004d7520
mov ecx, dword [ebp - 0x274]
push 0x15
push edi
call fcn.004d7520
jmp case.default.0x4fe527
cmp esi, 0x2d
jne 0x4ff3da
cmp dword [ebp - 0x288], esi
jne 0x4ff3da
mov eax, dword [ebp - 0x278]
push dword [ebp - 0x27c]
mov ecx, dword [ebp - 0x274]
add eax, 0xfffffffe
push eax
jmp 0x4ff1d5
mov ecx, esi
call fcn.004fd110
test al, al
jne case.default.0x4fe527
mov eax, dword [ebp - 0x278]
mov ebx, dword [ebp - 0x274]
lea esi, [eax - 1]
mov ecx, dword [ebx + 0x1f68]
push ebx
push dword [ebp - 0x31c]
mov edx, esi
call fcn.004fcf50
add esp, 8
test al, al
je 0x4ff42b
push dword [ebp - 0x27c]
mov ecx, ebx
push esi
call fcn.004d7520
mov ebx, 0x17
jmp 0x4ff1df
mov ebx, 0x1a
jmp 0x4ff1df
cmp esi, 0x2d
jne 0x4ff47c
cmp dword [ebp - 0x288], esi
jne 0x4ff47c
mov eax, dword [ebp - 0x278]
mov ecx, dword [ebp - 0x274]
add eax, 0xfffffffe
cmp dword [ebp - 0x28c], 7
jne 0x4ff46a
push 0x1f
push eax
call fcn.004d7520
lea ebx, [esi - 0xf]
jmp 0x4ff1df
push 0x15
push eax
call fcn.004d7520
mov ebx, 0x1e
jmp 0x4ff1df
mov ecx, esi
call fcn.004fd110
test al, al
je case.default.0x4fe527
cmp dword [ebp - 0x28c], 7
mov esi, dword [ebp - 0x278]
mov ebx, dword [ebp - 0x274]
lea eax, [esi - 1]
mov ecx, ebx
jne 0x4ff4a9
push 0x1f
jmp 0x4ff4ab
push 0x15
push eax
call fcn.004d7520
push 0x20
push dword [ebp - 0x298]
mov ecx, ebx
mov edi, 1
call fcn.004d7410
movzx eax, al
push eax
lea ecx, [ebp - 0x318]
call fcn.004d8fc0
test al, al
je 0x4ff4f9
inc edi
push 0x20
lea eax, [edi + esi]
push eax
mov ecx, ebx
call fcn.004d7410
movzx eax, al
push eax
lea ecx, [ebp - 0x318]
call fcn.004d8fc0
test al, al
jne 0x4ff4d8
push dword [ebp - 0x27c]
lea eax, [edi - 1]
add eax, esi
push eax
mov ecx, ebx
call fcn.004d7520
lea eax, [esi - 1]
mov esi, dword [ebp - 0x294]
add eax, edi
dec esi
push 0x20
add esi, edi
push eax
mov ecx, ebx
mov dword [ebp - 0x278], eax
mov dword [ebp - 0x294], esi
call fcn.004d7410
mov ebx, dword [ebp - 0x28c]
sub ebx, 7
neg ebx
sbb ebx, ebx
and ebx, 0xfffffff6
add ebx, 0x1f
movzx edi, al
mov dword [ebp + 8], ebx
jmp 0x501210
cmp esi, 0x2d
jne case.default.0x4fe527
cmp dword [ebp - 0x288], esi
jne case.default.0x4fe527
mov eax, dword [ebp - 0x278]
push dword [ebp - 0x27c]
mov ecx, dword [ebp - 0x274]
add eax, 0xfffffffe
push eax
jmp 0x4ff1d5
cmp esi, 0x22
jne case.default.0x4fe527
push dword [ebp - 0x27c]
mov ecx, dword [ebp - 0x274]
push dword [ebp - 0x278]
call fcn.004d7520
lea ebx, [esi - 0xd]
jmp 0x4ff1df
cmp esi, 0x27
jne case.default.0x4fe527
push dword [ebp - 0x27c]
mov ecx, dword [ebp - 0x274]
push dword [ebp - 0x278]
call fcn.004d7520
lea ebx, [esi - 0x12]
jmp 0x4ff1df
cmp esi, 0x2d
jne case.default.0x4fe527
cmp dword [ebp - 0x288], esi
jne case.default.0x4fe527
push dword [ebp - 0x27c]
mov ecx, dword [ebp - 0x274]
push dword [ebp - 0x278]
call fcn.004d7520
lea ebx, [esi - 0x18]
jmp 0x4ff1df
cmp dword [ebp - 0x2bc], 0x5d
jne case.default.0x4fe527
cmp dword [ebp - 0x288], 0x5d
jne case.default.0x4fe527
cmp esi, 0x3e
jne case.default.0x4fe527
push dword [ebp - 0x27c]
mov ecx, dword [ebp - 0x274]
push dword [ebp - 0x278]
call fcn.004d7520
xor ebx, ebx
dec dword [ebp - 0x280]
jmp 0x4ff1df
cmp dword [ebp - 0x28c], 8
je case.default.0x4fe527
cmp dword [ebp - 0x2bc], 0x2d
jne case.default.0x4fe527
cmp dword [ebp - 0x288], 0x2d
jmp 0x4ff616
cmp esi, 0x2d
jne case.default.0x4fe527
cmp dword [ebp - 0x288], esi
jne case.default.0x4fe527
mov ecx, dword [ebp - 0x274]
push 0x1d
push dword [ebp - 0x278]
call fcn.004d7520
lea ebx, [esi - 0x16]
jmp 0x4ff1df
cmp esi, 0x7f
ja 0x4ff6b2
push esi
call fcn.005115ce
add esp, 4
test eax, eax
jne case.default.0x4fe527
push dword [ebp - 0x27c]
mov eax, dword [ebp - 0x278]
mov ecx, dword [ebp - 0x274]
dec eax
push eax
call fcn.004d7520
push esi
call fcn.0051149d
add esp, 4
mov ebx, eax
neg ebx
sbb ebx, ebx
and ebx, 5
add ebx, 0x15
jmp 0x4ff1df
cmp esi, 0x3b
jne 0x4ff709
push dword [ebp - 0x27c]
mov ecx, dword [ebp - 0x274]
push dword [ebp - 0x278]
call fcn.004d7520
lea ebx, [esi - 0x26]
jmp 0x4ff1df
cmp esi, 0x7f
ja 0x4ff71f
push esi
call fcn.0051149d
add esp, 4
test eax, eax
jne case.default.0x4fe527
cmp esi, 0x2d
je case.default.0x4fe527
cmp esi, 0x2e
je case.default.0x4fe527
mov ecx, dword [ebp - 0x274]
push 0x1a
push dword [ebp - 0x278]
call fcn.004d7520
mov ebx, 0x15
jmp 0x4ff1df
cmp esi, 0x3b
jne 0x4ff771
push dword [ebp - 0x27c]
mov ecx, dword [ebp - 0x274]
push dword [ebp - 0x278]
call fcn.004d7520
xor ebx, ebx
mov dword [ebp + 8], ebx
jmp 0x4ff786
cmp esi, 0x23
je case.default.0x4fe527
test esi, esi
js 0x4ff797
cmp esi, 0x80
jge 0x4ff797
push esi
call fcn.0051149d
add esp, 4
test eax, eax
jne case.default.0x4fe527
cmp esi, 0x2e
je case.default.0x4fe527
cmp esi, 0x2d
je case.default.0x4fe527
cmp esi, 0x5f
je case.default.0x4fe527
cmp esi, 0x3a
je case.default.0x4fe527
mov ecx, dword [ebp - 0x274]
push 2
cmp esi, 0x7f
jbe 0x4ff7dc
mov eax, dword [ebp - 0x278]
dec eax
push eax
call fcn.004d7520
xor ebx, ebx
jmp 0x4ff1df
push dword [ebp - 0x278]
call fcn.004d7520
xor ebx, ebx
jmp 0x4ff1df
push esi
lea ecx, [ebp - 0x328]
call fcn.004d8fc0
test al, al
jne case.default.0x4fe527
cmp esi, 0x2f
jne 0x4ff814
cmp dword [ebp - 0x288], 0x3c
je case.default.0x4fe527
push dword [ebp - 0x30c]
mov edi, dword [ebp - 0x274]
push dword [ebp + 0x14]
mov esi, dword [ebp - 0x278]
push dword [ebp - 0x308]
mov ecx, dword [edi + 0x1f68]
lea eax, [ebp - 0x29e]
push eax
push edi
push dword [ebp - 0x304]
dec esi
mov edx, esi
call fcn.004fc7b0
add esp, 0x18
cmp eax, 0xe
je 0x4ff858
cmp eax, 9
jne 0x4ff899
cmp byte [ebp - 0x2b8], 0
jne 0x4ff88a
mov dword [ebp - 0x284], 1
cmp eax, 0xe
jne 0x4ff87e
mov eax, dword [ebp - 0x2e4]
mov dword [ebp - 0x28c], eax
jmp 0x4ff894
mov dword [ebp - 0x28c], 8
jmp 0x4ff894
mov dword [ebp - 0x28c], 0
mov eax, 1
mov ecx, dword [ebp - 0x270]
cmp ecx, 0x3e
jne 0x4ff90f
push eax
push dword [ebp - 0x278]
mov ecx, edi
call fcn.004d7520
cmp dword [ebp - 0x284], 1
jne 0x4ff8cd
mov ecx, dword [ebp - 0x28c]
call fcn.004fd0b0
mov ebx, eax
mov dword [ebp + 8], eax
jmp 0x4ff8d2
xor ebx, ebx
mov dword [ebp + 8], ebx
cmp byte [ebp - 0x29e], 0
mov byte [ebp - 0x2c4], 0
jne 0x4ff903
cmp byte [ebp - 0x2b8], 0
je 0x4ff8fd
dec dword [ebp - 0x280]
mov byte [ebp - 0x2b8], 0
jmp case.default.0x4fe527
inc dword [ebp - 0x280]
mov byte [ebp - 0x2b8], 0
jmp case.default.0x4fe527
cmp ecx, 0x2f
jne 0x4ff963
cmp dword [ebp - 0x26c], 0x3e
jne 0x4ff963
mov ecx, edi
cmp eax, 2
jne 0x4ff927
push eax
jmp 0x4ff937
push dword [ebp - 0x27c]
push esi
call fcn.004d7520
push 0xb
mov ecx, edi
push dword [ebp - 0x298]
call fcn.004d7520
mov eax, dword [ebp - 0x298]
xor ebx, ebx
mov dword [ebp - 0x278], eax
mov edi, 0x3e
mov dword [ebp + 8], ebx
mov byte [ebp - 0x2c4], bl
jmp 0x4ff1e8
mov edi, dword [ebp - 0x270]
mov esi, dword [ebp - 0x26c]
cmp eax, 2
je 0x4ff1ee
lea ebx, [eax - 0x15]
neg ebx
sbb ebx, ebx
and ebx, 0xfffffff3
add ebx, 0x15
mov dword [ebp + 8], ebx
jmp 0x4ff1ee
push esi
lea ecx, [ebp - 0x340]
call fcn.004d8fc0
test al, al
jne case.default.0x4fe527
mov edi, dword [ebp - 0x284]
mov ebx, dword [ebp - 0x274]
cmp edi, 1
jne 0x4ff9f1
mov eax, dword [ebp - 0x28c]
mov edx, dword [ebx + 0x1f68]
push eax
mov esi, eax
mov eax, dword [ebp - 0x278]
dec eax
push eax
mov ecx, ebx
call fcn.004fc2a0
add esp, 8
mov dword [ebp - 0x2e4], eax
mov dword [ebp - 0x28c], eax
cmp esi, eax
je 0x4ff9f1
mov ecx, eax
neg ecx
sbb ecx, ecx
and ecx, edi
mov dword [ebp - 0x284], ecx
mov esi, dword [ebp - 0x278]
mov ecx, dword [ebx + 0x1f68]
push ebx
push dword [ebp - 0x304]
lea edx, [esi - 1]
call fcn.004fc730
mov edi, dword [ebp - 0x270]
add esp, 8
cmp edi, 0x3e
jne 0x4ffa81
push 1
push esi
mov ecx, ebx
call fcn.004d7520
cmp dword [ebp - 0x284], 1
jne 0x4ffa3f
mov ecx, dword [ebp - 0x28c]
call fcn.004fd0b0
mov ebx, eax
mov dword [ebp + 8], eax
jmp 0x4ffa44
xor ebx, ebx
mov dword [ebp + 8], ebx
cmp byte [ebp - 0x29e], 0
mov byte [ebp - 0x2c4], 0
jne 0x4ffa75
cmp byte [ebp - 0x2b8], 0
je 0x4ffa6f
dec dword [ebp - 0x280]
mov byte [ebp - 0x2b8], 0
jmp 0x4ff1e8
inc dword [ebp - 0x280]
mov byte [ebp - 0x2b8], 0
jmp 0x4ff1e8
cmp edi, 0x3d
jne 0x4ffa9d
push 8
push esi
mov ecx, ebx
call fcn.004d7520
mov ebx, 0x13
mov dword [ebp + 8], ebx
jmp 0x4ff1e8
mov ebx, 8
mov dword [ebp + 8], ebx
jmp 0x4ff1e8
cmp esi, 0x3e
jne 0x4ffad8
mov esi, dword [ebp - 0x278]
push dword [ebp - 0x27c]
mov ecx, dword [ebp - 0x274]
lea eax, [esi - 1]
push eax
call fcn.004d7520
mov ecx, dword [ebp - 0x274]
push 1
push esi
jmp 0x4ff8ad
cmp esi, 0x22
jne 0x4ffafe
push dword [ebp - 0x27c]
mov eax, dword [ebp - 0x278]
mov ecx, dword [ebp - 0x274]
dec eax
push eax
call fcn.004d7520
lea ebx, [esi - 0x1c]
jmp 0x4ff1df
cmp esi, 0x27
jne 0x4ffb24
push dword [ebp - 0x27c]
mov eax, dword [ebp - 0x278]
mov ecx, dword [ebp - 0x274]
dec eax
push eax
call fcn.004d7520
lea ebx, [esi - 0x20]
jmp 0x4ff1df
cmp esi, 0x3d
jne 0x4ffb48
push dword [ebp - 0x27c]
mov ecx, dword [ebp - 0x274]
push dword [ebp - 0x278]
call fcn.004d7520
lea ebx, [esi - 0x2a]
jmp 0x4ff1df
cmp esi, 0x2f
jne 0x4ffb9e
cmp edx, 0x3e
jne 0x4ffbea
push dword [ebp - 0x27c]
mov eax, dword [ebp - 0x278]
mov ecx, dword [ebp - 0x274]
dec eax
push eax
call fcn.004d7520
mov esi, dword [ebp - 0x298]
mov ecx, dword [ebp - 0x274]
push 0xb
push esi
call fcn.004d7520
xor ebx, ebx
mov dword [ebp - 0x278], esi
mov edi, 0x3e
mov dword [ebp + 8], ebx
mov byte [ebp - 0x2c4], bl
jmp 0x4ff1e8
cmp esi, 0x3f
jne 0x4ffbea
cmp edx, 0x3e
jne 0x4ffbea
push dword [ebp - 0x27c]
mov eax, dword [ebp - 0x278]
mov ecx, dword [ebp - 0x274]
dec eax
push eax
call fcn.004d7520
mov esi, dword [ebp - 0x298]
mov ecx, dword [ebp - 0x274]
push 0xd
push esi
call fcn.004d7520
xor ebx, ebx
mov dword [ebp - 0x278], esi
mov edi, 0x3e
mov dword [ebp + 8], ebx
jmp 0x4ff1e8
push esi
lea ecx, [ebp - 0x318]
call fcn.004d8fc0
test al, al
je case.default.0x4fe527
push dword [ebp - 0x27c]
mov eax, dword [ebp - 0x278]
mov ecx, dword [ebp - 0x274]
dec eax
push eax
call fcn.004d7520
mov ebx, 3
jmp 0x4ff1df
cmp esi, 0x22
jne case.default.0x4fe527
cmp ecx, 1
jne 0x4ffc57
mov eax, dword [ebp - 0x274]
push dword [ebp - 0x28c]
mov edx, dword [eax + 0x1f68]
push dword [ebp - 0x278]
mov ecx, eax
call fcn.004fc2a0
add esp, 8
mov dword [ebp - 0x28c], eax
push 6
push dword [ebp - 0x278]
mov ecx, dword [ebp - 0x274]
call fcn.004d7520
mov ebx, 8
jmp 0x4ff1df
cmp esi, 0x27
jne case.default.0x4fe527
cmp ecx, 1
jne 0x4ffcaa
mov eax, dword [ebp - 0x274]
push dword [ebp - 0x28c]
mov edx, dword [eax + 0x1f68]
push dword [ebp - 0x278]
mov ecx, eax
call fcn.004fc2a0
add esp, 8
mov dword [ebp - 0x28c], eax
push 7
jmp 0x4ffc59
push esi
lea ecx, [ebp - 0x318]
call fcn.004d8fc0
test al, al
jne case.default.0x4fe527
cmp esi, 0x22
jne 0x4ffcd8
cmp dword [ebp - 0x288], 0x3d
jne 0x4ffcee
lea ebx, [esi - 0x1c]
jmp 0x4ff1df
cmp esi, 0x27
jne 0x4ffcee
cmp dword [ebp - 0x288], 0x3d
jne 0x4ffcee
lea ebx, [esi - 0x20]
jmp 0x4ff1df
mov ebx, dword [ebp - 0x274]
mov edx, ebx
mov ecx, dword [ebx + 0x1f68]
call fcn.004fc510
mov esi, dword [ebp - 0x278]
test al, al
mov ecx, ebx
lea eax, [esi - 1]
je 0x4ffd14
push 5
jmp 0x4ffd1a
push dword [ebp - 0x27c]
push eax
call fcn.004d7520
mov edi, dword [ebp - 0x270]
cmp edi, 0x3e
jne 0x4ffa9d
push 1
push esi
mov ecx, ebx
call fcn.004d7520
cmp dword [ebp - 0x284], 1
jne 0x4ffa3f
mov ecx, dword [ebp - 0x28c]
call fcn.004fd0b0
mov ebx, eax
mov dword [ebp + 8], eax
jmp 0x4ffa44
mov ecx, esi
call fcn.004fc0a0
test al, al
je 0x4ffd89
push dword [ebp - 0x27c]
mov eax, dword [ebp - 0x278]
mov ecx, dword [ebp - 0x274]
dec eax
push eax
call fcn.004d7520
mov ebx, 0x2e
jmp 0x4ff1df
cmp esi, 0x2f
jne 0x4ffe6b
mov esi, dword [ebp - 0x26c]
cmp esi, 0x2a
jne 0x4ffdf5
push dword [ebp - 0x27c]
mov eax, dword [ebp - 0x278]
mov ecx, dword [ebp - 0x274]
dec eax
push eax
call fcn.004d7520
mov eax, dword [ebp - 0x2a4]
mov edi, dword [ebp - 0x270]
cmp eax, esi
jne 0x4ffdd3
mov ebx, 0x2c
mov dword [ebp + 8], ebx
jmp 0x4ff1ee
mov ebx, 0x2a
mov dword [ebp + 8], ebx
cmp eax, 0x2f
jne 0x4ff1ee
mov eax, dword [ebp - 0x298]
mov dword [ebp - 0x278], eax
jmp 0x4ff1ee
cmp esi, 0x2f
jne 0x4ffe26
push dword [ebp - 0x27c]
mov eax, dword [ebp - 0x278]
mov ecx, dword [ebp - 0x274]
dec eax
push eax
call fcn.004d7520
mov edi, dword [ebp - 0x270]
mov ebx, 0x2b
mov dword [ebp + 8], ebx
jmp 0x4ff1ee
push dword [ebp - 0x300]
lea ecx, [ebp - 0x334]
call fcn.004d8fc0
test al, al
je 0x4fff5f
push dword [ebp - 0x27c]
mov eax, dword [ebp - 0x278]
mov ecx, dword [ebp - 0x274]
dec eax
push eax
call fcn.004d7520
mov edi, dword [ebp - 0x270]
mov ebx, 0x34
mov dword [ebp + 8], ebx
jmp 0x4ff1ee
cmp esi, 0x22
jne 0x4ffe91
push dword [ebp - 0x27c]
mov eax, dword [ebp - 0x278]
mov ecx, dword [ebp - 0x274]
dec eax
push eax
call fcn.004d7520
lea ebx, [esi + 0xe]
jmp 0x4ff1df
cmp esi, 0x27
jne 0x4ffeb7
push dword [ebp - 0x27c]
mov eax, dword [ebp - 0x278]
mov ecx, dword [ebp - 0x274]
dec eax
push eax
call fcn.004d7520
lea ebx, [esi + 0xa]
jmp 0x4ff1df
cmp esi, 0x3c
jne 0x4fff0e
cmp dword [ebp - 0x26c], 0x21
jne 0x4fff5f
cmp dword [ebp - 0x2a4], 0x2d
mov edi, dword [ebp - 0x278]
mov esi, dword [ebp - 0x274]
jne 0x4fff6b
push 0x20
lea eax, [edi + 3]
push eax
mov ecx, esi
call fcn.004d7410
cmp al, 0x2d
jne 0x4fff6b
push dword [ebp - 0x27c]
lea eax, [edi - 1]
push eax
mov ecx, esi
call fcn.004d7520
mov ebx, 0x2b
jmp 0x4ff1df
cmp esi, 0x2d
jne 0x4fff5f
mov esi, dword [ebp - 0x26c]
cmp esi, 0x2d
jne 0x4fff5f
cmp dword [ebp - 0x2a4], 0x3e
jne 0x4fff5f
push dword [ebp - 0x27c]
mov eax, dword [ebp - 0x278]
mov ecx, dword [ebp - 0x274]
dec eax
push eax
call fcn.004d7520
mov eax, dword [ebp - 0x2ac]
mov edi, dword [ebp - 0x270]
mov ebx, 0x2b
mov dword [ebp + 8], ebx
mov dword [ebp - 0x278], eax
jmp 0x4ff1ee
mov esi, dword [ebp - 0x274]
mov edi, dword [ebp - 0x278]
mov ecx, dword [ebp - 0x270]
call fcn.004fc0d0
test al, al
je 0x4fffaf
push dword [ebp - 0x27c]
lea eax, [edi - 1]
push eax
mov ecx, esi
call fcn.004d7520
mov eax, dword [ebp - 0x284]
dec eax
neg eax
sbb eax, eax
and eax, 0xf
add eax, 0x32
push eax
push edi
mov ecx, esi
call fcn.004d7520
mov ebx, 0x29
jmp 0x4ff1df
mov eax, dword [ebp - 0x270]
cmp eax, 0x20
je 0x4fffc3
cmp eax, 9
jne case.default.0x4fe527
cmp ebx, 0x28
jne case.default.0x4fe527
push dword [ebp - 0x27c]
lea eax, [edi - 1]
push eax
mov ecx, esi
call fcn.004d7520
mov ebx, 0x29
jmp 0x4ff1df
mov ecx, esi
call fcn.004e56a0
test al, al
jne case.default.0x4fe527
push dword [ebp - 0x284]
mov edi, dword [ebp - 0x274]
mov esi, dword [ebp - 0x278]
mov ecx, dword [edi + 0x1f68]
push edi
push dword [ebp - 0x2fc]
dec esi
mov edx, esi
call fcn.004fca10
mov eax, dword [ebp - 0x270]
add esp, 0xc
mov ebx, 0x29
mov dword [ebp + 8], ebx
cmp eax, 0x2f
jne 0x500072
mov esi, dword [ebp - 0x26c]
cmp esi, 0x2a
jne 0x50005a
xor ebx, ebx
cmp dword [ebp - 0x2a4], esi
mov edi, eax
sete bl
lea ebx, [ebx*2 + 0x2a]
mov dword [ebp + 8], ebx
jmp 0x4ff1ee
cmp esi, 0x2f
jne 0x5000cf
mov edi, dword [ebp - 0x270]
mov ebx, 0x2b
mov dword [ebp + 8], ebx
jmp 0x4ff1ee
cmp eax, 0x22
jne 0x50007f
lea ebx, [eax + 0xe]
jmp 0x4ff1df
cmp eax, 0x27
jne 0x50008c
lea ebx, [eax + 0xa]
jmp 0x4ff1df
cmp eax, 0x2d
jne 0x5000c9
cmp dword [ebp - 0x26c], eax
jne 0x5000c9
cmp dword [ebp - 0x2a4], 0x3e
jne 0x5000c9
push dword [ebp - 0x27c]
mov ecx, edi
push esi
call fcn.004d7520
mov eax, dword [ebp - 0x2ac]
mov ebx, 0x2b
mov dword [ebp + 8], ebx
mov dword [ebp - 0x278], eax
jmp case.default.0x4fe527
mov esi, dword [ebp - 0x26c]
mov ecx, eax
call fcn.004fc0d0
test al, al
je 0x5010bc
mov eax, dword [ebp - 0x284]
dec eax
neg eax
sbb eax, eax
and eax, 0xf
add eax, 0x32
push eax
push dword [ebp - 0x278]
mov ecx, edi
call fcn.004d7520
mov edi, dword [ebp - 0x270]
mov dword [ebp + 8], ebx
jmp 0x4ff1ee
cmp esi, 0x2f
jne case.default.0x4fe527
cmp dword [ebp - 0x288], 0x2a
jne case.default.0x4fe527
push dword [ebp - 0x27c]
push dword [ebp - 0x278]
mov ecx, dword [ebp - 0x274]
call fcn.004d7520
mov ebx, 0x29
mov dword [ebp + 8], ebx
lea edi, [ebx - 9]
jmp 0x4ff1e8
cmp esi, 0xd
je 0x500156
cmp esi, 0xa
jne case.default.0x4fe527
lea eax, [ecx - 1]
neg eax
sbb eax, eax
and eax, 0xf
add eax, 0x2b
push eax
mov eax, dword [ebp - 0x278]
dec eax
push eax
jmp 0x50012d
cmp esi, 0x5c
jne 0x500196
cmp edx, 0x22
je 0x500185
cmp edx, 0x27
je 0x500185
cmp edx, esi
jne case.default.0x4fe527
mov eax, dword [ebp - 0x298]
mov dword [ebp - 0x278], eax
jmp case.default.0x4fe527
cmp esi, 0x22
jne 0x5001c4
lea eax, [ecx - 1]
neg eax
sbb eax, eax
and eax, 0xf
add eax, 0x30
push eax
push dword [ebp - 0x278]
mov ecx, dword [ebp - 0x274]
call fcn.004d7520
mov ebx, 0x29
jmp 0x4ff1df
cmp ecx, 1
jne 0x5001fd
cmp esi, 0x2d
jne 0x5001fd
cmp edx, 0x2d
jne case.default.0x4fe527
cmp dword [ebp - 0x2a4], 0x3e
jne case.default.0x4fe527
mov eax, dword [ebp - 0x278]
push dword [ebp - 0x27c]
mov ecx, dword [ebp - 0x274]
dec eax
push eax
jmp 0x5000ab
cmp esi, 0xd
je 0x50020b
cmp esi, 0xa
jne case.default.0x4fe527
push dword [ebp - 0x27c]
mov eax, dword [ebp - 0x278]
mov ecx, dword [ebp - 0x274]
dec eax
push eax
call fcn.004d7520
mov ebx, 0x33
jmp 0x4ff1df
cmp esi, 0x5c
jne 0x500256
cmp edx, 0x22
je 0x500245
cmp edx, 0x27
je 0x500245
cmp edx, esi
jne case.default.0x4fe527
mov eax, dword [ebp - 0x298]
mov dword [ebp - 0x278], eax
jmp case.default.0x4fe527
cmp esi, 0x27
jne 0x50026d
lea eax, [ecx - 1]
neg eax
sbb eax, eax
and eax, 0xf
add eax, 0x31
jmp 0x5001a8
cmp ecx, 1
jne 0x50027b
cmp esi, 0x2d
je 0x5001ce
cmp esi, 0xd
je 0x500289
cmp esi, 0xa
jne case.default.0x4fe527
push dword [ebp - 0x27c]
mov eax, dword [ebp - 0x278]
mov ecx, dword [ebp - 0x274]
dec eax
push eax
call fcn.004d7520
mov eax, dword [ebp - 0x288]
cmp eax, 0x5c
je case.default.0x4fe527
cmp dword [ebp - 0x2bc], 0x5c
jne 0x5002c8
cmp eax, 0xd
jne 0x5002c8
cmp esi, 0xa
je case.default.0x4fe527
mov ebx, 0x33
jmp 0x4ff1df
cmp esi, 0xd
je 0x5002ff
cmp esi, 0xa
je 0x5002ff
push dword [ebp - 0x27c]
mov eax, dword [ebp - 0x278]
mov ecx, dword [ebp - 0x274]
dec eax
push eax
call fcn.004d7520
mov ebx, 0x29
jmp 0x4ff1df
cmp edx, 0xd
je case.default.0x4fe527
cmp edx, 0xa
je case.default.0x4fe527
push dword [ebp - 0x27c]
jmp 0x5001a9
cmp esi, 0xd
je 0x500366
cmp esi, 0xa
je 0x500366
cmp esi, 0x2f
je 0x500370
cmp esi, 0x5c
jne case.default.0x4fe527
cmp edx, esi
je 0x500341
cmp edx, 0x2f
jne case.default.0x4fe527
mov eax, dword [ebp - 0x298]
mov ecx, dword [ebp - 0x274]
mov dword [ebp - 0x278], eax
inc eax
push 0x20
push eax
mov edi, edx
call fcn.004d7410
movzx esi, al
jmp 0x4ff1ee
cmp esi, 0x2f
jne 0x500311
jmp 0x500370
cmp edx, 0x7f
ja 0x500311
push edx
call fcn.0051154d
add esp, 4
test eax, eax
je 0x500311
mov eax, dword [ebp - 0x298]
mov esi, dword [ebp - 0x26c]
mov ecx, dword [ebp - 0x274]
mov dword [ebp - 0x278], eax
inc eax
push 0x20
push eax
mov dword [ebp - 0x270], esi
mov dword [ebp - 0x298], eax
call fcn.004d7410
movzx edx, al
mov dword [ebp - 0x26c], edx
jmp 0x500370
mov ecx, esi
call fcn.004fc0a0
test al, al
je 0x5003e8
push dword [ebp - 0x27c]
mov eax, dword [ebp - 0x278]
mov ecx, dword [ebp - 0x274]
dec eax
push eax
call fcn.004d7520
mov ebx, 0x4a
jmp 0x4ff1df
cmp esi, 0x27
jne 0x50040e
push dword [ebp - 0x27c]
mov eax, dword [ebp - 0x278]
mov ecx, dword [ebp - 0x274]
dec eax
push eax
call fcn.004d7520
lea ebx, [esi + 0x21]
jmp 0x4ff1df
cmp esi, 0x22
jne 0x500434
push dword [ebp - 0x27c]
mov eax, dword [ebp - 0x278]
mov ecx, dword [ebp - 0x274]
dec eax
push eax
call fcn.004d7520
lea ebx, [esi + 0x29]
jmp 0x4ff1df
cmp esi, 0x3c
jne 0x500483
cmp dword [ebp - 0x26c], 0x21
jne 0x500483
cmp dword [ebp - 0x2a4], 0x2d
mov edi, dword [ebp - 0x278]
mov esi, dword [ebp - 0x274]
jne 0x50048f
push 0x20
lea eax, [edi + 3]
push eax
mov ecx, esi
call fcn.004d7410
cmp al, 0x2d
jne 0x50048f
push dword [ebp - 0x27c]
lea eax, [edi - 1]
push eax
mov ecx, esi
call fcn.004d7520
mov ebx, 0x48
jmp 0x4ff1df
mov edi, dword [ebp - 0x278]
mov esi, dword [ebp - 0x274]
mov ecx, dword [ebp - 0x270]
call fcn.004fc0d0
test al, al
je 0x5004d3
push dword [ebp - 0x27c]
lea eax, [edi - 1]
push eax
mov ecx, esi
call fcn.004d7520
mov eax, dword [ebp - 0x284]
dec eax
neg eax
sbb eax, eax
and eax, 0xa
add eax, 0x47
push eax
push edi
mov ecx, esi
call fcn.004d7520
mov ebx, 0x47
jmp 0x4ff1df
mov eax, dword [ebp - 0x270]
cmp eax, 0x20
je 0x5004e7
cmp eax, 9
jne case.default.0x4fe527
cmp ebx, 0x46
jne case.default.0x4fe527
push dword [ebp - 0x27c]
lea eax, [edi - 1]
push eax
mov ecx, esi
call fcn.004d7520
mov ebx, 0x47
jmp 0x4ff1df
mov ecx, esi
call fcn.004e56a0
test al, al
jne case.default.0x4fe527
push dword [ebp - 0x284]
mov esi, dword [ebp - 0x274]
mov edi, dword [ebp - 0x278]
mov ecx, dword [esi + 0x1f68]
push esi
push dword [ebp - 0x2f0]
lea edx, [edi - 1]
call fcn.004fcb20
mov ebx, eax
add esp, 0xc
mov dword [ebp + 8], ebx
cmp ebx, 0x47
jne case.default.0x4fe527
mov eax, dword [ebp - 0x270]
cmp eax, 0x22
jne 0x500565
lea ebx, [eax + 0x29]
jmp 0x4ff1df
cmp eax, 0x27
jne 0x500572
lea ebx, [eax + 0x21]
jmp 0x4ff1df
mov ecx, eax
call fcn.004fc0d0
test al, al
je case.default.0x4fe527
jmp 0x5004af
cmp esi, 0x22
jne 0x5005aa
push dword [ebp - 0x27c]
mov ecx, dword [ebp - 0x274]
push dword [ebp - 0x278]
call fcn.004d7520
lea ebx, [esi + 0x25]
jmp 0x4ff1df
cmp esi, 0xd
je 0x5005b8
cmp esi, 0xa
jne case.default.0x4fe527
push dword [ebp - 0x27c]
mov eax, dword [ebp - 0x278]
mov ecx, dword [ebp - 0x274]
dec eax
push eax
call fcn.004d7520
mov ebx, 0x4d
jmp 0x4ff1df
cmp esi, 0xd
je 0x5005e9
cmp esi, 0xa
jne case.default.0x4fe527
push dword [ebp - 0x27c]
mov eax, dword [ebp - 0x278]
mov ecx, dword [ebp - 0x274]
dec eax
push eax
call fcn.004d7520
mov ebx, 0x47
jmp 0x4ff1df
cmp esi, 0xd
je 0x500639
cmp esi, 0xa
je 0x500639
push dword [ebp - 0x27c]
mov eax, dword [ebp - 0x278]
mov ecx, dword [ebp - 0x274]
dec eax
push eax
call fcn.004d7520
mov ebx, 0x47
jmp 0x4ff1df
cmp edx, 0xd
je case.default.0x4fe527
cmp edx, 0xa
je case.default.0x4fe527
push dword [ebp - 0x27c]
mov ecx, dword [ebp - 0x274]
push dword [ebp - 0x278]
call fcn.004d7520
mov ebx, 0x47
jmp 0x4ff1df
mov ecx, esi
call fcn.004fc0a0
test al, al
je 0x50069a
push dword [ebp - 0x27c]
mov eax, dword [ebp - 0x278]
mov ecx, dword [ebp - 0x274]
dec eax
push eax
call fcn.004d7520
mov ebx, 0x60
jmp 0x4ff1df
cmp esi, 0x3c
jne 0x5006f5
cmp dword [ebp - 0x26c], 0x21
mov esi, dword [ebp - 0x274]
jne 0x5007cb
cmp dword [ebp - 0x2a4], 0x2d
mov edi, dword [ebp - 0x278]
jne 0x5007d1
push 0x20
lea eax, [edi + 3]
push eax
mov ecx, esi
call fcn.004d7410
cmp al, 0x2d
jne 0x5007d1
push dword [ebp - 0x27c]
lea eax, [edi - 1]
push eax
mov ecx, esi
call fcn.004d7520
mov ebx, 0x5c
jmp 0x4ff1df
cmp esi, 0x23
jne 0x50071b
push dword [ebp - 0x27c]
mov eax, dword [ebp - 0x278]
mov ecx, dword [ebp - 0x274]
dec eax
push eax
call fcn.004d7520
lea ebx, [esi + 0x39]
jmp 0x4ff1df
cmp esi, 0x22
jne 0x500788
push dword [ebp - 0x27c]
mov eax, dword [ebp - 0x278]
mov esi, dword [ebp - 0x274]
dec eax
push eax
mov ecx, esi
call fcn.004d7520
cmp dword [ebp - 0x26c], 0x22
jne 0x50077e
cmp dword [ebp - 0x2a4], 0x22
jne 0x50077e
mov ebx, 0x62
mov eax, dword [ebp - 0x2ac]
mov edi, 0x20
mov dword [ebp - 0x278], eax
inc eax
push edi
push eax
mov ecx, esi
mov dword [ebp + 8], ebx
mov dword [ebp - 0x288], edi
call fcn.004d7410
movzx esi, al
jmp 0x4ff1ee
mov ebx, 0x5e
jmp 0x4ff1df
cmp esi, 0x27
mov esi, dword [ebp - 0x274]
jne 0x5007cb
push dword [ebp - 0x27c]
mov eax, dword [ebp - 0x278]
dec eax
push eax
mov ecx, esi
call fcn.004d7520
cmp dword [ebp - 0x26c], 0x27
jne 0x5007c1
cmp dword [ebp - 0x2a4], 0x27
jne 0x5007c1
mov ebx, 0x61
jmp 0x500752
mov ebx, 0x5f
jmp 0x4ff1df
mov edi, dword [ebp - 0x278]
mov ecx, dword [ebp - 0x270]
call fcn.004fc0d0
test al, al
je 0x500810
push dword [ebp - 0x27c]
lea eax, [edi - 1]
push eax
mov ecx, esi
call fcn.004d7520
mov eax, dword [ebp - 0x284]
dec eax
neg eax
sbb eax, eax
and eax, 0xf
add eax, 0x65
push eax
push edi
mov ecx, esi
call fcn.004d7520
jmp case.default.0x4fe527
mov eax, dword [ebp - 0x270]
cmp eax, 0x20
je 0x500824
cmp eax, 9
jne case.default.0x4fe527
cmp ebx, 0x5a
jne case.default.0x4fe527
push dword [ebp - 0x27c]
lea eax, [edi - 1]
push eax
mov ecx, esi
call fcn.004d7520
mov ebx, 0x5b
jmp 0x4ff1df
mov ecx, esi
call fcn.004e56a0
test al, al
jne case.default.0x4fe527
push dword [ebp - 0x29d]
mov esi, dword [ebp - 0x274]
push dword [ebp - 0x284]
mov edi, dword [ebp - 0x278]
mov ecx, dword [esi + 0x1f68]
lea eax, [ebp - 0x268]
push eax
push esi
push dword [ebp - 0x2dc]
lea edx, [edi - 1]
call fcn.004fcc50
mov eax, dword [ebp - 0x270]
add esp, 0x14
mov ebx, 0x5b
mov dword [ebp + 8], ebx
cmp eax, 0x23
jne 0x5008a9
lea ebx, [eax + 0x39]
jmp 0x4ff1df
cmp eax, 0x22
je 0x50073b
cmp eax, 0x27
jne 0x5008d7
cmp dword [ebp - 0x26c], eax
jne 0x5007c1
cmp dword [ebp - 0x2a4], eax
jne 0x5007c1
lea ebx, [eax + 0x3a]
jmp 0x500752
mov ecx, eax
call fcn.004fc0d0
test al, al
je case.default.0x4fe527
jmp 0x5007f1
cmp esi, 0xd
je 0x5008f9
cmp esi, 0xa
jne case.default.0x4fe527
push dword [ebp - 0x27c]
mov eax, dword [ebp - 0x278]
mov ecx, dword [ebp - 0x274]
dec eax
push eax
call fcn.004d7520
mov ebx, 0x5b
jmp 0x4ff1df
cmp esi, 0x5c
jne 0x50093b
cmp edx, 0x22
je 0x500341
cmp edx, 0x27
je 0x500341
cmp edx, 0x5c
jmp 0x50033b
cmp esi, 0x22
jne case.default.0x4fe527
push dword [ebp - 0x27c]
mov ecx, dword [ebp - 0x274]
push dword [ebp - 0x278]
call fcn.004d7520
lea ebx, [esi + 0x39]
jmp 0x4ff1df
cmp esi, 0x5c
je 0x500921
cmp esi, 0x27
jne case.default.0x4fe527
push dword [ebp - 0x27c]
mov ecx, dword [ebp - 0x274]
push dword [ebp - 0x278]
call fcn.004d7520
lea ebx, [esi + 0x34]
jmp 0x4ff1df
cmp esi, 0x27
jne case.default.0x4fe527
cmp dword [ebp - 0x288], esi
jne case.default.0x4fe527
cmp dword [ebp - 0x2bc], esi
jne case.default.0x4fe527
push dword [ebp - 0x27c]
mov ecx, dword [ebp - 0x274]
push dword [ebp - 0x278]
call fcn.004d7520
lea ebx, [esi + 0x34]
jmp 0x4ff1df
cmp esi, 0x22
jne case.default.0x4fe527
cmp dword [ebp - 0x288], esi
jne case.default.0x4fe527
cmp dword [ebp - 0x2bc], esi
jne case.default.0x4fe527
push dword [ebp - 0x27c]
mov ecx, dword [ebp - 0x274]
push dword [ebp - 0x278]
call fcn.004d7520
lea ebx, [esi + 0x39]
jmp 0x4ff1df
mov ecx, esi
call fcn.004e56a0
test al, al
jne case.default.0x4fe527
mov esi, dword [ebp - 0x274]
mov edi, dword [ebp - 0x278]
mov ecx, dword [esi + 0x1f68]
push esi
push dword [ebp - 0x2f4]
lea edx, [edi - 1]
call fcn.004fce50
mov eax, dword [ebp - 0x270]
add esp, 8
cmp eax, 0x2f
jne 0x500a8a
mov eax, dword [ebp - 0x26c]
cmp eax, 0x2a
jne 0x500a6f
mov eax, dword [ebp - 0x298]
mov dword [ebp - 0x278], eax
mov ebx, 0x7c
jmp 0x4ff1df
cmp eax, 0x2f
jne 0x500ab2
mov eax, dword [ebp - 0x298]
mov dword [ebp - 0x278], eax
mov ebx, 0x7d
jmp 0x4ff1df
cmp eax, 0x23
jne 0x500a97
lea ebx, [eax + 0x5a]
jmp 0x4ff1df
cmp eax, 0x22
jne 0x500ab2
mov eax, 0x22
mov ebx, 0x77
mov word [ebp - 0xd8], ax
jmp 0x4ff1df
push 0x43f6b8
push edi
mov ecx, esi
call fcn.004d7460
test al, al
je 0x500b38
lea eax, [ebp - 0x28d]
push eax
push esi
push dword [ebp - 0x2cc]
lea eax, [edi + 3]
push eax
lea ecx, [ebp - 0xd8]
mov byte [ebp - 0x28d], 0
call fcn.004fd4e0
lea ecx, [ebp - 0xd8]
add esp, 0x10
mov dword [ebp - 0x278], eax
lea edx, [ecx + 1]
lea esp, [esp]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x500b00
sub ecx, edx
je case.default.0x4fe527
xor ebx, ebx
cmp byte [ebp - 0x28d], bl
setne bl
add ebx, 0x77
cmp byte [ebp - 0x2a0], 0
mov dword [ebp + 8], ebx
je case.default.0x4fe527
inc dword [ebp - 0x280]
jmp case.default.0x4fe527
mov edi, dword [ebp - 0x270]
cmp edi, 0x27
jne 0x500b5c
mov ebx, 0x78
mov eax, 0x27
mov dword [ebp + 8], ebx
mov word [ebp - 0xd8], ax
jmp 0x4ff1e8
mov esi, dword [ebp - 0x26c]
cmp edi, 0x24
jne 0x500b7f
mov ecx, esi
call fcn.004fd150
test al, al
je 0x500b7f
mov ebx, 0x7b
mov dword [ebp + 8], ebx
jmp 0x4ff1ee
mov ecx, edi
call fcn.004fc0d0
movzx ebx, al
neg ebx
sbb ebx, ebx
and ebx, 9
add ebx, 0x76
mov dword [ebp + 8], ebx
jmp 0x4ff1ee
lea eax, [esi - 0x30]
cmp eax, 9
jbe case.default.0x4fe527
push esi
push 0x43f6bc
call fcn.005116b0
add esp, 8
test eax, eax
jne case.default.0x4fe527
cmp esi, 0x2d
je 0x500bc7
cmp esi, 0x2b
jne 0x500bdf
mov eax, dword [ebp - 0x288]
cmp eax, 0x65
je case.default.0x4fe527
cmp eax, 0x45
je case.default.0x4fe527
mov eax, dword [ebp - 0x278]
mov ecx, dword [ebp - 0x274]
push 0x7a
dec eax
push eax
call fcn.004d7520
mov ecx, esi
call fcn.004fc0d0
movzx ebx, al
neg ebx
sbb ebx, ebx
and ebx, 9
add ebx, 0x76
jmp 0x4ff1df
mov ecx, edx
call fcn.004fd180
test al, al
jne case.default.0x4fe527
push 0x7b
push dword [ebp - 0x278]
mov ecx, dword [ebp - 0x274]
call fcn.004d7520
mov ebx, 0x76
jmp 0x4ff1df
cmp esi, 0x2f
jne case.default.0x4fe527
cmp dword [ebp - 0x288], 0x2a
jne case.default.0x4fe527
push dword [ebp - 0x27c]
jmp 0x500c1e
cmp esi, 0xd
je 0x500c65
cmp esi, 0xa
jne case.default.0x4fe527
push dword [ebp - 0x27c]
mov eax, dword [ebp - 0x278]
mov ecx, dword [ebp - 0x274]
dec eax
push eax
call fcn.004d7520
mov ebx, 0x76
jmp 0x4ff1df
cmp esi, 0x5c
jne 0x500cb9
cmp byte [ebp - 0xd8], 0x22
je 0x500245
cmp edx, 0x24
je 0x500245
cmp edx, 0x7b
jne 0x500cc3
mov eax, dword [ebp - 0x298]
mov dword [ebp - 0x278], eax
jmp case.default.0x4fe527
cmp esi, 0x7b
jne 0x500d0b
cmp edx, 0x24
je 0x500d15
mov edi, dword [ebp - 0x278]
mov esi, dword [ebp - 0x274]
lea eax, [ebp - 0xd8]
push eax
push edi
mov ecx, esi
call fcn.004d7460
test al, al
je case.default.0x4fe527
cmp byte [ebp - 0xd8], 0x22
jne 0x500d88
push dword [ebp - 0x27c]
mov ecx, esi
push edi
call fcn.004d7520
mov ebx, 0x76
jmp 0x4ff1df
cmp esi, 0x24
jne 0x500cc3
cmp edx, 0x7b
jne 0x500d56
mov ecx, dword [ebp - 0x2a4]
call fcn.004fd150
test al, al
je 0x500d47
push dword [ebp - 0x27c]
mov eax, dword [ebp - 0x278]
mov ecx, dword [ebp - 0x274]
dec eax
push eax
call fcn.004d7520
mov ebx, 0x68
jmp 0x4ff1df
cmp esi, 0x24
jne 0x500cc3
mov edx, dword [ebp - 0x26c]
mov ecx, edx
call fcn.004fd150
test al, al
je 0x500cc3
push dword [ebp - 0x27c]
mov eax, dword [ebp - 0x278]
mov ecx, dword [ebp - 0x274]
dec eax
push eax
call fcn.004d7520
mov ebx, 0x7e
jmp 0x4ff1df
mov eax, dword [ebp - 0x288]
cmp eax, 0xd
je 0x500d9c
cmp eax, 0xa
jne case.default.0x4fe527
lea esi, [ebp - 0xd8]
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x500da5
sub esi, ecx
mov ecx, dword [ebp - 0x274]
push 0x20
add edi, esi
push edi
call fcn.004d7410
push 0x20
lea ecx, [edi + 1]
push ecx
mov ecx, dword [ebp - 0x274]
mov byte [ebp - 0x28d], al
call fcn.004d7410
mov dl, al
mov al, byte [ebp - 0x28d]
movsx ecx, al
cmp ecx, 0xd
je 0x500e03
cmp ecx, 0xa
je 0x500e03
cmp al, 0x3b
jne case.default.0x4fe527
movsx eax, dl
cmp eax, 0xd
je 0x500e03
cmp eax, 0xa
jne case.default.0x4fe527
mov eax, dword [ebp - 0x2cc]
cmp edi, eax
jl 0x500e0f
mov esi, eax
mov eax, dword [ebp - 0x278]
push dword [ebp - 0x27c]
mov ecx, dword [ebp - 0x274]
dec eax
add eax, esi
push eax
mov dword [ebp - 0x278], eax
call fcn.004d7520
cmp byte [ebp - 0x2a0], 0
mov edi, dword [ebp - 0x270]
mov esi, dword [ebp - 0x26c]
mov ebx, 0x76
mov dword [ebp + 8], ebx
je 0x4ff1ee
dec dword [ebp - 0x280]
jmp 0x4ff1ee
cmp byte [ebp - 0xd8], 0x27
jne 0x500e8f
cmp esi, 0x5c
jne 0x500e7b
mov eax, dword [ebp - 0x298]
mov dword [ebp - 0x278], eax
jmp case.default.0x4fe527
cmp esi, 0x27
jne case.default.0x4fe527
push dword [ebp - 0x27c]
jmp 0x500c1e
mov eax, dword [ebp - 0x288]
cmp eax, 0xd
je 0x500ea3
cmp eax, 0xa
jne case.default.0x4fe527
mov edi, dword [ebp - 0x278]
mov ecx, dword [ebp - 0x274]
lea eax, [ebp - 0xd8]
push eax
push edi
call fcn.004d7460
test al, al
je case.default.0x4fe527
lea esi, [ebp - 0xd8]
lea ecx, [esi + 1]
lea ecx, [ecx]
mov al, byte [esi]
inc esi
test al, al
jne 0x500ed0
jmp 0x500dac
mov ecx, edx
call fcn.004fd180
test al, al
jne case.default.0x4fe527
push dword [ebp - 0x27c]
mov ecx, dword [ebp - 0x274]
push dword [ebp - 0x278]
call fcn.004d7520
mov ebx, 0x77
jmp 0x4ff1df
cmp esi, 0x7d
jne case.default.0x4fe527
push dword [ebp - 0x27c]
mov ecx, dword [ebp - 0x274]
push dword [ebp - 0x278]
call fcn.004d7520
lea ebx, [esi - 6]
jmp 0x4ff1df
mov edi, dword [ebp - 0x278]
push dword [ebp - 0x27c]
mov esi, dword [ebp - 0x274]
lea eax, [edi - 1]
push eax
mov ecx, esi
call fcn.004d7520
mov ecx, dword [ebp - 0x270]
lea eax, [ecx - 0x30]
cmp eax, 9
jbe 0x5010ac
cmp ecx, 0x2e
jne 0x500f7a
mov eax, dword [ebp - 0x26c]
add eax, 0xffffffd0
cmp eax, 9
jbe 0x5010ac
call fcn.004fc0a0
test al, al
je 0x500f8d
mov ebx, 0x79
jmp 0x4ff1df
mov eax, dword [ebp - 0x270]
cmp eax, 0x2f
jne 0x500fd4
mov eax, dword [ebp - 0x26c]
cmp eax, 0x2a
jne 0x500fb9
mov eax, dword [ebp - 0x298]
mov dword [ebp - 0x278], eax
mov ebx, 0x7c
jmp 0x4ff1df
cmp eax, 0x2f
jne 0x500fea
mov eax, dword [ebp - 0x298]
mov dword [ebp - 0x278], eax
mov ebx, 0x7d
jmp 0x4ff1df
cmp eax, 0x23
jne 0x500fe1
lea ebx, [eax + 0x5a]
jmp 0x4ff1df
cmp eax, 0x22
je 0x500a9c
push 0x43f6b8
push edi
mov ecx, esi
call fcn.004d7460
test al, al
je 0x50103d
lea eax, [ebp - 0x28d]
push eax
push esi
push dword [ebp - 0x2cc]
lea eax, [edi + 3]
push eax
lea ecx, [ebp - 0xd8]
mov byte [ebp - 0x28d], 0
call fcn.004fd4e0
lea ecx, [ebp - 0xd8]
add esp, 0x10
mov dword [ebp - 0x278], eax
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x501031
jmp 0x500b07
mov edi, dword [ebp - 0x270]
cmp edi, 0x27
je 0x500b43
mov esi, dword [ebp - 0x26c]
cmp edi, 0x24
jne 0x50106f
mov ecx, esi
call fcn.004fd150
test al, al
je 0x50106f
mov ebx, 0x7b
mov dword [ebp + 8], ebx
jmp 0x4ff1ee
mov ecx, edi
call fcn.004fc0d0
test al, al
je 0x501087
mov ebx, 0x7f
mov dword [ebp + 8], ebx
jmp 0x4ff1ee
cmp ebx, 0x7f
jne 0x4ff1ee
mov ecx, edi
call fcn.004bd8f0
test al, al
je 0x4ff1ee
mov ebx, 0x76
mov dword [ebp + 8], ebx
jmp 0x4ff1ee
mov ebx, 0x7a
jmp 0x4ff1df
mov esi, dword [ebp - 0x26c]
mov edi, dword [ebp - 0x270]
jmp 0x4ff1ee
cmp edi, 0x27
jne 0x5010d9
mov ebx, 0x48
mov dword [ebp + 8], ebx
jmp 0x501216
mov ecx, edi
call fcn.004fc0a0
test al, al
je 0x5010f1
mov ebx, 0x4a
mov dword [ebp + 8], ebx
jmp 0x501210
mov ecx, edi
call fcn.004fc0d0
test al, al
je 0x501210
push 0x47
jmp 0x5011ff
cmp ebx, 0x51
jne 0x501162
cmp edi, 0x22
jne 0x501122
test al, al
je 0x501134
mov ebx, 0x55
mov dword [ebp + 8], ebx
jmp 0x501216
cmp edi, 0x27
jne 0x501134
mov ebx, 0x52
mov dword [ebp + 8], ebx
jmp 0x501216
mov ecx, edi
call fcn.004fc0a0
test al, al
je 0x50114c
mov ebx, 0x54
mov dword [ebp + 8], ebx
jmp 0x501210
mov ecx, edi
call fcn.004fc0d0
test al, al
je 0x501210
push 0x51
jmp 0x5011ff
cmp ebx, 0x29
jne 0x501216
cmp edi, 0x2f
jne 0x5011a7
cmp esi, 0x2a
jne 0x501198
lea eax, [ecx + 2]
push 0x20
push eax
mov ecx, edx
call fcn.004d7410
xor ebx, ebx
cmp al, 0x2a
sete bl
lea ebx, [ebx*2 + 0x2a]
mov dword [ebp + 8], ebx
jmp 0x501210
cmp esi, 0x2f
jne 0x5011cd
mov ebx, 0x2b
mov dword [ebp + 8], ebx
jmp 0x501216
cmp edi, 0x22
jne 0x5011ba
test al, al
je 0x5011cd
mov ebx, 0x30
mov dword [ebp + 8], ebx
jmp 0x501216
cmp edi, 0x27
jne 0x5011cd
test al, al
je 0x5011cd
mov ebx, 0x31
mov dword [ebp + 8], ebx
jmp 0x501216
mov ecx, edi
call fcn.004fc0a0
test al, al
je 0x5011e2
mov ebx, 0x2e
mov dword [ebp + 8], ebx
jmp 0x501210
mov ecx, edi
call fcn.004fc0d0
test al, al
je 0x501210
mov eax, dword [ebp - 0x284]
dec eax
neg eax
sbb eax, eax
and eax, 0xf
add eax, 0x32
push eax
push dword [ebp - 0x278]
mov ecx, dword [ebp - 0x274]
call fcn.004d7520
mov edx, dword [ebp - 0x274]
mov esi, dword [ebp - 0x288]
mov eax, dword [ebp - 0x278]
mov ecx, dword [ebp - 0x2cc]
inc eax
mov dword [ebp - 0x278], eax
cmp eax, ecx
jl 0x4fddd0
lea eax, [ebx - 0x2e]
cmp eax, 0x4b
ja case.0x50124a.47
movzx eax, byte [eax + 0x501628]
jmp dword [eax*4 + 0x501614]
push dword [ebp - 0x284]
mov eax, dword [ebp - 0x274]
push edx
push dword [ebp - 0x2fc]
lea edx, [ecx - 1]
mov ecx, dword [eax + 0x1f68]
call fcn.004fca10
add esp, 0xc
jmp 0x501344
push dword [ebp - 0x284]
mov eax, dword [ebp - 0x274]
push edx
push dword [ebp - 0x2f0]
lea edx, [ecx - 1]
mov ecx, dword [eax + 0x1f68]
call fcn.004fcb20
add esp, 0xc
jmp 0x501344
push dword [ebp - 0x29d]
lea eax, [ebp - 0x268]
push dword [ebp - 0x284]
push eax
mov eax, dword [ebp - 0x274]
push edx
push dword [ebp - 0x2dc]
lea edx, [ecx - 1]
mov ecx, dword [eax + 0x1f68]
call fcn.004fcc50
add esp, 0x14
jmp 0x501344
mov eax, dword [ebp - 0x274]
push edx
push dword [ebp - 0x2f4]
lea edx, [ecx - 1]
mov ecx, dword [eax + 0x1f68]
call fcn.004fce50
add esp, 8
jmp 0x501344
cmp ebx, 0x28
jl 0x501330
lea eax, [ebx - 0x5a]
cmp eax, 0xc
jbe 0x501320
lea eax, [ebx - 0x46]
cmp eax, 7
ja 0x50131b
mov eax, dword [ebp - 0x284]
dec eax
neg eax
sbb eax, eax
and eax, 0xa
jmp 0x50132e
cmp ebx, 0x34
jg 0x501330
mov eax, dword [ebp - 0x284]
dec eax
neg eax
sbb eax, eax
and eax, 0xf
add ebx, eax
cmp dword [edx + 0x1f68], ecx
jge 0x50134a
lea eax, [ecx - 1]
push ebx
push eax
mov ecx, edx
call fcn.004d7520
mov edx, dword [ebp - 0x274]
cmp byte [ebp - 0x299], 0
je 0x50137d
mov eax, dword [edx]
mov ebx, dword [ebp - 0x2d4]
mov ecx, dword [eax]
push ebx
push eax
call dword [ecx + 0x1c]
mov ecx, dword [ebp - 0x274]
and eax, 0xfffff000
or eax, dword [ebp - 0x2e8]
mov ecx, dword [ecx]
push eax
mov edx, dword [ecx]
push ebx
push ecx
call dword [edx + 0x20]
push dword [ebp - 0x32c]
call fcn.00510eb1
push dword [ebp - 0x338]
call fcn.00510eb1
push dword [ebp - 0x320]
call fcn.00510eb1
push dword [ebp - 0x310]
call fcn.00510eb1
add esp, 0x10
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0050ecf7
mov esp, ebp
pop ebp
ret