Function at 0x408750
Capabilities:
Encode data using base64
Parse credit card information

Disassembly:
push ecx
push ebx
push ebp
mov ebp, dword [esp + 0x10]
push esi
test ebp, ebp
push edi
je 0x40a797
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x40a797
mov dword [esp + 0x1c], eax
cmp byte [ebp], 0
je 0x40a797
mov al, byte [ebp]
test al, al
je 0x40878e
cmp al, 0x3c
je 0x40878e
mov al, byte [ebp + 1]
inc ebp
test al, al
jne 0x408782
mov al, byte [ebp]
test al, al
je 0x40a797
cmp al, 0x3c
jne 0x408771
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x20]
inc ebp
xor ebx, ebx
jmp 0x4087b0
mov esi, dword [esp + 0x20]
xor ebx, ebx
mov al, byte [ebp]
cmp al, 0x3f
jne 0x4088a3
movsx eax, byte [ebp + 1]
inc ebp
push eax
call fcn.004239ce
add esp, 4
test eax, eax
jne 0x4087e4
mov al, byte [ebp]
cmp al, 0x5f
je 0x4087e4
cmp al, 0x3a
je 0x4087e4
cmp al, 0x2d
je 0x4087e4
cmp al, 0x2e
jne 0x409f66
test byte [esp + 0x24], 2
je 0x409f66
mov al, byte [ebp]
mov ecx, ebp
test al, al
je 0x408804
cmp al, 0x3f
je 0x408804
mov al, byte [ebp + 1]
inc ebp
test al, al
jne 0x4087f8
mov al, byte [ebp]
test al, al
je 0x40a797
cmp al, 0x3f
jne 0x408817
mov byte [ebp], 0x2f
cmp edi, ebx
mov ebp, ecx
jne 0x408824
xor edi, edi
jmp 0x409215
mov eax, dword [edi + 0x20]
mov ecx, dword [edi + 0x1c]
cmp ecx, eax
jne 0x40884f
mov ecx, dword [edi + 0x24]
add eax, esi
shl eax, 2
push eax
push ecx
call fcn.00423896
add esp, 8
cmp eax, ebx
je 0x40884f
mov dword [edi + 0x24], eax
mov eax, dword [edi + 0x20]
add eax, esi
mov dword [edi + 0x20], eax
push 0x30
call fcn.0042380a
mov esi, eax
add esp, 4
cmp esi, ebx
je 0x409201
mov eax, 1
push 4
mov dword [esi + 0x28], ebx
mov dword [esi + 4], ebx
mov dword [esi + 0xc], 6
mov dword [esi + 0x1c], ebx
mov dword [esi + 0x10], ebx
mov dword [esi + 0x2c], eax
mov dword [esi + 8], eax
call fcn.0042380a
add esp, 4
xor edx, edx
cmp eax, ebx
mov dword [esi + 0x18], eax
setne dl
mov dword [esi + 0x14], edx
mov dword [esi + 0x24], ebx
mov dword [esi + 0x20], ebx
jmp 0x409201
cmp al, 0x21
jne 0x40914b
mov al, byte [ebp + 1]
inc ebp
cmp al, 0x2d
jne 0x408b90
mov al, byte [esp + 0x24]
inc ebp
test al, 8
je 0x408b54
cmp byte [ebp], 0x2d
jne 0x408b54
inc ebp
cmp edi, ebx
jne 0x4088d7
xor eax, eax
jmp 0x40894c
mov eax, dword [edi + 0x20]
mov ecx, dword [edi + 0x1c]
cmp ecx, eax
jne 0x408902
mov edx, dword [edi + 0x24]
add eax, esi
shl eax, 2
push eax
push edx
call fcn.00423896
add esp, 8
cmp eax, ebx
je 0x408902
mov dword [edi + 0x24], eax
mov eax, dword [edi + 0x20]
add eax, esi
mov dword [edi + 0x20], eax
push 0x30
call fcn.0042380a
add esp, 4
cmp eax, ebx
je 0x40893a
mov ecx, 1
mov dword [eax + 0x28], ebx
mov dword [eax + 4], ebx
mov dword [eax + 0xc], 5
mov dword [eax + 0x1c], ebx
mov dword [eax + 0x10], ebx
mov dword [eax + 0x2c], ecx
mov dword [eax + 8], ecx
mov dword [eax + 0x18], ebx
mov dword [eax + 0x14], ebx
mov dword [eax + 0x24], ebx
mov dword [eax + 0x20], ebx
mov dword [eax], edi
mov ecx, dword [edi + 0x1c]
mov edx, dword [edi + 0x24]
mov dword [edx + ecx*4], eax
mov ecx, dword [edi + 0x1c]
inc ecx
mov dword [edi + 0x1c], ecx
lea esi, [eax + 0x28]
mov dword [esp + 0x1c], eax
mov dword [esi], ebp
mov al, byte [ebp]
test al, al
je 0x40897f
mov dl, byte [ebp + 1]
test dl, dl
je 0x40897f
mov cl, byte [ebp + 2]
test cl, cl
je 0x40897f
cmp al, 0x2d
jne 0x408977
cmp dl, al
jne 0x408977
cmp cl, 0x3e
je 0x40897f
mov al, byte [ebp + 1]
inc ebp
test al, al
jne 0x40895c
cmp byte [ebp], 0
je 0x40a797
mov eax, dword [esp + 0x24]
mov byte [ebp], 0
test ah, 8
je 0x408aec
test ah, 0x10
je 0x408a95
cmp esi, ebx
je 0x408aec
mov eax, dword [esi]
cmp eax, ebx
je 0x408aec
cmp byte [eax], 0
jle 0x4089c9
mov eax, dword [esi]
cmp byte [eax], 0x21
jge 0x4089c9
inc eax
mov dword [esi], eax
cmp byte [eax], 0
jg 0x4089ba
mov ecx, dword [esi]
mov eax, ecx
mov dl, byte [eax]
inc eax
test dl, dl
je 0x4089db
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4089d4
sub eax, ecx
dec eax
mov dword [esp + 0x18], eax
lea edi, [eax + 1]
push edi
call fcn.0042380a
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x408aec
mov ecx, edi
xor eax, eax
mov edx, ecx
mov edi, ebx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
mov edx, 1
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [esi]
mov edi, edx
mov cl, byte [eax]
mov eax, dword [esp + 0x18]
cmp eax, edx
mov byte [ebx], cl
jle 0x408a5d
mov eax, dword [esi]
lea ecx, [eax + edx]
mov al, byte [eax + edx]
cmp al, 0x21
jge 0x408a39
cmp byte [ecx - 1], 0x21
jl 0x408a3d
mov byte [edi + ebx], 0x20
jmp 0x408a3c
mov byte [edi + ebx], al
inc edi
mov eax, dword [esp + 0x18]
inc edx
cmp edx, eax
jl 0x408a21
cmp edi, eax
jge 0x408a5d
mov ecx, dword [esi]
push edi
push ebx
push ecx
call fcn.004235dc
mov edx, dword [esi]
add esp, 0xc
mov byte [edx + edi], 0
push ebx
call fcn.004237c2
mov eax, dword [esp + 0x1c]
add esp, 4
dec eax
cmp eax, 0xffffffff
mov dword [esp + 0x18], eax
jle 0x408aec
mov esi, dword [esi]
mov cl, byte [esi + eax]
test cl, cl
jle 0x408a88
cmp cl, 0x21
jge 0x408a88
dec eax
cmp eax, 0xffffffff
jg 0x408a76
cmp eax, dword [esp + 0x18]
jge 0x408aec
mov byte [esi + eax + 1], 0
jmp 0x408aec
cmp esi, ebx
je 0x408aec
mov eax, dword [esi]
cmp eax, ebx
je 0x408aec
cmp byte [eax], 0
jle 0x408ab3
mov eax, dword [esi]
cmp byte [eax], 0x21
jge 0x408ab3
inc eax
mov dword [esi], eax
cmp byte [eax], 0
jg 0x408aa4
mov esi, dword [esi]
mov eax, esi
mov cl, byte [eax]
inc eax
test cl, cl
je 0x408ac5
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x408abe
sub eax, esi
sub eax, 2
cmp eax, 0xffffffff
mov ecx, eax
jle 0x408aec
mov dl, byte [esi + ecx]
test dl, dl
jle 0x408ae3
cmp dl, 0x21
jge 0x408ae3
dec ecx
cmp ecx, 0xffffffff
jg 0x408ad1
cmp ecx, eax
jge 0x408aec
mov byte [esi + ecx + 1], 0
mov eax, dword [esp + 0x1c]
add ebp, 2
mov edi, dword [eax]
mov dword [esp + 0x1c], edi
cmp byte [ebp], 0x3e
jne 0x40a768
inc ebp
mov al, byte [ebp]
mov ebx, ebp
test al, al
jle 0x408b19
cmp al, 0x21
jge 0x408b19
mov al, byte [ebp + 1]
inc ebp
test al, al
jg 0x408b0d
mov al, byte [ebp]
test al, al
je 0x40a797
cmp al, 0x3c
jne 0x40968c
cmp byte [ebp + 1], 0x2f
jne 0x40877b
cmp al, 0x3e
je 0x408b42
mov al, byte [ebp + 1]
inc ebp
test al, al
jne 0x408b36
cmp byte [ebp], 0
jne 0x40a75d
pop edi
mov eax, ebp
pop esi
pop ebp
pop ebx
pop ecx
ret
mov al, byte [ebp]
test al, al
je 0x408b7e
mov dl, byte [ebp + 1]
test dl, dl
je 0x408b7e
mov cl, byte [ebp + 2]
test cl, cl
je 0x408b7e
cmp al, 0x2d
jne 0x408b76
cmp dl, al
jne 0x408b76
cmp cl, 0x3e
je 0x408b7e
mov al, byte [ebp + 1]
inc ebp
test al, al
jne 0x408b5b
cmp byte [ebp], 0
je 0x40a797
add ebp, 2
jmp 0x408af9
cmp al, 0x5b
jne 0x4098fd
mov al, byte [ebp + 1]
inc ebp
cmp al, 0x49
jne 0x408e74
mov al, byte [ebp + 1]
inc ebp
cmp al, 0x4e
jne 0x408771
mov al, byte [ebp + 1]
inc ebp
cmp al, 0x43
jne 0x408771
mov al, byte [ebp + 1]
inc ebp
cmp al, 0x4c
jne 0x408771
mov al, byte [ebp + 1]
inc ebp
cmp al, 0x55
jne 0x408771
mov al, byte [ebp + 1]
inc ebp
cmp al, 0x44
jne 0x408771
mov al, byte [ebp + 1]
inc ebp
cmp al, 0x45
jne 0x408771
mov al, byte [ebp + 1]
inc ebp
cmp al, 0x5b
jne 0x408771
mov eax, dword [esp + 0x24]
inc ebp
test al, 4
je 0x408e3f
mov esi, dword [esp + 0x1c]
xor ebx, ebx
cmp esi, ebx
jne 0x408c18
mov dword [esp + 0x1c], ebx
jmp 0x408c99
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x1c]
cmp ecx, eax
jne 0x408c47
mov edi, dword [esp + 0x20]
mov ecx, dword [esi + 0x24]
add eax, edi
shl eax, 2
push eax
push ecx
call fcn.00423896
add esp, 8
cmp eax, ebx
je 0x408c47
mov dword [esi + 0x24], eax
mov eax, dword [esi + 0x20]
add eax, edi
mov dword [esi + 0x20], eax
push 0x30
call fcn.0042380a
add esp, 4
cmp eax, ebx
je 0x408c7f
mov ecx, 1
mov dword [eax + 0x28], ebx
mov dword [eax + 4], ebx
mov dword [eax + 0xc], 7
mov dword [eax + 0x1c], ebx
mov dword [eax + 0x10], ebx
mov dword [eax + 0x2c], ecx
mov dword [eax + 8], ecx
mov dword [eax + 0x18], ebx
mov dword [eax + 0x14], ebx
mov dword [eax + 0x24], ebx
mov dword [eax + 0x20], ebx
mov dword [eax], esi
mov edx, dword [esi + 0x1c]
mov ecx, dword [esi + 0x24]
mov dword [esp + 0x1c], eax
mov dword [ecx + edx*4], eax
mov ecx, dword [esi + 0x1c]
mov eax, dword [esp + 0x24]
inc ecx
mov dword [esi + 0x1c], ecx
mov edx, dword [esp + 0x1c]
lea esi, [edx + 0x28]
mov dword [esi], ebp
cmp byte [ebp], 0x5d
jne 0x408cb4
cmp byte [ebp + 1], 0x5d
jne 0x408cb4
cmp byte [ebp + 2], 0x3e
je 0x408cb7
inc ebp
jmp 0x408ca2
cmp byte [ebp], 0x5d
jne 0x408e2f
mov byte [ebp], 0
inc ebp
test ah, 1
je 0x408e2f
test ah, 0x10
je 0x408dd8
cmp esi, ebx
je 0x408e2f
mov eax, dword [esi]
cmp eax, ebx
je 0x408e2f
cmp byte [eax], 0
jle 0x408cfe
mov eax, dword [esi]
cmp byte [eax], 0x21
jge 0x408cfe
inc eax
mov dword [esi], eax
cmp byte [eax], 0
jg 0x408cef
mov ecx, dword [esi]
mov eax, ecx
mov dl, byte [eax]
inc eax
test dl, dl
je 0x408d10
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x408d09
sub eax, ecx
dec eax
mov dword [esp + 0x18], eax
lea edi, [eax + 1]
push edi
call fcn.0042380a
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x408e2f
mov ecx, edi
xor eax, eax
mov edx, ecx
mov edi, ebx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
mov edx, 1
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [esi]
mov edi, edx
mov cl, byte [eax]
mov eax, dword [esp + 0x18]
cmp eax, edx
mov byte [ebx], cl
jle 0x408d92
mov eax, dword [esi]
lea ecx, [eax + edx]
mov al, byte [eax + edx]
cmp al, 0x21
jge 0x408d6e
cmp byte [ecx - 1], 0x21
jl 0x408d72
mov byte [edi + ebx], 0x20
jmp 0x408d71
mov byte [edi + ebx], al
inc edi
mov eax, dword [esp + 0x18]
inc edx
cmp edx, eax
jl 0x408d56
cmp edi, eax
jge 0x408d92
mov ecx, dword [esi]
push edi
push ebx
push ecx
call fcn.004235dc
mov edx, dword [esi]
add esp, 0xc
mov byte [edx + edi], 0
push ebx
call fcn.004237c2
mov edx, dword [esp + 0x1c]
add esp, 4
dec edx
cmp edx, 0xffffffff
mov eax, edx
jle 0x408e2f
mov esi, dword [esi]
mov cl, byte [eax + esi]
test cl, cl
jle 0x408dbf
cmp cl, 0x21
jge 0x408dbf
dec eax
cmp eax, 0xffffffff
jg 0x408dad
cmp eax, edx
jge 0x408e2f
mov byte [eax + esi + 1], 0
mov eax, dword [esp + 0x1c]
inc ebp
mov edi, dword [eax]
mov dword [esp + 0x1c], edi
jmp 0x408af9
cmp esi, ebx
je 0x408e2f
mov eax, dword [esi]
cmp eax, ebx
je 0x408e2f
cmp byte [eax], 0
jle 0x408df6
mov eax, dword [esi]
cmp byte [eax], 0x21
jge 0x408df6
inc eax
mov dword [esi], eax
cmp byte [eax], 0
jg 0x408de7
mov esi, dword [esi]
mov eax, esi
mov cl, byte [eax]
inc eax
test cl, cl
je 0x408e08
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x408e01
sub eax, esi
sub eax, 2
cmp eax, 0xffffffff
mov ecx, eax
jle 0x408e2f
mov dl, byte [ecx + esi]
test dl, dl
jle 0x408e26
cmp dl, 0x21
jge 0x408e26
dec ecx
cmp ecx, 0xffffffff
jg 0x408e14
cmp ecx, eax
jge 0x408e2f
mov byte [ecx + esi + 1], 0
mov eax, dword [esp + 0x1c]
inc ebp
mov edi, dword [eax]
mov dword [esp + 0x1c], edi
jmp 0x408af9
mov al, byte [ebp]
test al, al
je 0x408e69
mov dl, byte [ebp + 1]
test dl, dl
je 0x408e69
mov cl, byte [ebp + 2]
test cl, cl
je 0x408e69
cmp al, 0x5d
jne 0x408e61
cmp dl, al
jne 0x408e61
cmp cl, 0x3e
je 0x408e69
mov al, byte [ebp + 1]
inc ebp
test al, al
jne 0x408e46
mov edi, dword [esp + 0x1c]
inc ebp
inc ebp
jmp 0x408af9
cmp al, 0x43
jne 0x408771
mov al, byte [ebp + 1]
inc ebp
cmp al, 0x44
jne 0x408771
mov al, byte [ebp + 1]
inc ebp
cmp al, 0x41
jne 0x408771
mov al, byte [ebp + 1]
inc ebp
cmp al, 0x54
jne 0x408771
mov al, byte [ebp + 1]
inc ebp
cmp al, 0x41
jne 0x408771
mov al, byte [ebp + 1]
inc ebp
cmp al, 0x5b
jne 0x408771
mov al, byte [esp + 0x24]
inc ebp
test al, 0x10
je 0x409116
mov esi, dword [esp + 0x1c]
xor ebx, ebx
cmp esi, ebx
jne 0x408ed3
xor eax, eax
jmp 0x408f4c
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x1c]
cmp ecx, eax
jne 0x408f02
mov edi, dword [esp + 0x20]
mov ecx, dword [esi + 0x24]
add eax, edi
shl eax, 2
push eax
push ecx
call fcn.00423896
add esp, 8
cmp eax, ebx
je 0x408f02
mov dword [esi + 0x24], eax
mov eax, dword [esi + 0x20]
add eax, edi
mov dword [esi + 0x20], eax
push 0x30
call fcn.0042380a
add esp, 4
cmp eax, ebx
je 0x408f3a
mov ecx, 1
mov dword [eax + 0x28], ebx
mov dword [eax + 4], ebx
mov dword [eax + 0xc], 4
mov dword [eax + 0x1c], ebx
mov dword [eax + 0x10], ebx
mov dword [eax + 0x2c], ecx
mov dword [eax + 8], ecx
mov dword [eax + 0x18], ebx
mov dword [eax + 0x14], ebx
mov dword [eax + 0x24], ebx
mov dword [eax + 0x20], ebx
mov dword [eax], esi
mov edx, dword [esi + 0x1c]
mov ecx, dword [esi + 0x24]
mov dword [ecx + edx*4], eax
mov ecx, dword [esi + 0x1c]
inc ecx
mov dword [esi + 0x1c], ecx
lea esi, [eax + 0x28]
mov dword [esp + 0x1c], eax
mov dword [esi], ebp
mov al, byte [ebp]
test al, al
je 0x408f7f
mov dl, byte [ebp + 1]
test dl, dl
je 0x408f7f
mov cl, byte [ebp + 2]
test cl, cl
je 0x408f7f
cmp al, 0x5d
jne 0x408f77
cmp dl, al
jne 0x408f77
cmp cl, 0x3e
je 0x408f7f
mov al, byte [ebp + 1]
inc ebp
test al, al
jne 0x408f5c
mov al, byte [ebp + 2]
test al, al
je 0x40a797
cmp byte [ebp], 0x5d
jne 0x409106
mov eax, dword [esp + 0x24]
mov byte [ebp], 0
inc ebp
test ah, 1
je 0x409106
test ah, 0x10
je 0x4090af
cmp esi, ebx
je 0x409106
mov eax, dword [esi]
cmp eax, ebx
je 0x409106
cmp byte [eax], 0
jle 0x408fd5
mov eax, dword [esi]
cmp byte [eax], 0x21
jge 0x408fd5
inc eax
mov dword [esi], eax
cmp byte [eax], 0
jg 0x408fc6
mov ecx, dword [esi]
mov eax, ecx
mov dl, byte [eax]
inc eax
test dl, dl
je 0x408fe7
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x408fe0
sub eax, ecx
dec eax
mov dword [esp + 0x18], eax
lea edi, [eax + 1]
push edi
call fcn.0042380a
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x409106
mov ecx, edi
xor eax, eax
mov edx, ecx
mov edi, ebx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
mov edx, 1
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [esi]
mov edi, edx
mov cl, byte [eax]
mov eax, dword [esp + 0x18]
cmp eax, edx
mov byte [ebx], cl
jle 0x409069
mov eax, dword [esi]
lea ecx, [edx + eax]
mov al, byte [edx + eax]
cmp al, 0x21
jge 0x409045
cmp byte [ecx - 1], 0x21
jl 0x409049
mov byte [edi + ebx], 0x20
jmp 0x409048
mov byte [edi + ebx], al
inc edi
mov eax, dword [esp + 0x18]
inc edx
cmp edx, eax
jl 0x40902d
cmp edi, eax
jge 0x409069
mov ecx, dword [esi]
push edi
push ebx
push ecx
call fcn.004235dc
mov edx, dword [esi]
add esp, 0xc
mov byte [edi + edx], 0
push ebx
call fcn.004237c2
mov edx, dword [esp + 0x1c]
add esp, 4
dec edx
cmp edx, 0xffffffff
mov eax, edx
jle 0x409106
mov esi, dword [esi]
mov cl, byte [eax + esi]
test cl, cl
jle 0x409096
cmp cl, 0x21
jge 0x409096
dec eax
cmp eax, 0xffffffff
jg 0x409084
cmp eax, edx
jge 0x409106
mov byte [eax + esi + 1], 0
mov eax, dword [esp + 0x1c]
inc ebp
mov edi, dword [eax]
mov dword [esp + 0x1c], edi
jmp 0x408af9
cmp esi, ebx
je 0x409106
mov eax, dword [esi]
cmp eax, ebx
je 0x409106
cmp byte [eax], 0
jle 0x4090cd
mov eax, dword [esi]
cmp byte [eax], 0x21
jge 0x4090cd
inc eax
mov dword [esi], eax
cmp byte [eax], 0
jg 0x4090be
mov esi, dword [esi]
mov eax, esi
mov cl, byte [eax]
inc eax
test cl, cl
je 0x4090df
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4090d8
sub eax, esi
sub eax, 2
cmp eax, 0xffffffff
mov ecx, eax
jle 0x409106
mov dl, byte [ecx + esi]
test dl, dl
jle 0x4090fd
cmp dl, 0x21
jge 0x4090fd
dec ecx
cmp ecx, 0xffffffff
jg 0x4090eb
cmp ecx, eax
jge 0x409106
mov byte [ecx + esi + 1], 0
mov eax, dword [esp + 0x1c]
inc ebp
mov edi, dword [eax]
mov dword [esp + 0x1c], edi
jmp 0x408af9
mov al, byte [ebp]
test al, al
je 0x409140
mov dl, byte [ebp + 1]
test dl, dl
je 0x409140
mov cl, byte [ebp + 2]
test cl, cl
je 0x409140
cmp al, 0x5d
jne 0x409138
cmp dl, al
jne 0x409138
cmp cl, 0x3e
je 0x409140
mov al, byte [ebp + 1]
inc ebp
test al, al
jne 0x40911d
mov edi, dword [esp + 0x1c]
inc ebp
inc ebp
jmp 0x408af9
movsx ecx, al
push ecx
call fcn.004239ce
add esp, 4
test eax, eax
jne 0x409172
mov al, byte [ebp]
cmp al, 0x5f
je 0x409172
cmp al, 0x3a
je 0x409172
cmp al, 0x2d
je 0x409172
cmp al, 0x2e
jne 0x40a740
cmp edi, ebx
jne 0x40917d
xor edi, edi
jmp 0x409215
mov eax, dword [edi + 0x20]
mov ecx, dword [edi + 0x1c]
cmp ecx, eax
jne 0x4091a8
mov edx, dword [edi + 0x24]
add eax, esi
shl eax, 2
push eax
push edx
call fcn.00423896
add esp, 8
cmp eax, ebx
je 0x4091a8
mov dword [edi + 0x24], eax
mov eax, dword [edi + 0x20]
add eax, esi
mov dword [edi + 0x20], eax
push 0x30
call fcn.0042380a
mov esi, eax
add esp, 4
cmp esi, ebx
je 0x409201
mov dword [esi + 0x28], ebx
mov dword [esi + 4], ebx
mov dword [esi + 0xc], 2
mov dword [esi + 0x1c], ebx
mov eax, 1
mov dword [esi + 0x10], ebx
mov dword [esi + 0x2c], eax
push 4
mov dword [esi + 8], eax
call fcn.0042380a
xor ecx, ecx
cmp eax, ebx
setne cl
mov dword [esi + 0x18], eax
push 4
mov dword [esi + 0x14], ecx
call fcn.0042380a
add esp, 8
xor edx, edx
cmp eax, ebx
mov dword [esi + 0x24], eax
setne dl
mov dword [esi + 0x20], edx
mov dword [esi], edi
mov eax, dword [edi + 0x1c]
mov ecx, dword [edi + 0x24]
mov dword [ecx + eax*4], esi
mov eax, dword [edi + 0x1c]
inc eax
mov dword [edi + 0x1c], eax
mov edi, esi
mov dword [esp + 0x1c], edi
mov dword [edi + 4], ebp
movsx edx, byte [ebp]
push edx
call fcn.004239ce
add esp, 4
test eax, eax
jne 0x409240
mov al, byte [ebp]
cmp al, 0x5f
je 0x409240
cmp al, 0x3a
je 0x409240
cmp al, 0x2d
je 0x409240
cmp al, 0x2e
jne 0x409243
inc ebp
jmp 0x40921c
mov cl, byte [ebp]
test cl, cl
je 0x40a797
mov byte [ebp], 0
mov al, byte [ebp + 1]
inc ebp
test al, al
je 0x40a797
cmp cl, 0x2f
je 0x409f3e
test cl, cl
jle 0x408b04
cmp cl, 0x21
jge 0x408b04
test al, al
jle 0x409288
cmp al, 0x21
jge 0x409288
mov al, byte [ebp + 1]
inc ebp
test al, al
jg 0x40927c
cmp byte [ebp], 0
je 0x40a797
movsx eax, byte [ebp]
push eax
call fcn.004239ce
add esp, 4
test eax, eax
jne 0x4092ba
mov al, byte [ebp]
cmp al, 0x5f
je 0x4092ba
cmp al, 0x3a
je 0x4092ba
cmp al, 0x2d
je 0x4092ba
cmp al, 0x2e
jne 0x408af9
test edi, edi
jne 0x4092c2
xor esi, esi
jmp 0x409327
push 0x10
call fcn.0042380a
mov esi, eax
add esp, 4
test esi, esi
je 0x4092be
mov dword [esi + 8], 0
mov eax, 1
mov dword [esi], 0
mov dword [esi + 0xc], eax
mov dword [esi + 4], eax
mov eax, dword [edi + 0x14]
cmp dword [edi + 0x10], eax
jne 0x409317
mov ebx, dword [esp + 0x20]
mov ecx, dword [edi + 0x18]
add eax, ebx
shl eax, 2
push eax
push ecx
call fcn.00423896
add esp, 8
test eax, eax
je 0x409317
mov dword [edi + 0x18], eax
mov eax, dword [edi + 0x14]
add eax, ebx
mov dword [edi + 0x14], eax
mov edx, dword [edi + 0x10]
mov eax, dword [edi + 0x18]
mov dword [eax + edx*4], esi
mov eax, dword [edi + 0x10]
inc eax
mov dword [edi + 0x10], eax
mov dword [esi], ebp
movsx ecx, byte [ebp]
push ecx
call fcn.004239ce
add esp, 4
test eax, eax
jne 0x40934d
mov al, byte [ebp]
cmp al, 0x5f
je 0x40934d
cmp al, 0x3a
je 0x40934d
cmp al, 0x2d
je 0x40934d
cmp al, 0x2e
jne 0x409350
inc ebp
jmp 0x409329
mov al, byte [ebp]
test al, al
je 0x40a797
mov byte [ebp], 0
inc ebp
mov cl, al
mov al, byte [ebp]
test al, al
je 0x40a797
test cl, cl
jle 0x409391
cmp cl, 0x21
jge 0x409391
test al, al
jle 0x409386
cmp al, 0x21
jge 0x409386
mov al, byte [ebp + 1]
inc ebp
test al, al
jg 0x40937a
mov al, byte [ebp]
test al, al
je 0x40a797
test al, al
je 0x40959c
cmp cl, 0x3d
je 0x4093a6
cmp al, 0x3d
jne 0x40959c
cmp al, 0x3d
jne 0x4093ab
inc ebp
mov al, byte [ebp]
test al, al
jle 0x4093be
cmp al, 0x21
jge 0x4093be
mov al, byte [ebp + 1]
inc ebp
test al, al
jg 0x4093b2
mov al, byte [ebp]
test al, al
je 0x40a797
cmp al, 0x22
je 0x4093d5
cmp al, 0x27
jne 0x40959c
add esi, 8
inc ebp
mov dword [esi], ebp
mov cl, byte [ebp]
test cl, cl
je 0x4093ee
cmp cl, al
je 0x4093ee
mov cl, byte [ebp + 1]
inc ebp
test cl, cl
jne 0x4093e2
cmp byte [ebp], 0
je 0x40a797
mov byte [ebp], 0
mov al, byte [ebp + 1]
inc ebp
test al, al
je 0x40a797
mov eax, dword [esp + 0x24]
test al, 0x80
je 0x409566
test ah, 0x10
je 0x40950f
test esi, esi
je 0x409566
mov eax, dword [esi]
test eax, eax
je 0x409566
cmp byte [eax], 0
jle 0x409443
mov eax, dword [esi]
cmp byte [eax], 0x21
jge 0x409443
inc eax
mov dword [esi], eax
cmp byte [eax], 0
jg 0x409434
mov ecx, dword [esi]
mov eax, ecx
mov dl, byte [eax]
inc eax
test dl, dl
je 0x409455
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x40944e
sub eax, ecx
dec eax
mov dword [esp + 0x18], eax
lea edi, [eax + 1]
push edi
call fcn.0042380a
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x409566
mov ecx, edi
xor eax, eax
mov edx, ecx
mov edi, ebx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
mov edx, 1
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [esi]
mov edi, edx
mov cl, byte [eax]
mov eax, dword [esp + 0x18]
cmp eax, edx
mov byte [ebx], cl
jle 0x4094d7
mov eax, dword [esi]
lea ecx, [edx + eax]
mov al, byte [edx + eax]
cmp al, 0x21
jge 0x4094b3
cmp byte [ecx - 1], 0x21
jl 0x4094b7
mov byte [edi + ebx], 0x20
jmp 0x4094b6
mov byte [edi + ebx], al
inc edi
mov eax, dword [esp + 0x18]
inc edx
cmp edx, eax
jl 0x40949b
cmp edi, eax
jge 0x4094d7
mov ecx, dword [esi]
push edi
push ebx
push ecx
call fcn.004235dc
mov edx, dword [esi]
add esp, 0xc
mov byte [edi + edx], 0
push ebx
call fcn.004237c2
mov eax, dword [esp + 0x1c]
add esp, 4
dec eax
cmp eax, 0xffffffff
mov dword [esp + 0x18], eax
jle 0x409566
mov esi, dword [esi]
mov cl, byte [esi + eax]
test cl, cl
jle 0x409502
cmp cl, 0x21
jge 0x409502
dec eax
cmp eax, 0xffffffff
jg 0x4094f0
cmp eax, dword [esp + 0x18]
jge 0x409566
mov byte [esi + eax + 1], 0
jmp 0x409566
test esi, esi
je 0x409566
mov eax, dword [esi]
test eax, eax
je 0x409566
cmp byte [eax], 0
jle 0x40952d
mov eax, dword [esi]
cmp byte [eax], 0x21
jge 0x40952d
inc eax
mov dword [esi], eax
cmp byte [eax], 0
jg 0x40951e
mov esi, dword [esi]
mov eax, esi
mov cl, byte [eax]
inc eax
test cl, cl
je 0x40953f
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x409538
sub eax, esi
sub eax, 2
cmp eax, 0xffffffff
mov ecx, eax
jle 0x409566
mov dl, byte [esi + ecx]
test dl, dl
jle 0x40955d
cmp dl, 0x21
jge 0x40955d
dec ecx
cmp ecx, 0xffffffff
jg 0x40954b
cmp ecx, eax
jge 0x409566
mov byte [esi + ecx + 1], 0
mov al, byte [ebp]
cmp al, 0x3e
je 0x4095d4
cmp al, 0x2f
je 0x4095de
test al, al
jle 0x409598
cmp al, 0x21
jge 0x409598
cmp al, 0x21
jge 0x409585
mov al, byte [ebp + 1]
inc ebp
test al, al
jg 0x409579
cmp byte [ebp], 0
je 0x40a797
mov edi, dword [esp + 0x1c]
jmp 0x409292
mov edi, dword [esp + 0x1c]
movsx eax, al
push eax
call fcn.004239ce
add esp, 4
test eax, eax
jne 0x409292
mov al, byte [ebp]
cmp al, 0x5f
je 0x409292
cmp al, 0x3a
je 0x409292
cmp al, 0x2d
je 0x409292
cmp al, 0x2e
jne 0x409614
jmp 0x409292
mov edi, dword [esp + 0x1c]
inc ebp
jmp 0x408b04
mov ecx, dword [esp + 0x1c]
mov al, byte [ebp + 1]
inc ebp
mov edi, dword [ecx]
test al, al
mov dword [esp + 0x1c], edi
jle 0x4095fc
cmp al, 0x21
jge 0x4095fc
mov al, byte [ebp + 1]
inc ebp
test al, al
jg 0x4095f0
mov al, byte [ebp]
test al, al
je 0x40a797
cmp al, 0x3e
jne 0x408b04
jmp 0x408b03
mov al, byte [ebp]
test al, al
je 0x408af9
cmp dword [edi + 0xc], 6
jne 0x408af9
cmp al, 0x2f
je 0x409635
mov al, byte [ebp + 1]
inc ebp
test al, al
jne 0x409629
mov al, byte [ebp]
test al, al
je 0x40a797
jle 0x40964e
cmp al, 0x21
jge 0x40964e
mov al, byte [ebp + 1]
inc ebp
test al, al
jg 0x409642
mov al, byte [ebp]
test al, al
je 0x40a797
cmp al, 0x2f
jne 0x40965e
inc ebp
mov al, byte [ebp]
test al, al
jle 0x409671
cmp al, 0x21
jge 0x409671
mov al, byte [ebp + 1]
inc ebp
test al, al
jg 0x409665
mov al, byte [ebp]
test al, al
je 0x40a797
cmp al, 0x3e
jne 0x409681
inc ebp
mov edi, dword [edi]
mov dword [esp + 0x1c], edi
jmp 0x408b04
xor esi, esi
mov ebp, ebx
cmp edi, esi
jne 0x409698
xor eax, eax
jmp 0x409713
mov eax, dword [edi + 0x20]
mov ecx, dword [edi + 0x1c]
cmp ecx, eax
jne 0x4096c9
mov esi, dword [esp + 0x20]
mov ecx, dword [edi + 0x24]
add eax, esi
shl eax, 2
push eax
push ecx
call fcn.00423896
add esp, 8
test eax, eax
je 0x4096c7
mov dword [edi + 0x24], eax
mov eax, dword [edi + 0x20]
add eax, esi
mov dword [edi + 0x20], eax
xor esi, esi
push 0x30
call fcn.0042380a
add esp, 4
cmp eax, esi
je 0x409701
mov dword [eax + 0x28], esi
mov dword [eax + 4], esi
mov dword [eax + 0xc], 3
mov dword [eax + 0x1c], esi
mov ecx, 1
mov dword [eax + 0x10], esi
mov dword [eax + 0x2c], ecx
mov dword [eax + 8], ecx
mov dword [eax + 0x18], esi
mov dword [eax + 0x14], esi
mov dword [eax + 0x24], esi
mov dword [eax + 0x20], esi
mov dword [eax], edi
mov edx, dword [edi + 0x1c]
mov ecx, dword [edi + 0x24]
mov dword [ecx + edx*4], eax
mov ecx, dword [edi + 0x1c]
inc ecx
mov dword [edi + 0x1c], ecx
lea esi, [eax + 0x28]
mov dword [esp + 0x1c], eax
mov dword [esi], ebx
mov al, byte [ebx]
test al, al
je 0x40972e
cmp al, 0x3c
je 0x40972e
mov al, byte [ebp + 1]
inc ebp
test al, al
jne 0x409722
mov al, byte [ebp]
test al, al
mov byte [esp + 0x18], al
je 0x40a797
mov byte [ebp], 0
mov al, byte [ebp + 1]
inc ebp
test al, al
je 0x40a797
mov eax, dword [esp + 0x24]
test al, 0x40
je 0x4098ab
test ah, 0x10
je 0x409854
test esi, esi
je 0x4098ab
mov eax, dword [esi]
test eax, eax
je 0x4098ab
cmp byte [eax], 0
jle 0x409788
mov eax, dword [esi]
cmp byte [eax], 0x21
jge 0x409788
inc eax
mov dword [esi], eax
cmp byte [eax], 0
jg 0x409779
mov ecx, dword [esi]
mov eax, ecx
mov dl, byte [eax]
inc eax
test dl, dl
je 0x40979a
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x409793
sub eax, ecx
dec eax
mov dword [esp + 0x10], eax
lea edi, [eax + 1]
push edi
call fcn.0042380a
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x4098ab
mov ecx, edi
xor eax, eax
mov edx, ecx
mov edi, ebx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
mov edx, 1
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [esi]
mov edi, edx
mov cl, byte [eax]
mov eax, dword [esp + 0x10]
cmp eax, edx
mov byte [ebx], cl
jle 0x40981c
mov eax, dword [esi]
lea ecx, [eax + edx]
mov al, byte [eax + edx]
cmp al, 0x21
jge 0x4097f8
cmp byte [ecx - 1], 0x21
jl 0x4097fc
mov byte [edi + ebx], 0x20
jmp 0x4097fb
mov byte [edi + ebx], al
inc edi
mov eax, dword [esp + 0x10]
inc edx
cmp edx, eax
jl 0x4097e0
cmp edi, eax
jge 0x40981c
mov ecx, dword [esi]
push edi
push ebx
push ecx
call fcn.004235dc
mov edx, dword [esi]
add esp, 0xc
mov byte [edx + edi], 0
push ebx
call fcn.004237c2
mov eax, dword [esp + 0x14]
add esp, 4
dec eax
cmp eax, 0xffffffff
mov dword [esp + 0x10], eax
jle 0x4098ab
mov esi, dword [esi]
mov cl, byte [esi + eax]
test cl, cl
jle 0x409847
cmp cl, 0x21
jge 0x409847
dec eax
cmp eax, 0xffffffff
jg 0x409835
cmp eax, dword [esp + 0x10]
jge 0x4098ab
mov byte [esi + eax + 1], 0
jmp 0x4098ab
test esi, esi
je 0x4098ab
mov eax, dword [esi]
test eax, eax
je 0x4098ab
cmp byte [eax], 0
jle 0x409872
mov eax, dword [esi]
cmp byte [eax], 0x21
jge 0x409872
inc eax
mov dword [esi], eax
cmp byte [eax], 0
jg 0x409863
mov esi, dword [esi]
mov eax, esi
mov cl, byte [eax]
inc eax
test cl, cl
je 0x409884
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x40987d
sub eax, esi
sub eax, 2
cmp eax, 0xffffffff
mov ecx, eax
jle 0x4098ab
mov dl, byte [esi + ecx]
test dl, dl
jle 0x4098a2
cmp dl, 0x21
jge 0x4098a2
dec ecx
cmp ecx, 0xffffffff
jg 0x409890
cmp ecx, eax
jge 0x4098ab
mov byte [esi + ecx + 1], 0
mov eax, dword [esp + 0x1c]
mov edi, dword [eax]
mov al, byte [esp + 0x18]
cmp al, 0x3c
mov dword [esp + 0x1c], edi
jne 0x408771
mov al, byte [ebp]
cmp al, 0x2f
jne 0x4098e5
cmp al, 0x3e
je 0x4098d4
mov al, byte [ebp + 1]
inc ebp
test al, al
jne 0x4098c8
cmp byte [ebp], 0
je 0x40a797
mov edi, dword [edi]
jmp 0x408af5
mov al, byte [ebp]
cmp al, 0x21
je 0x4087aa
test al, al
je 0x40a797
jmp 0x4087aa
mov al, byte [ebp]
cmp al, 0x44
je 0x409f89
movsx ecx, al
push ecx
call fcn.004239ce
add esp, 4
test eax, eax
jne 0x409933
mov al, byte [ebp]
cmp al, 0x5f
je 0x409933
cmp al, 0x3a
je 0x409933
cmp al, 0x2d
je 0x409933
cmp al, 0x2e
jne 0x408771
mov edi, dword [esp + 0x1c]
mov esi, ebp
movsx edx, byte [ebp]
push edx
call fcn.004239ce
add esp, 4
test eax, eax
jne 0x409959
mov al, byte [ebp]
cmp al, 0x5f
je 0x409959
cmp al, 0x3a
je 0x409959
cmp al, 0x2d
je 0x409959
cmp al, 0x2e
jne 0x40995c
inc ebp
jmp 0x409935
mov al, byte [ebp]
test al, al
je 0x40a797
mov byte [ebp], 0
inc ebp
mov bl, al
cmp byte [ebp], 0
je 0x40a797
push str.ATTLIST
push esi
mov dword [esp + 0x20], 9
call fcn.00423060
add esp, 8
test eax, eax
jne 0x40999c
mov dword [esp + 0x18], 0xa
jmp 0x4099d2
push str.ELEMENT
push esi
call fcn.00423060
add esp, 8
test eax, eax
jne 0x4099b8
mov dword [esp + 0x18], 0xb
jmp 0x4099d2
push str.NOTATION
push esi
call fcn.00423060
add esp, 8
test eax, eax
jne 0x4099d2
mov dword [esp + 0x18], 0xc
test edi, edi
je 0x409abc
mov eax, dword [edi + 0x20]
mov ecx, dword [edi + 0x1c]
cmp ecx, eax
jne 0x409a09
mov esi, dword [esp + 0x20]
add eax, esi
shl eax, 2
push eax
mov eax, dword [edi + 0x24]
push eax
call fcn.00423896
add esp, 8
test eax, eax
je 0x409a09
mov dword [edi + 0x24], eax
mov eax, dword [edi + 0x20]
add eax, esi
mov dword [edi + 0x20], eax
push 0x30
call fcn.0042380a
mov esi, eax
add esp, 4
test esi, esi
je 0x409aa8
mov eax, dword [esp + 0x18]
xor ecx, ecx
mov dword [esi + 0x28], ecx
mov dword [esi + 4], ecx
mov dword [esi + 0xc], eax
mov dword [esi + 0x1c], ecx
mov edx, 1
mov dword [esi + 0x10], ecx
mov dword [esi + 0x2c], edx
cmp eax, edx
mov dword [esi + 8], edx
je 0x409a6a
cmp eax, 3
je 0x409a6a
cmp eax, 4
je 0x409a6a
cmp eax, 7
je 0x409a6a
cmp eax, 5
je 0x409a6a
push 4
call fcn.0042380a
add esp, 4
mov dword [esi + 0x18], eax
mov eax, dword [esp + 0x18]
xor ecx, ecx
jmp 0x409a6d
mov dword [esi + 0x18], ecx
xor edx, edx
cmp dword [esi + 0x18], ecx
setne dl
cmp eax, 2
mov dword [esi + 0x14], edx
je 0x409a8c
cmp eax, 8
je 0x409a8c
cmp eax, 1
je 0x409a8c
mov dword [esi + 0x24], ecx
jmp 0x409a9b
push 4
call fcn.0042380a
add esp, 4
mov dword [esi + 0x24], eax
xor ecx, ecx
mov edx, dword [esi + 0x24]
xor eax, eax
cmp edx, ecx
setne al
mov dword [esi + 0x20], eax
mov dword [esi], edi
mov ecx, dword [edi + 0x1c]
mov edx, dword [edi + 0x24]
mov dword [edx + ecx*4], esi
mov eax, dword [edi + 0x1c]
inc eax
mov dword [edi + 0x1c], eax
mov edi, esi
mov al, byte [ebp]
mov dword [esp + 0x1c], edi
test al, al
je 0x40a731
test bl, bl
jle 0x40a731
cmp bl, 0x21
jge 0x40a731
test al, al
jle 0x409aec
cmp al, 0x21
jge 0x409aec
mov al, byte [ebp + 1]
inc ebp
test al, al
jg 0x409ae0
mov al, byte [ebp]
test al, al
je 0x40a797
movsx eax, al
push eax
call fcn.004239ce
add esp, 4
test eax, eax
jne 0x409b22
mov al, byte [ebp]
cmp al, 0x5f
je 0x409b22
cmp al, 0x3a
je 0x409b22
cmp al, 0x2d
je 0x409b22
cmp al, 0x2e
je 0x409b22
cmp al, 0x25
jne 0x40a731
mov al, byte [ebp]
mov ecx, ebp
cmp al, 0x25
jne 0x409b5d
mov al, byte [ebp + 1]
inc ebp
test al, al
jle 0x409b58
cmp al, 0x21
jge 0x409b58
cmp al, 0x21
jge 0x409b43
mov al, byte [ebp + 1]
inc ebp
test al, al
jg 0x409b37
cmp byte [ebp], 0
je 0x40a797
lea eax, [ebp - 1]
mov byte [eax], 0x25
mov dword [edi + 4], eax
jmp 0x409b60
mov dword [edi + 4], ecx
jmp 0x409b60
mov dword [edi + 4], ebp
movsx ecx, byte [ebp]
push ecx
call fcn.004239ce
add esp, 4
test eax, eax
jne 0x409b84
mov al, byte [ebp]
cmp al, 0x5f
je 0x409b84
cmp al, 0x3a
je 0x409b84
cmp al, 0x2d
je 0x409b84
cmp al, 0x2e
jne 0x409b87
inc ebp
jmp 0x409b60
mov al, byte [ebp]
test al, al
je 0x40a797
mov byte [ebp], 0
inc ebp
mov dl, al
mov al, byte [ebp]
test al, al
je 0x40a797
test dl, dl
jle 0x40a731
cmp dl, 0x21
jge 0x40a731
test al, al
jle 0x409bc5
cmp al, 0x21
jge 0x409bc5
mov al, byte [ebp + 1]
inc ebp
test al, al
jg 0x409bb9
cmp byte [ebp], 0
je 0x40a797
mov eax, dword [esp + 0x18]
lea esi, [edi + 0x28]
cmp eax, 9
mov dword [esi], ebp
jne 0x409d9d
xor ecx, ecx
mov al, byte [ebp]
test al, al
je 0x40a5b7
test ecx, ecx
jne 0x409c04
cmp al, 0x22
je 0x409bfa
cmp al, 0x27
jne 0x409c0d
mov dl, al
mov ecx, 1
inc ebp
jmp 0x409be3
cmp al, dl
jne 0x409c11
xor ecx, ecx
inc ebp
jmp 0x409be3
cmp al, 0x3e
je 0x409c14
inc ebp
jmp 0x409be3
mov eax, dword [esp + 0x24]
mov byte [ebp], 0
inc ebp
test ah, 2
je 0x409f2f
test ah, 0x10
je 0x409d36
test esi, esi
je 0x409f2f
mov eax, dword [esi]
test eax, eax
je 0x409f2f
cmp byte [eax], 0
jle 0x409c55
mov eax, dword [esi]
cmp byte [eax], 0x21
jge 0x409c55
inc eax
mov dword [esi], eax
cmp byte [eax], 0
jg 0x409c46
mov ecx, dword [esi]
mov eax, ecx
mov dl, byte [eax]
inc eax
test dl, dl
je 0x409c67
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x409c60
sub eax, ecx
dec eax
mov dword [esp + 0x18], eax
lea edi, [eax + 1]
push edi
call fcn.0042380a
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x409f2f
mov ecx, edi
xor eax, eax
mov edx, ecx
mov edi, ebx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
mov edx, 1
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [esi]
mov edi, edx
mov cl, byte [eax]
mov eax, dword [esp + 0x18]
cmp eax, edx
mov byte [ebx], cl
jle 0x409ce9
mov eax, dword [esi]
lea ecx, [edx + eax]
mov al, byte [edx + eax]
cmp al, 0x21
jge 0x409cc5
cmp byte [ecx - 1], 0x21
jl 0x409cc9
mov byte [edi + ebx], 0x20
jmp 0x409cc8
mov byte [edi + ebx], al
inc edi
mov eax, dword [esp + 0x18]
inc edx
cmp edx, eax
jl 0x409cad
cmp edi, eax
jge 0x409ce9
mov ecx, dword [esi]
push edi
push ebx
push ecx
call fcn.004235dc
mov edx, dword [esi]
add esp, 0xc
mov byte [edi + edx], 0
push ebx
call fcn.004237c2
mov eax, dword [esp + 0x1c]
add esp, 4
dec eax
cmp eax, 0xffffffff
mov dword [esp + 0x18], eax
jle 0x409f2f
mov esi, dword [esi]
mov cl, byte [eax + esi]
test cl, cl
jle 0x409d18
cmp cl, 0x21
jge 0x409d18
dec eax
cmp eax, 0xffffffff
jg 0x409d06
cmp eax, dword [esp + 0x18]
jge 0x409f2f
mov byte [eax + esi + 1], 0
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
mov dword [esp + 0x1c], ecx
jmp 0x40877b
test esi, esi
je 0x409f2f
mov eax, dword [esi]
test eax, eax
je 0x409f2f
cmp byte [eax], 0
jle 0x409d5c
mov eax, dword [esi]
cmp byte [eax], 0x21
jge 0x409d5c
inc eax
mov dword [esi], eax
cmp byte [eax], 0
jg 0x409d4d
mov esi, dword [esi]
mov eax, esi
mov cl, byte [eax]
inc eax
test cl, cl
je 0x409d6e
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x409d67
sub eax, esi
sub eax, 2
cmp eax, 0xffffffff
mov ecx, eax
jle 0x409f2f
mov dl, byte [ecx + esi]
test dl, dl
jle 0x409f26
cmp dl, 0x21
jge 0x409f26
dec ecx
cmp ecx, 0xffffffff
jg 0x409d7e
jmp 0x409f26
mov al, byte [ebp]
test al, al
je 0x409db0
cmp al, 0x3e
je 0x409db0
mov al, byte [ebp + 1]
inc ebp
test al, al
jne 0x409da4
cmp byte [ebp], 0
je 0x40a797
mov eax, dword [esp + 0x24]
mov byte [ebp], 0
inc ebp
test ah, 2
je 0x409f2f
test ah, 0x10
je 0x409ed8
test esi, esi
je 0x409f2f
mov eax, dword [esi]
test eax, eax
je 0x409f2f
cmp byte [eax], 0
jle 0x409dfb
mov eax, dword [esi]
cmp byte [eax], 0x21
jge 0x409dfb
inc eax
mov dword [esi], eax
cmp byte [eax], 0
jg 0x409dec
mov ecx, dword [esi]
mov eax, ecx
mov dl, byte [eax]
inc eax
test dl, dl
je 0x409e0d
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x409e06
sub eax, ecx
dec eax
mov dword [esp + 0x18], eax
lea edi, [eax + 1]
push edi
call fcn.0042380a
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x409f2f
mov ecx, edi
xor eax, eax
mov edx, ecx
mov edi, ebx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
mov edx, 1
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [esi]
mov edi, edx
mov cl, byte [eax]
mov eax, dword [esp + 0x18]
cmp eax, edx
mov byte [ebx], cl
jle 0x409e8f
mov eax, dword [esi]
lea ecx, [edx + eax]
mov al, byte [edx + eax]
cmp al, 0x21
jge 0x409e6b
cmp byte [ecx - 1], 0x21
jl 0x409e6f
mov byte [edi + ebx], 0x20
jmp 0x409e6e
mov byte [edi + ebx], al
inc edi
mov eax, dword [esp + 0x18]
inc edx
cmp edx, eax
jl 0x409e53
cmp edi, eax
jge 0x409e8f
mov ecx, dword [esi]
push edi
push ebx
push ecx
call fcn.004235dc
mov edx, dword [esi]
add esp, 0xc
mov byte [edi + edx], 0
push ebx
call fcn.004237c2
mov eax, dword [esp + 0x1c]
add esp, 4
dec eax
cmp eax, 0xffffffff
mov dword [esp + 0x18], eax
jle 0x409f2f
mov esi, dword [esi]
mov cl, byte [eax + esi]
test cl, cl
jle 0x409ebe
cmp cl, 0x21
jge 0x409ebe
dec eax
cmp eax, 0xffffffff
jg 0x409eac
cmp eax, dword [esp + 0x18]
jge 0x409f2f
mov byte [eax + esi + 1], 0
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
mov dword [esp + 0x1c], ecx
jmp 0x40877b
test esi, esi
je 0x409f2f
mov eax, dword [esi]
test eax, eax
je 0x409f2f
cmp byte [eax], 0
jle 0x409ef6
mov eax, dword [esi]
cmp byte [eax], 0x21
jge 0x409ef6
inc eax
mov dword [esi], eax
cmp byte [eax], 0
jg 0x409ee7
mov esi, dword [esi]
mov eax, esi
mov cl, byte [eax]
inc eax
test cl, cl
je 0x409f08
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x409f01
sub eax, esi
sub eax, 2
cmp eax, 0xffffffff
mov ecx, eax
jle 0x409f2f
mov dl, byte [ecx + esi]
test dl, dl
jle 0x409f26
cmp dl, 0x21
jge 0x409f26
dec ecx
cmp ecx, 0xffffffff
jg 0x409f14
cmp ecx, eax
jge 0x409f2f
mov byte [ecx + esi + 1], 0
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
mov dword [esp + 0x1c], ecx
jmp 0x40877b
mov al, byte [ebp]
test al, al
je 0x409f51
cmp al, 0x3e
je 0x409f51
mov al, byte [ebp + 1]
inc ebp
test al, al
jne 0x409f45
cmp byte [ebp], 0
je 0x40a797
mov edx, dword [edi]
mov dword [esp + 0x1c], edx
jmp 0x408771
mov al, byte [ebp]
test al, al
je 0x409f79
cmp al, 0x3e
je 0x409f79
mov al, byte [ebp + 1]
inc ebp
test al, al
jne 0x409f6d
cmp byte [ebp], 0
je 0x40a797
inc ebp
jmp 0x408771
mov al, byte [ebp + 1]
inc ebp
cmp al, 0x4f
jne 0x408771
mov al, byte [ebp + 1]
inc ebp
cmp al, 0x43
jne 0x408771
mov al, byte [ebp + 1]
inc ebp
cmp al, 0x54
jne 0x408771
mov al, byte [ebp + 1]
inc ebp
cmp al, 0x59
jne 0x408771
mov al, byte [ebp + 1]
inc ebp
cmp al, 0x50
jne 0x408771
mov al, byte [ebp + 1]
inc ebp
cmp al, 0x45
jne 0x408771
mov al, byte [ebp + 1]
inc ebp
test al, al
jle 0x409fe5
cmp al, 0x21
jge 0x409fe5
mov al, byte [ebp + 1]
inc ebp
test al, al
jg 0x409fd9
cmp byte [ebp], 0
je 0x40a797
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x1c]
and eax, 4
mov dword [esp + 0x18], eax
je 0x40a120
xor edi, edi
cmp ebx, edi
jne 0x40a015
mov dword [esp + 0x1c], edi
xor ebx, ebx
jmp 0x40a117
mov eax, dword [ebx + 0x20]
mov ecx, dword [ebx + 0x1c]
cmp ecx, eax
jne 0x40a044
mov esi, dword [esp + 0x20]
add eax, esi
shl eax, 2
push eax
mov eax, dword [ebx + 0x24]
push eax
call fcn.00423896
add esp, 8
cmp eax, edi
je 0x40a044
mov dword [ebx + 0x24], eax
mov eax, dword [ebx + 0x20]
add eax, esi
mov dword [ebx + 0x20], eax
push 0x30
call fcn.0042380a
mov esi, eax
add esp, 4
cmp esi, edi
je 0x40a09d
mov eax, 1
push 4
mov dword [esi + 0x28], edi
mov dword [esi + 4], edi
mov dword [esi + 0xc], 8
mov dword [esi + 0x1c], edi
mov dword [esi + 0x10], edi
mov dword [esi + 0x2c], eax
mov dword [esi + 8], eax
call fcn.0042380a
xor ecx, ecx
cmp eax, edi
setne cl
push 4
mov dword [esi + 0x18], eax
mov dword [esi + 0x14], ecx
call fcn.0042380a
add esp, 8
xor edx, edx
cmp eax, edi
mov dword [esi + 0x24], eax
setne dl
mov dword [esi + 0x20], edx
mov dword [esi], ebx
mov eax, dword [ebx + 0x1c]
mov ecx, dword [ebx + 0x24]
mov dword [esp + 0x1c], esi
mov dword [ecx + eax*4], esi
mov ecx, dword [ebx + 0x1c]
inc ecx
cmp esi, edi
mov dword [ebx + 0x1c], ecx
jne 0x40a0bb
xor ebx, ebx
jmp 0x40a117
push 0x10
call fcn.0042380a
mov ebx, eax
add esp, 4
cmp ebx, edi
je 0x40a0b7
mov eax, 1
mov dword [ebx + 8], edi
mov dword [ebx], edi
mov dword [ebx + 0xc], eax
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x14]
cmp dword [esi + 0x10], eax
jne 0x40a107
lea edx, [eax*4 + 0xc]
mov eax, dword [esi + 0x18]
push edx
push eax
call fcn.00423896
add esp, 8
cmp eax, edi
je 0x40a107
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x14]
add eax, 3
mov dword [esi + 0x14], eax
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 0x18]
mov dword [edx + ecx*4], ebx
mov eax, dword [esi + 0x10]
inc eax
mov dword [esi + 0x10], eax
mov dword [ebx], ebp
mov dword [ebx + 8], ebp
mov ebx, dword [esp + 0x1c]
movsx eax, byte [ebp]
push eax
call fcn.004239ce
add esp, 4
test eax, eax
jne 0x40a144
mov al, byte [ebp]
cmp al, 0x5f
je 0x40a144
cmp al, 0x3a
je 0x40a144
cmp al, 0x2d
je 0x40a144
cmp al, 0x2e
jne 0x40a147
inc ebp
jmp 0x40a120
mov al, byte [ebp]
test al, al
je 0x40a797
mov byte [ebp], 0
inc ebp
mov cl, al
mov al, byte [ebp]
test al, al
je 0x40a797
test cl, cl
jle 0x40a187
cmp cl, 0x21
jge 0x40a187
test al, al
jle 0x40a17d
cmp al, 0x21
jge 0x40a17d
mov al, byte [ebp + 1]
inc ebp
test al, al
jg 0x40a171
cmp byte [ebp], 0
je 0x40a797
movsx ecx, byte [ebp]
push ecx
call fcn.004239ce
add esp, 4
test eax, eax
jne 0x40a1af
mov al, byte [ebp]
cmp al, 0x5f
je 0x40a1af
cmp al, 0x3a
je 0x40a1af
cmp al, 0x2d
je 0x40a1af
cmp al, 0x2e
jne 0x40a27c
mov edi, ebp
movsx edx, byte [ebp]
push edx
call fcn.004239ce
add esp, 4
test eax, eax
jne 0x40a1d5
mov al, byte [ebp]
cmp al, 0x5f
je 0x40a1d5
cmp al, 0x3a
je 0x40a1d5
cmp al, 0x2d
je 0x40a1d5
cmp al, 0x2e
jne 0x40a1d8
inc ebp
jmp 0x40a1b1
cmp byte [ebp], 0
je 0x40a797
mov eax, dword [esp + 0x18]
test eax, eax
je 0x40a25d
test ebx, ebx
jne 0x40a1f2
xor esi, esi
jmp 0x40a254
push 0x10
call fcn.0042380a
mov esi, eax
add esp, 4
test esi, esi
je 0x40a1ee
mov eax, 1
mov dword [esi + 8], 0
mov dword [esi], 0
mov dword [esi + 0xc], eax
mov dword [esi + 4], eax
mov eax, dword [ebx + 0x14]
cmp dword [ebx + 0x10], eax
jne 0x40a244
mov ecx, dword [ebx + 0x18]
lea eax, [eax*4 + 4]
push eax
push ecx
call fcn.00423896
add esp, 8
test eax, eax
je 0x40a244
mov dword [ebx + 0x18], eax
mov eax, dword [ebx + 0x14]
inc eax
mov dword [ebx + 0x14], eax
mov edx, dword [ebx + 0x10]
mov eax, dword [ebx + 0x18]
mov dword [eax + edx*4], esi
mov eax, dword [ebx + 0x10]
inc eax
mov dword [ebx + 0x10], eax
mov dword [esi], edi
mov dword [esi + 8], edi
mov byte [ebp], 0
mov al, byte [ebp + 1]
inc ebp
test al, al
jle 0x40a271
cmp al, 0x21
jge 0x40a271
mov al, byte [ebp + 1]
inc ebp
test al, al
jg 0x40a265
mov al, byte [ebp]
test al, al
je 0x40a797
cmp al, 0x22
je 0x40a288
cmp al, 0x27
jne 0x40a389
inc ebp
mov cl, al
mov edi, ebp
mov al, byte [ebp]
test al, al
je 0x40a2a0
cmp al, cl
je 0x40a2a0
mov al, byte [ebp + 1]
inc ebp
test al, al
jne 0x40a294
cmp byte [ebp], 0
je 0x40a389
mov eax, dword [esp + 0x18]
test eax, eax
je 0x40a323
test ebx, ebx
jne 0x40a2ba
xor esi, esi
jmp 0x40a31c
push 0x10
call fcn.0042380a
mov esi, eax
add esp, 4
test esi, esi
je 0x40a2b6
mov dword [esi + 8], 0
mov eax, 1
mov dword [esi], 0
mov dword [esi + 0xc], eax
mov dword [esi + 4], eax
mov eax, dword [ebx + 0x14]
cmp dword [ebx + 0x10], eax
jne 0x40a30c
mov edx, dword [ebx + 0x18]
lea ecx, [eax*4 + 4]
push ecx
push edx
call fcn.00423896
add esp, 8
test eax, eax
je 0x40a30c
mov dword [ebx + 0x18], eax
mov eax, dword [ebx + 0x14]
inc eax
mov dword [ebx + 0x14], eax
mov eax, dword [ebx + 0x10]
mov ecx, dword [ebx + 0x18]
mov dword [ecx + eax*4], esi
mov eax, dword [ebx + 0x10]
inc eax
mov dword [ebx + 0x10], eax
mov dword [esi + 8], edi
mov byte [ebp], 0
mov al, byte [ebp + 1]
inc ebp
test al, al
jle 0x40a337
cmp al, 0x21
jge 0x40a337
mov al, byte [ebp + 1]
inc ebp
test al, al
jg 0x40a32b
mov al, byte [ebp]
test al, al
je 0x40a797
cmp al, 0x22
je 0x40a288
cmp al, 0x27
je 0x40a288
movsx edx, al
push edx
call fcn.004239ce
add esp, 4
test eax, eax
jne 0x40a187
mov al, byte [ebp]
cmp al, 0x5f
je 0x40a187
cmp al, 0x3a
je 0x40a187
cmp al, 0x2d
je 0x40a187
cmp al, 0x2e
je 0x40a187
cmp byte [ebp], 0x5b
jne 0x40a5ac
mov edx, dword [esp + 0x18]
inc ebp
test edx, edx
je 0x40a39f
mov dword [ebx + 0x28], ebp
mov al, byte [ebp]
mov ecx, 1
test al, al
je 0x40a3c3
cmp al, 0x5d
jne 0x40a3b2
dec ecx
jmp 0x40a3b7
cmp al, 0x5b
jne 0x40a3b7
inc ecx
test ecx, ecx
je 0x40a3c3
mov al, byte [ebp + 1]
inc ebp
test al, al
jne 0x40a3ab
test edx, edx
je 0x40a58a
mov ecx, dword [esp + 0x24]
mov byte [ebp], 0
mov eax, ecx
and eax, 0x2000
jne 0x40a557
test ch, 0x40
jne 0x40a557
test ch, 4
je 0x40a57f
test ch, 0x10
je 0x40a4fb
add ebx, 0x28
test ebx, ebx
je 0x40a57f
mov eax, dword [ebx]
test eax, eax
je 0x40a57f
cmp byte [eax], 0
jle 0x40a424
mov eax, dword [ebx]
cmp byte [eax], 0x21
jge 0x40a424
inc eax
mov dword [ebx], eax
cmp byte [eax], 0
jg 0x40a415
mov esi, dword [ebx]
mov eax, esi
mov cl, byte [eax]
inc eax
test cl, cl
je 0x40a436
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x40a42f
sub eax, esi
dec eax
mov dword [esp + 0x18], eax
lea edi, [eax + 1]
push edi
call fcn.0042380a
mov esi, eax
add esp, 4
test esi, esi
je 0x40a57f
mov ecx, edi
xor eax, eax
mov edx, ecx
mov edi, esi
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
mov edx, 1
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [ebx]
mov edi, edx
mov cl, byte [eax]
mov eax, dword [esp + 0x18]
cmp eax, edx
mov byte [esi], cl
jle 0x40a4b8
mov eax, dword [ebx]
lea ecx, [edx + eax]
mov al, byte [edx + eax]
cmp al, 0x21
jge 0x40a494
cmp byte [ecx - 1], 0x21
jl 0x40a498
mov byte [edi + esi], 0x20
jmp 0x40a497
mov byte [edi + esi], al
inc edi
mov eax, dword [esp + 0x18]
inc edx
cmp edx, eax
jl 0x40a47c
cmp edi, eax
jge 0x40a4b8
mov ecx, dword [ebx]
push edi
push esi
push ecx
call fcn.004235dc
mov edx, dword [ebx]
add esp, 0xc
mov byte [edi + edx], 0
push esi
call fcn.004237c2
mov eax, dword [esp + 0x1c]
add esp, 4
dec eax
cmp eax, 0xffffffff
mov dword [esp + 0x18], eax
jle 0x40a57f
mov ebx, dword [ebx]
mov cl, byte [ebx + eax]
test cl, cl
jle 0x40a4e7
cmp cl, 0x21
jge 0x40a4e7
dec eax
cmp eax, 0xffffffff
jg 0x40a4d5
cmp eax, dword [esp + 0x18]
jge 0x40a57f
mov byte [ebx + eax + 1], 0
jmp 0x40a57f
lea eax, [ebx + 0x28]
test eax, eax
je 0x40a57f
mov ecx, dword [eax]
test ecx, ecx
je 0x40a57f
cmp byte [ecx], 0
jle 0x40a51c
mov ecx, dword [eax]
cmp byte [ecx], 0x21
jge 0x40a51c
inc ecx
mov dword [eax], ecx
cmp byte [ecx], 0
jg 0x40a50d
mov esi, dword [eax]
mov eax, esi
mov cl, byte [eax]
inc eax
test cl, cl
je 0x40a52e
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x40a527
sub eax, esi
sub eax, 2
cmp eax, 0xffffffff
mov ecx, eax
jle 0x40a57f
mov dl, byte [esi + ecx]
test dl, dl
jle 0x40a54c
cmp dl, 0x21
jge 0x40a54c
dec ecx
cmp ecx, 0xffffffff
jg 0x40a53a
cmp ecx, eax
jge 0x40a57f
mov byte [esi + ecx + 1], 0
jmp 0x40a57f
test eax, eax
je 0x40a576
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
mov edx, dword [ebx + 0x28]
push eax
push ecx
push ebx
push edx
call fcn.00408750
mov ecx, dword [esp + 0x34]
add esp, 0x10
test ch, 0x40
jne 0x40a78e
mov eax, dword [esp + 0x1c]
inc ebp
mov ecx, dword [eax]
mov dword [esp + 0x1c], ecx
mov al, byte [ebp]
test al, al
je 0x40a59d
cmp al, 0x3e
je 0x40a59d
mov al, byte [ebp + 1]
inc ebp
test al, al
jne 0x40a591
cmp byte [ebp], 0
je 0x40a797
jmp 0x408771
mov edx, dword [ebx]
mov dword [esp + 0x1c], edx
jmp 0x408771
mov eax, dword [esp + 0x24]
test ah, 2
je 0x40a731
test ah, 0x10
je 0x40a6d7
mov eax, dword [esp + 0x1c]
lea ebx, [eax + 0x28]
test ebx, ebx
je 0x40a731
mov eax, dword [ebx]
test eax, eax
je 0x40a731
cmp byte [eax], 0
jle 0x40a5fa
mov eax, dword [ebx]
cmp byte [eax], 0x21
jge 0x40a5fa
inc eax
mov dword [ebx], eax
cmp byte [eax], 0
jg 0x40a5eb
mov esi, dword [ebx]
mov eax, esi
mov cl, byte [eax]
inc eax
test cl, cl
je 0x40a60c
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x40a605
sub eax, esi
dec eax
mov dword [esp + 0x18], eax
lea edi, [eax + 1]
push edi
call fcn.0042380a
mov esi, eax
add esp, 4
test esi, esi
je 0x40a731
mov ecx, edi
xor eax, eax
mov edx, ecx
mov edi, esi
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
mov edx, 1
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [ebx]
mov edi, edx
mov cl, byte [eax]
mov eax, dword [esp + 0x18]
cmp eax, edx
mov byte [esi], cl
jle 0x40a68e
mov eax, dword [ebx]
lea ecx, [edx + eax]
mov al, byte [edx + eax]
cmp al, 0x21
jge 0x40a66a
cmp byte [ecx - 1], 0x21
jl 0x40a66e
mov byte [edi + esi], 0x20
jmp 0x40a66d
mov byte [edi + esi], al
inc edi
mov eax, dword [esp + 0x18]
inc edx
cmp edx, eax
jl 0x40a652
cmp edi, eax
jge 0x40a68e
mov ecx, dword [ebx]
push edi
push esi
push ecx
call fcn.004235dc
mov edx, dword [ebx]
add esp, 0xc
mov byte [edi + edx], 0
push esi
call fcn.004237c2
mov eax, dword [esp + 0x1c]
add esp, 4
dec eax
cmp eax, 0xffffffff
mov dword [esp + 0x18], eax
jle 0x40a731
mov ebx, dword [ebx]
mov cl, byte [ebx + eax]
test cl, cl
jle 0x40a6bd
cmp cl, 0x21
jge 0x40a6bd
dec eax
cmp eax, 0xffffffff
jg 0x40a6ab
cmp eax, dword [esp + 0x18]
jge 0x40a731
mov byte [ebx + eax + 1], 0
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
mov dword [esp + 0x1c], ecx
jmp 0x408771
lea eax, [edi + 0x28]
test eax, eax
je 0x40a731
mov ecx, dword [eax]
test ecx, ecx
je 0x40a731
cmp byte [ecx], 0
jle 0x40a6f8
mov ecx, dword [eax]
cmp byte [ecx], 0x21
jge 0x40a6f8
inc ecx
mov dword [eax], ecx
cmp byte [ecx], 0
jg 0x40a6e9
mov esi, dword [eax]
mov eax, esi
mov cl, byte [eax]
inc eax
test cl, cl
je 0x40a70a
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x40a703
sub eax, esi
sub eax, 2
cmp eax, 0xffffffff
mov ecx, eax
jle 0x40a731
mov dl, byte [ecx + esi]
test dl, dl
jle 0x40a728
cmp dl, 0x21
jge 0x40a728
dec ecx
cmp ecx, 0xffffffff
jg 0x40a716
cmp ecx, eax
jge 0x40a731
mov byte [ecx + esi + 1], 0
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
mov dword [esp + 0x1c], ecx
jmp 0x408771
mov al, byte [ebp]
cmp al, 0x2f
jne 0x408771
cmp al, 0x3e
je 0x40a757
mov al, byte [ebp + 1]
inc ebp
test al, al
jne 0x40a74b
cmp byte [ebp], 0
je 0x40a797
mov edx, dword [esp + 0x1c]
mov eax, dword [edx]
jmp 0x40876d
cmp byte [ebp], 0x2f
jne 0x408771
mov al, byte [ebp + 1]
inc ebp
cmp al, 0x3e
jne 0x408771
mov ecx, dword [esp + 0x1c]
inc ebp
mov edx, dword [ecx]
mov dword [esp + 0x1c], edx
jmp 0x408771
pop edi
lea eax, [ebp + 1]
pop esi
pop ebp
pop ebx
pop ecx
ret
pop edi
mov eax, ebp
pop esi
pop ebp
pop ebx
pop ecx
ret