Function at 0x465fb9
Capabilities:
Authenticate hmac
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffddc
push ebx
push esi
push edi
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
xor eax, eax
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 0x18], eax
xor edx, edx
mov dword [ebp - 0x1c], edx
xor ecx, ecx
mov dword [ebp - 0x20], ecx
xor ecx, ecx
mov eax, dword [ebp - 4]
mov edx, dword [eax]
xor eax, eax
mov dword [ebp - 0x48], edx
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x50], eax
xor eax, eax
mov edx, dword [ebp - 8]
mov esi, dword [edx]
xor edx, edx
mov dword [ebp - 0x54], esi
mov dword [ebp - 0x58], esi
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x64], edx
mov ecx, dword [ebp - 0xc]
xor edx, edx
mov eax, dword [ecx]
xor ecx, ecx
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x70], edx
mov dword [ebp - 0x74], ecx
xor eax, eax
mov dword [ebp - 0x78], eax
test byte [ebp - 0x47], 8
setne dl
and edx, 1
mov dword [ebp - 0x80], edx
mov edx, 0xfffffffe
test byte [ebp - 0x47], 2
setne cl
and ecx, 1
mov dword [ebp - 0x24], ecx
mov eax, dword [ebp - 0x24]
xor eax, 1
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x2c], edx
test byte [ebp - 0x48], 1
je 0x46558a
mov eax, pe_nt_image_headers32
jmp 0x46558c
xor eax, eax
mov dword [ebp - 0x3c], eax
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp + 8]
test eax, eax
movzx edi, byte [edx]
je 0x465639
mov edx, dword [ebx + 0x10]
add edx, 0x1000
cmp esi, edx
jbe 0x4655bb
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0x34
jmp 0x4694fc
mov eax, dword [ebp - 0x54]
cmp esi, eax
jae 0x4655c5
mov esi, dword [ebp - 0x54]
mov eax, dword [ebp + 8]
mov edx, 0x7fffffeb
mov ecx, dword [eax]
mov eax, esi
sub edx, ecx
mov ecx, dword [ebp - 0x54]
sub eax, ecx
cmp edx, eax
jge 0x4655ea
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x14
jmp 0x4694fc
mov eax, esi
mov edx, dword [ebp - 0x54]
sub eax, edx
mov ecx, dword [ebp + 8]
add dword [ecx], eax
mov eax, dword [ebp - 0x70]
test eax, eax
je 0x465631
mov edx, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x58]
cmp edx, ecx
jbe 0x465634
mov eax, esi
mov edx, dword [ebp - 0x70]
sub eax, edx
push eax
mov ecx, dword [ebp - 0x70]
push ecx
mov eax, dword [ebp - 0x58]
push eax
call sub.MSVCRT.DLL_memmove
mov edx, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x58]
add esp, 0xc
sub edx, ecx
mov eax, dword [ebp - 0x58]
sub esi, edx
mov dword [ebp - 0x70], eax
jmp 0x465634
mov esi, dword [ebp - 0x58]
mov dword [ebp - 0x54], esi
jmp 0x465656
mov eax, dword [ebx + 0x10]
add eax, 0x1000
mov edx, dword [ebx + 0x20]
cmp eax, edx
jae 0x465656
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0x34
jmp 0x4694fc
mov eax, dword [ebp - 0x60]
test eax, eax
je 0x4656c2
test edi, edi
je 0x4656c2
cmp edi, 0x5c
jne 0x465682
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx + 1]
cmp ecx, 0x45
jne 0x465682
xor eax, eax
mov dword [ebp - 0x60], eax
inc dword [ebp - 0x68]
jmp 0x4694f4
mov edx, dword [ebp - 0x74]
test edx, edx
je 0x4656a2
mov ecx, dword [ebp + 8]
test ecx, ecx
jne 0x46569d
mov ecx, ebx
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x74]
call fcn.004649d0
xor eax, eax
mov dword [ebp - 0x74], eax
test byte [ebp - 0x47], 0x40
je 0x4693b8
mov dword [ebp - 0x74], esi
mov ecx, ebx
mov edx, dword [ebp - 0x68]
mov eax, esi
call fcn.004649a4
mov esi, eax
jmp 0x4693b8
cmp edi, 0x2a
je 0x4656e7
cmp edi, 0x2b
je 0x4656e7
cmp edi, 0x3f
je 0x4656e7
cmp edi, 0x7b
jne 0x4656e3
mov eax, dword [ebp - 0x68]
inc eax
call fcn.00463d4c
test eax, eax
jne 0x4656e7
xor edx, edx
jmp 0x4656ec
mov edx, 1
mov dword [ebp - 0xa0], edx
mov ecx, dword [ebp - 0xa0]
test ecx, ecx
jne 0x465727
mov eax, dword [ebp - 0x74]
test eax, eax
je 0x465727
mov edx, dword [ebp - 0x4c]
add dword [ebp - 0x4c], 0xffffffff
test edx, edx
jg 0x465727
mov ecx, dword [ebp + 8]
test ecx, ecx
jne 0x465722
mov ecx, ebx
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x74]
call fcn.004649d0
xor eax, eax
mov dword [ebp - 0x74], eax
test byte [ebp - 0x48], 8
je 0x4657e2
mov edx, dword [ebx + 0xc]
test byte [edx + edi], 1
jne 0x4694f4
cmp edi, 0x23
jne 0x4657e2
jmp 0x4657c3
mov ecx, dword [ebx + 0x50]
test ecx, ecx
je 0x46577f
mov eax, dword [ebx + 0x1c]
mov edx, dword [ebp - 0x68]
cmp eax, edx
jbe 0x465774
lea ecx, [ebx + 0x54]
push ecx
mov eax, dword [ebp - 0x80]
push eax
mov ecx, dword [ebx + 0x1c]
mov edx, dword [ebx + 0x50]
mov eax, dword [ebp - 0x68]
call fcn.00473658
test eax, eax
jne 0x465778
xor edx, edx
jmp 0x4657b6
mov edx, 1
jmp 0x4657b6
mov ecx, dword [ebx + 0x1c]
mov eax, dword [ebx + 0x54]
sub ecx, eax
mov edx, dword [ebp - 0x68]
cmp ecx, edx
jb 0x4657ad
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx]
mov dl, byte [ebx + 0x58]
cmp al, dl
jne 0x4657ad
mov ecx, dword [ebx + 0x54]
dec ecx
je 0x4657b1
mov eax, dword [ebp - 0x68]
mov dl, byte [eax + 1]
mov cl, byte [ebx + 0x59]
cmp dl, cl
je 0x4657b1
xor edx, edx
jmp 0x4657b6
mov edx, 1
test edx, edx
je 0x4657c3
mov eax, dword [ebx + 0x54]
dec eax
add dword [ebp - 0x68], eax
jmp 0x4657d3
inc dword [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx]
test al, al
jne 0x465749
mov edx, dword [ebp - 0x68]
mov cl, byte [edx]
test cl, cl
jne 0x4694f4
xor edi, edi
test byte [ebp - 0x47], 0x40
je 0x465803
mov eax, dword [ebp - 0xa0]
test eax, eax
jne 0x465803
mov dword [ebp - 0x74], esi
mov ecx, ebx
mov edx, dword [ebp - 0x68]
mov eax, esi
call fcn.004649a4
mov esi, eax
mov edx, edi
cmp edx, 0x3f
jg 0x465851
je 0x466f39
cmp edx, 0x29
jg 0x465833
je 0x465889
sub edx, 1
jb 0x465889
sub edx, 0x23
je 0x465909
sub edx, 4
je 0x467cb1
jmp 0x4693b8
sub edx, 0x2a
je 0x466f1b
dec edx
je 0x466f29
sub edx, 3
je 0x465917
jmp 0x4693b8
cmp edx, 0x5e
jg 0x465878
je 0x4658e6
sub edx, 0x5b
je 0x465966
dec edx
je 0x46902a
dec edx
je 0x465949
jmp 0x4693b8
sub edx, 0x7b
je 0x466ee8
dec edx
je 0x465889
jmp 0x4693b8
mov ecx, dword [ebp + 0x18]
mov eax, dword [ebp - 0x2c]
mov dword [ecx], eax
mov edx, dword [ebp + 0x14]
mov ecx, dword [ebp - 0x30]
mov dword [edx], ecx
mov eax, dword [ebp - 8]
mov dword [eax], esi
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x68]
mov dword [edx], ecx
mov eax, dword [ebp + 8]
test eax, eax
je 0x4658dc
mov edx, dword [ebp + 8]
mov ecx, 0x7fffffeb
mov eax, dword [edx]
mov edx, esi
sub ecx, eax
mov eax, dword [ebp - 0x54]
sub edx, eax
cmp ecx, edx
jge 0x4658d2
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x14
jmp 0x4694fc
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x54]
sub esi, ecx
add dword [eax], esi
mov eax, 1
jmp 0x469506
test byte [ebp - 0x48], 2
je 0x4658fb
mov edx, dword [ebp - 0x2c]
cmp edx, 0xfffffffe
jne 0x4658fb
mov dword [ebp - 0x2c], 0xffffffff
xor ecx, ecx
mov dword [ebp - 0x70], ecx
mov byte [esi], 0x1a
inc esi
jmp 0x4694f4
xor eax, eax
mov dword [ebp - 0x70], eax
mov byte [esi], 0x1b
inc esi
jmp 0x4694f4
mov edx, dword [ebp - 0x2c]
cmp edx, 0xfffffffe
jne 0x465926
mov dword [ebp - 0x2c], 0xffffffff
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x38], ecx
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x70], esi
test byte [ebp - 0x48], 4
je 0x46593f
mov dl, 0xd
jmp 0x465941
mov dl, 0xc
mov byte [esi], dl
inc esi
jmp 0x4694f4
test byte [ebx + 0x43], 2
je 0x4693b8
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x40
jmp 0x4694fc
mov dword [ebp - 0x70], esi
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx + 1]
cmp eax, 0x3a
je 0x465990
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx + 1]
cmp ecx, 0x2e
je 0x465990
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x3d
jne 0x4659c2
lea edx, [ebp - 0x6c]
mov eax, dword [ebp - 0x68]
call fcn.0046484c
test eax, eax
je 0x4659c2
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx + 1]
cmp eax, 0x3a
jne 0x4659b3
mov edx, 0xd
jmp 0x4659b8
mov edx, 0x1f
mov eax, dword [ebp + 0x1c]
mov dword [eax], edx
jmp 0x4694fc
xor ecx, ecx
mov dword [ebp - 0x94], ecx
inc dword [ebp - 0x68]
mov eax, dword [ebp - 0x68]
movzx edi, byte [eax]
cmp edi, 0x5c
jne 0x465a08
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x45
jne 0x4659ea
inc dword [ebp - 0x68]
jmp 0x4659ca
push 3
push 0x48eb01
mov ecx, dword [ebp - 0x68]
inc ecx
push ecx
call sub.MSVCRT.DLL_strncmp
add esp, 0xc
test eax, eax
jne 0x465a23
add dword [ebp - 0x68], 3
jmp 0x4659ca
mov eax, dword [ebp - 0x94]
test eax, eax
jne 0x465a23
cmp edi, 0x5e
jne 0x465a23
mov dword [ebp - 0x94], 1
jmp 0x4659ca
cmp edi, 0x5d
jne 0x465a5b
test byte [ebx + 0x43], 2
je 0x465a5b
mov edx, dword [ebp - 0x94]
test edx, edx
je 0x465a3c
mov cl, 0xd
jmp 0x465a3e
mov cl, 0x6d
mov byte [esi], cl
inc esi
mov eax, dword [ebp - 0x2c]
cmp eax, 0xfffffffe
jne 0x465a50
mov dword [ebp - 0x2c], 0xffffffff
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x38], edx
jmp 0x4694f4
xor eax, eax
xor edx, edx
mov dword [ebp - 0x98], eax
mov dword [ebp - 0xac], edx
mov dword [ebp - 0xb0], 0xffffffff
push 0x20
lea ecx, [ebp - 0x1fc]
push 0
push ecx
call sub.MSVCRT.DLL_memset
xor eax, eax
lea edx, [esi + 4]
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x84], edx
mov ecx, dword [ebp - 0x84]
add esp, 0xc
test edi, edi
mov dword [ebp - 0x88], ecx
je 0x466cd5
mov eax, dword [ebp - 0x80]
test eax, eax
je 0x465b74
cmp edi, 0x7f
jle 0x465b74
mov edx, dword [ebp - 0x68]
movzx edi, byte [edx]
cmp edi, 0xc0
jl 0x465b74
mov eax, edi
and eax, 0x3f
xor edx, edx
mov dl, byte [eax + 0x48ef1c]
mov dword [ebp - 0xe4], edx
mov ecx, dword [ebp - 0xe4]
add ecx, ecx
lea ecx, [ecx + ecx*2]
mov dword [ebp - 0xe8], ecx
mov ecx, dword [ebp - 0xe8]
mov eax, dword [ebp - 0xe4]
mov edx, dword [eax*4 + 0x48ec18]
and edi, edx
shl edi, cl
mov dword [ebp - 0xe0], 1
mov eax, dword [ebp - 0x68]
lea edx, [eax + 1]
mov dword [ebp - 0x1d8], edx
mov ecx, dword [ebp - 0xe0]
mov eax, dword [ebp - 0xe4]
cmp ecx, eax
jg 0x465b6b
sub dword [ebp - 0xe8], 6
mov ecx, dword [ebp - 0xe8]
mov edx, dword [ebp - 0x1d8]
xor eax, eax
mov al, byte [edx]
and eax, 0x3f
shl eax, cl
or edi, eax
inc dword [ebp - 0xe0]
inc dword [ebp - 0x1d8]
mov edx, dword [ebp - 0xe0]
mov ecx, dword [ebp - 0xe4]
cmp edx, ecx
jle 0x465b31
mov eax, dword [ebp - 0xe4]
add dword [ebp - 0x68], eax
mov edx, dword [ebp + 8]
test edx, edx
je 0x465b9a
mov ecx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x88]
sub ecx, eax
mov edx, dword [ebp + 8]
add dword [edx], ecx
mov ecx, dword [ebp - 0x88]
mov dword [ebp - 0x84], ecx
mov eax, dword [ebp - 0x60]
test eax, eax
je 0x465bcd
cmp edi, 0x5c
jne 0x466712
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx + 1]
cmp ecx, 0x45
jne 0x466712
xor eax, eax
mov dword [ebp - 0x60], eax
inc dword [ebp - 0x68]
jmp 0x466cb4
cmp edi, 0x5b
jne 0x465e80
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx + 1]
cmp ecx, 0x3a
je 0x465c01
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x2e
je 0x465c01
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx + 1]
cmp eax, 0x3d
jne 0x465e80
lea edx, [ebp - 0x6c]
mov eax, dword [ebp - 0x68]
call fcn.0046484c
test eax, eax
je 0x465e80
xor edx, edx
mov dword [ebp - 0xec], edx
mov ecx, dword [ebx + 8]
mov dword [ebp - 0xfc], ecx
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x3a
je 0x465c40
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0x1f
jmp 0x4694fc
add dword [ebp - 0x68], 2
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x5e
jne 0x465c67
mov dword [ebp - 0xec], 1
mov dword [ebp - 0x98], 1
inc dword [ebp - 0x68]
mov edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x68]
sub edx, eax
mov eax, dword [ebp - 0x68]
call fcn.004648a0
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
test edx, edx
jge 0x465c95
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0x1e
jmp 0x4694fc
test byte [ebp - 0x48], 1
je 0x465cae
mov eax, dword [ebp - 0xf0]
cmp eax, 2
jg 0x465cae
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
lea ecx, [ecx + ecx*2]
mov dword [ebp - 0xf0], ecx
push 0x20
mov eax, dword [ebp - 0xf0]
mov edx, dword [eax*4 + 0x48dfa8]
mov ecx, dword [ebp - 0xfc]
add edx, ecx
push edx
lea eax, [ebp - 0x21c]
push eax
call sub.MSVCRT.DLL_memcpy
add esp, 0xc
mov edx, dword [ebp - 0xf0]
mov ecx, dword [edx*4 + 0x48dfac]
mov dword [ebp - 0xf4], ecx
mov eax, dword [ebp - 0xf0]
mov edx, dword [eax*4 + 0x48dfb0]
mov dword [ebp - 0xf8], edx
mov ecx, dword [ebp - 0xf4]
test ecx, ecx
jl 0x465db0
mov eax, dword [ebp - 0xf8]
test eax, eax
jl 0x465d69
xor edi, edi
lea eax, [ebp - 0x21c]
mov dword [ebp - 0x1dc], eax
mov edx, dword [ebp - 0xfc]
mov ecx, dword [ebp - 0xf4]
lea eax, [edx + ecx]
mov dword [ebp - 0x1d8], eax
mov edx, dword [ebp - 0x1d8]
mov eax, dword [ebp - 0x1dc]
inc edi
mov cl, byte [edx]
or byte [eax], cl
inc dword [ebp - 0x1dc]
inc dword [ebp - 0x1d8]
cmp edi, 0x20
jl 0x465d45
jmp 0x465db0
xor edi, edi
lea eax, [ebp - 0x21c]
mov dword [ebp - 0x1d8], eax
mov edx, dword [ebp - 0xfc]
mov ecx, dword [ebp - 0xf4]
lea eax, [edx + ecx]
mov dword [ebp - 0x1dc], eax
mov edx, dword [ebp - 0x1dc]
mov eax, dword [ebp - 0x1d8]
inc edi
mov cl, byte [edx]
not cl
and byte [eax], cl
inc dword [ebp - 0x1d8]
inc dword [ebp - 0x1dc]
cmp edi, 0x20
jl 0x465d8c
mov edx, dword [ebp - 0xf8]
test edx, edx
jge 0x465dc0
neg dword [ebp - 0xf8]
mov ecx, dword [ebp - 0xf8]
dec ecx
jne 0x465dd2
and byte [ebp - 0x21b], 0xc3
jmp 0x465de4
mov eax, dword [ebp - 0xf8]
cmp eax, 2
jne 0x465de4
and byte [ebp - 0x211], 0x7f
mov edx, dword [ebp - 0xec]
test edx, edx
je 0x465e2e
xor edi, edi
lea eax, [ebp - 0x1fc]
mov dword [ebp - 0x1dc], eax
lea edx, [ebp - 0x21c]
mov dword [ebp - 0x1d8], edx
mov ecx, dword [ebp - 0x1d8]
mov edx, dword [ebp - 0x1dc]
inc edi
mov al, byte [ecx]
not al
or byte [edx], al
inc dword [ebp - 0x1dc]
inc dword [ebp - 0x1d8]
cmp edi, 0x20
jl 0x465e08
jmp 0x465e6a
xor edi, edi
lea eax, [ebp - 0x1fc]
mov dword [ebp - 0x1d8], eax
lea edx, [ebp - 0x21c]
mov dword [ebp - 0x1dc], edx
mov ecx, dword [ebp - 0x1dc]
mov edx, dword [ebp - 0x1d8]
inc edi
mov al, byte [ecx]
or byte [edx], al
inc dword [ebp - 0x1d8]
inc dword [ebp - 0x1dc]
cmp edi, 0x20
jl 0x465e48
mov ecx, dword [ebp - 0x6c]
inc ecx
mov dword [ebp - 0x68], ecx
mov dword [ebp - 0xac], 0xa
jmp 0x466cb4
cmp edi, 0x5c
jne 0x466712
mov eax, dword [ebp - 0x48]
push eax
push 1
lea eax, [ebp - 0x68]
mov ecx, dword [ebx + 0x30]
mov edx, dword [ebp + 0x1c]
call fcn.00463828
mov edi, eax
mov eax, dword [ebp + 0x1c]
mov edx, dword [eax]
test edx, edx
jne 0x4694fc
mov ecx, edi
neg ecx
cmp ecx, 5
jne 0x465ebc
mov edi, 8
jmp 0x465f23
mov eax, edi
neg eax
cmp eax, 0x16
jne 0x465ecc
mov edi, 0x58
jmp 0x465f23
mov eax, edi
neg eax
cmp eax, 0x11
jne 0x465edc
mov edi, 0x52
jmp 0x465f23
mov eax, edi
neg eax
cmp eax, 0x1a
jne 0x465f16
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx + 1]
cmp ecx, 0x5c
jne 0x465f08
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax + 2]
cmp edx, 0x45
jne 0x465f08
add dword [ebp - 0x68], 2
jmp 0x466cb4
mov dword [ebp - 0x60], 1
jmp 0x466cb4
mov ecx, edi
neg ecx
cmp ecx, 0x19
je 0x466cb4
test edi, edi
jge 0x466712
mov eax, dword [ebx + 8]
mov dword [ebp - 0x100], eax
add dword [ebp - 0xac], 2
mov edx, dword [ebp + 8]
test edx, edx
jne 0x466145
mov ecx, edi
neg ecx
add ecx, 0xfffffffa
cmp ecx, 5
ja case.default.0x465f56
jmp dword [ecx*4 + 0x465f5d]
xor edi, edi
lea eax, [ebp - 0x1fc]
mov dword [ebp - 0x1dc], eax
mov edx, dword [ebp - 0x100]
lea ecx, [edx + 0x40]
mov dword [ebp - 0x1d8], ecx
mov eax, dword [ebp - 0x1d8]
mov ecx, dword [ebp - 0x1dc]
inc edi
mov dl, byte [eax]
or byte [ecx], dl
inc dword [ebp - 0x1dc]
inc dword [ebp - 0x1d8]
cmp edi, 0x20
jl 0x465f92
jmp 0x466cb4
mov dword [ebp - 0x98], 1
xor edi, edi
lea eax, [ebp - 0x1fc]
mov dword [ebp - 0x1d8], eax
mov edx, dword [ebp - 0x100]
lea ecx, [edx + 0x40]
mov dword [ebp - 0x1dc], ecx
mov eax, dword [ebp - 0x1dc]
mov ecx, dword [ebp - 0x1d8]
inc edi
mov dl, byte [eax]
not dl
or byte [ecx], dl
inc dword [ebp - 0x1d8]
inc dword [ebp - 0x1dc]
cmp edi, 0x20
jl 0x465fe0
jmp 0x466cb4
xor edi, edi
lea eax, [ebp - 0x1fc]
mov dword [ebp - 0x1dc], eax
mov edx, dword [ebp - 0x100]
lea ecx, [edx + 0xa0]
mov dword [ebp - 0x1d8], ecx
mov eax, dword [ebp - 0x1d8]
mov ecx, dword [ebp - 0x1dc]
inc edi
mov dl, byte [eax]
or byte [ecx], dl
inc dword [ebp - 0x1dc]
inc dword [ebp - 0x1d8]
cmp edi, 0x20
jl 0x466029
jmp 0x466cb4
mov dword [ebp - 0x98], 1
xor edi, edi
lea eax, [ebp - 0x1fc]
mov dword [ebp - 0x1d8], eax
mov edx, dword [ebp - 0x100]
lea ecx, [edx + 0xa0]
mov dword [ebp - 0x1dc], ecx
mov eax, dword [ebp - 0x1dc]
mov ecx, dword [ebp - 0x1d8]
inc edi
mov dl, byte [eax]
not dl
or byte [ecx], dl
inc dword [ebp - 0x1d8]
inc dword [ebp - 0x1dc]
cmp edi, 0x20
jl 0x46607a
jmp 0x466cb4
xor edi, edi
lea eax, [ebp - 0x1fc]
mov dword [ebp - 0x1dc], eax
mov edx, dword [ebp - 0x100]
mov ecx, edx
mov dword [ebp - 0x1d8], ecx
mov eax, dword [ebp - 0x1d8]
mov ecx, dword [ebp - 0x1dc]
inc edi
mov dl, byte [eax]
or byte [ecx], dl
inc dword [ebp - 0x1dc]
inc dword [ebp - 0x1d8]
cmp edi, 0x20
jl 0x4660bf
and byte [ebp - 0x1fb], 0xf7
jmp 0x466cb4
mov dword [ebp - 0x98], 1
xor edi, edi
lea eax, [ebp - 0x1fc]
mov dword [ebp - 0x1d8], eax
mov edx, dword [ebp - 0x100]
mov ecx, edx
mov dword [ebp - 0x1dc], ecx
mov eax, dword [ebp - 0x1dc]
mov ecx, dword [ebp - 0x1d8]
inc edi
mov dl, byte [eax]
not dl
or byte [ecx], dl
inc dword [ebp - 0x1d8]
inc dword [ebp - 0x1dc]
cmp edi, 0x20
jl 0x466113
or byte [ebp - 0x1fb], 8
jmp 0x466cb4
cmp edi, 0xfffffff9
je 0x466cb4
cmp edi, 0xfffffffa
je 0x466cb4
cmp edi, 0xfffffff5
je 0x466cb4
cmp edi, 0xfffffff6
je 0x466cb4
cmp edi, 0xfffffff7
je 0x466cb4
cmp edi, 0xfffffff8
je 0x466cb4
mov eax, edi
neg eax
cmp eax, 0x13
jne 0x4662a8
or byte [ebp - 0x1fb], 2
or byte [ebp - 0x1f8], 1
or byte [ebp - 0x1e8], 1
mov edx, dword [ebp - 0x80]
test edx, edx
je 0x466cb4
mov dword [ebp - 0x7c], 1
mov ecx, dword [ebp - 0x84]
mov eax, 0x1680
mov byte [ecx], 1
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.0047394c
add dword [ebp - 0x84], eax
mov eax, 0x180e
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 1
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.0047394c
add dword [ebp - 0x84], eax
mov eax, 0x2000
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 2
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.0047394c
add dword [ebp - 0x84], eax
mov eax, 0x200a
mov edx, dword [ebp - 0x84]
call fcn.0047394c
add dword [ebp - 0x84], eax
mov eax, 0x202f
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 1
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.0047394c
add dword [ebp - 0x84], eax
mov eax, 0x205f
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 1
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.0047394c
add dword [ebp - 0x84], eax
mov eax, 0x3000
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 1
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.0047394c
add dword [ebp - 0x84], eax
jmp 0x466cb4
mov ecx, edi
neg ecx
cmp ecx, 0x12
jne 0x4664c5
xor edi, edi
lea eax, [ebp - 0x1fc]
mov dword [ebp - 0x1d8], eax
mov dword [ebp - 0x104], 0xff
mov edx, edi
dec edx
je 0x4662de
sub edx, 3
je 0x4662e7
sub edx, 0x10
je 0x4662f0
jmp 0x4662f7
xor dword [ebp - 0x104], 2
jmp 0x4662f7
xor dword [ebp - 0x104], 1
jmp 0x4662f7
xor dword [ebp - 0x104], 1
mov cl, byte [ebp - 0x104]
mov eax, dword [ebp - 0x1d8]
or byte [eax], cl
inc edi
inc dword [ebp - 0x1d8]
cmp edi, 0x20
jl 0x4662c3
mov edx, dword [ebp - 0x80]
test edx, edx
je 0x466cb4
mov dword [ebp - 0x7c], 1
mov ecx, dword [ebp - 0x84]
mov eax, pe_nt_image_headers32
mov byte [ecx], 2
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.0047394c
add dword [ebp - 0x84], eax
mov eax, 0x167f
mov edx, dword [ebp - 0x84]
call fcn.0047394c
add dword [ebp - 0x84], eax
mov eax, 0x1681
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 2
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.0047394c
add dword [ebp - 0x84], eax
mov eax, 0x180d
mov edx, dword [ebp - 0x84]
call fcn.0047394c
add dword [ebp - 0x84], eax
mov eax, 0x180f
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 2
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.0047394c
add dword [ebp - 0x84], eax
mov eax, 0x1fff
mov edx, dword [ebp - 0x84]
call fcn.0047394c
add dword [ebp - 0x84], eax
mov eax, 0x200b
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 2
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.0047394c
add dword [ebp - 0x84], eax
mov eax, 0x202e
mov edx, dword [ebp - 0x84]
call fcn.0047394c
add dword [ebp - 0x84], eax
mov eax, 0x2030
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 2
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.0047394c
add dword [ebp - 0x84], eax
mov eax, 0x205e
mov edx, dword [ebp - 0x84]
call fcn.0047394c
add dword [ebp - 0x84], eax
mov eax, 0x2060
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 2
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.0047394c
add dword [ebp - 0x84], eax
mov eax, 0x2fff
mov edx, dword [ebp - 0x84]
call fcn.0047394c
add dword [ebp - 0x84], eax
mov eax, 0x3001
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 2
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.0047394c
add dword [ebp - 0x84], eax
mov eax, 0x7fffffff
mov edx, dword [ebp - 0x84]
call fcn.0047394c
add dword [ebp - 0x84], eax
jmp 0x466cb4
mov ecx, edi
neg ecx
cmp ecx, 0x15
jne 0x466543
or byte [ebp - 0x1fb], 4
or byte [ebp - 0x1fb], 8
or byte [ebp - 0x1fb], 0x10
or byte [ebp - 0x1fb], 0x20
or byte [ebp - 0x1ec], 0x20
mov eax, dword [ebp - 0x80]
test eax, eax
je 0x466cb4
mov dword [ebp - 0x7c], 1
mov edx, dword [ebp - 0x84]
mov eax, 0x2028
mov byte [edx], 2
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.0047394c
add dword [ebp - 0x84], eax
mov eax, 0x2029
mov edx, dword [ebp - 0x84]
call fcn.0047394c
add dword [ebp - 0x84], eax
jmp 0x466cb4
mov ecx, edi
neg ecx
cmp ecx, 0x14
jne 0x466640
xor edi, edi
lea eax, [ebp - 0x1fc]
mov dword [ebp - 0x1d8], eax
mov dword [ebp - 0x108], 0xff
mov edx, edi
dec edx
je 0x466574
sub edx, 0xf
je 0x466592
jmp 0x466599
xor dword [ebp - 0x108], 4
xor dword [ebp - 0x108], 8
xor dword [ebp - 0x108], 0x10
xor dword [ebp - 0x108], 0x20
jmp 0x466599
xor dword [ebp - 0x108], 0x20
mov cl, byte [ebp - 0x108]
mov eax, dword [ebp - 0x1d8]
or byte [eax], cl
inc edi
inc dword [ebp - 0x1d8]
cmp edi, 0x20
jl 0x46655e
mov edx, dword [ebp - 0x80]
test edx, edx
je 0x466cb4
mov dword [ebp - 0x7c], 1
mov ecx, dword [ebp - 0x84]
mov eax, pe_nt_image_headers32
mov byte [ecx], 2
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.0047394c
add dword [ebp - 0x84], eax
mov eax, 0x2027
mov edx, dword [ebp - 0x84]
call fcn.0047394c
add dword [ebp - 0x84], eax
mov eax, 0x2029
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 2
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.0047394c
add dword [ebp - 0x84], eax
mov eax, 0x7fffffff
mov edx, dword [ebp - 0x84]
call fcn.0047394c
add dword [ebp - 0x84], eax
jmp 0x466cb4
mov ecx, edi
neg ecx
cmp ecx, 0x10
je 0x466656
mov eax, edi
neg eax
cmp eax, 0xf
jne 0x4666e6
mov edx, dword [ebp + 0x1c]
lea ecx, [ebp - 0x110]
push edx
lea edx, [ebp - 0x10c]
lea eax, [ebp - 0x68]
call fcn.00463c24
mov dword [ebp - 0x114], eax
mov ecx, dword [ebp - 0x114]
test ecx, ecx
jl 0x4694fc
mov dword [ebp - 0x7c], 1
neg edi
cmp edi, 0x10
sete al
and eax, 1
mov edx, dword [ebp - 0x10c]
cmp eax, edx
je 0x4666a2
mov cl, 3
jmp 0x4666a4
mov cl, 4
mov eax, dword [ebp - 0x84]
mov byte [eax], cl
inc dword [ebp - 0x84]
mov dl, byte [ebp - 0x114]
mov eax, dword [ebp - 0x84]
mov byte [eax], dl
inc dword [ebp - 0x84]
mov dl, byte [ebp - 0x110]
mov ecx, dword [ebp - 0x84]
mov byte [ecx], dl
inc dword [ebp - 0x84]
sub dword [ebp - 0xac], 2
jmp 0x466cb4
test byte [ebp - 0x48], 0x40
je 0x4666fa
mov eax, dword [ebp + 0x1c]
mov dword [eax], 7
jmp 0x4694fc
sub dword [ebp - 0xac], 2
mov edx, dword [ebp - 0x68]
movzx edi, byte [edx]
jmp 0x466712
xor eax, eax
mov dword [ebp - 0x60], eax
add dword [ebp - 0x68], 2
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx + 1]
cmp ecx, 0x5c
jne 0x46672c
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax + 2]
cmp edx, 0x45
je 0x466709
mov ecx, dword [ebp - 0x68]
cmp edi, 0xd
mov dword [ebp - 0xdc], ecx
je 0x46673f
cmp edi, 0xa
jne 0x466743
or dword [ebx + 0x44], 0x20
mov eax, dword [ebp - 0x60]
test eax, eax
jne 0x466bd5
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx + 1]
cmp ecx, 0x2d
jne 0x466bd5
add dword [ebp - 0x68], 2
jmp 0x466769
add dword [ebp - 0x68], 2
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x5c
jne 0x4667b0
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx + 1]
cmp eax, 0x45
je 0x466765
jmp 0x4667b0
add dword [ebp - 0x68], 2
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x5c
jne 0x4667a7
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x45
jne 0x4667a7
add dword [ebp - 0x68], 2
jmp 0x4667b0
mov dword [ebp - 0x60], 1
jmp 0x4667c9
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x5c
jne 0x4667c9
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx + 1]
cmp ecx, 0x51
je 0x466784
mov eax, dword [ebp - 0x68]
mov dl, byte [eax]
test dl, dl
je 0x4667e5
mov ecx, dword [ebp - 0x60]
test ecx, ecx
jne 0x4667f3
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x5d
jne 0x4667f3
mov ecx, dword [ebp - 0xdc]
mov dword [ebp - 0x68], ecx
jmp 0x466bd5
mov eax, dword [ebp - 0x80]
test eax, eax
je 0x4668c7
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
mov dword [ebp - 0x118], ecx
mov eax, dword [ebp - 0x118]
cmp eax, 0xc0
jl 0x4668d4
mov edx, dword [ebp - 0x118]
and edx, 0x3f
xor ecx, ecx
mov cl, byte [edx + 0x48ef1c]
mov dword [ebp - 0x120], ecx
mov eax, dword [ebp - 0x120]
add eax, eax
lea eax, [eax + eax*2]
mov dword [ebp - 0x124], eax
mov ecx, dword [ebp - 0x124]
mov edx, dword [ebp - 0x120]
mov eax, dword [edx*4 + 0x48ec18]
mov edx, dword [ebp - 0x118]
and eax, edx
shl eax, cl
mov dword [ebp - 0x118], eax
mov dword [ebp - 0x11c], 1
mov ecx, dword [ebp - 0x11c]
mov eax, dword [ebp - 0x120]
cmp ecx, eax
jg 0x4668bc
sub dword [ebp - 0x124], 6
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x11c]
mov ecx, dword [ebp - 0x124]
movzx edx, byte [edx + eax]
and edx, 0x3f
shl edx, cl
or dword [ebp - 0x118], edx
inc dword [ebp - 0x11c]
mov ecx, dword [ebp - 0x11c]
mov eax, dword [ebp - 0x120]
cmp ecx, eax
jle 0x466881
mov edx, dword [ebp - 0x120]
add dword [ebp - 0x68], edx
jmp 0x4668d4
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx]
mov dword [ebp - 0x118], eax
mov edx, dword [ebp - 0x60]
test edx, edx
jne 0x466972
mov ecx, dword [ebp - 0x118]
cmp ecx, 0x5c
jne 0x466972
mov eax, dword [ebp - 0x48]
push eax
push 1
lea eax, [ebp - 0x68]
mov ecx, dword [ebx + 0x30]
mov edx, dword [ebp + 0x1c]
call fcn.00463828
mov dword [ebp - 0x118], eax
mov eax, dword [ebp + 0x1c]
mov edx, dword [eax]
test edx, edx
jne 0x4694fc
mov ecx, dword [ebp - 0x118]
test ecx, ecx
jge 0x466972
mov eax, dword [ebp - 0x118]
cmp eax, 0xfffffffb
jne 0x466936
mov dword [ebp - 0x118], 8
jmp 0x466972
mov edx, dword [ebp - 0x118]
cmp edx, 0xffffffea
jne 0x46694d
mov dword [ebp - 0x118], 0x58
jmp 0x466972
mov ecx, dword [ebp - 0x118]
cmp ecx, 0xffffffef
jne 0x466964
mov dword [ebp - 0x118], 0x52
jmp 0x466972
mov eax, dword [ebp - 0xdc]
mov dword [ebp - 0x68], eax
jmp 0x466bd5
mov edx, dword [ebp - 0x118]
cmp edi, edx
jle 0x46698a
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 8
jmp 0x4694fc
mov eax, dword [ebp - 0x118]
cmp edi, eax
je 0x466bd5
mov edx, dword [ebp - 0x118]
cmp edx, 0xd
je 0x4669ae
mov ecx, dword [ebp - 0x118]
cmp ecx, 0xa
jne 0x4669b2
or dword [ebx + 0x44], 0x20
mov eax, dword [ebp - 0x80]
test eax, eax
je 0x466b3d
mov edx, dword [ebp - 0x118]
cmp edx, 0xff
jg 0x4669e4
test byte [ebp - 0x48], 1
je 0x466b3d
mov ecx, dword [ebp - 0x118]
cmp ecx, 0x7f
jle 0x466b3d
mov dword [ebp - 0x7c], 1
test byte [ebp - 0x48], 1
je 0x466aff
mov dword [ebp - 0x130], edi
mov eax, dword [ebp - 0x118]
mov dword [ebp - 0x134], eax
jmp 0x466ad9
mov edx, dword [ebp - 0x128]
cmp edx, edi
jb 0x466a2a
mov ecx, dword [ebp - 0x12c]
mov eax, dword [ebp - 0x118]
cmp ecx, eax
jbe 0x466ad9
mov edx, dword [ebp - 0x128]
cmp edi, edx
jbe 0x466a4c
mov ecx, edi
dec ecx
mov eax, dword [ebp - 0x12c]
cmp ecx, eax
ja 0x466a4c
mov edi, dword [ebp - 0x128]
jmp 0x466ad9
mov eax, dword [ebp - 0x118]
mov edx, dword [ebp - 0x12c]
cmp eax, edx
jae 0x466a7b
mov ecx, dword [ebp - 0x118]
inc ecx
mov eax, dword [ebp - 0x128]
cmp ecx, eax
jb 0x466a7b
mov edx, dword [ebp - 0x12c]
mov dword [ebp - 0x118], edx
jmp 0x466ad9
mov ecx, dword [ebp - 0x128]
mov eax, dword [ebp - 0x12c]
cmp ecx, eax
jne 0x466a9c
mov edx, dword [ebp - 0x84]
mov byte [edx], 1
inc dword [ebp - 0x84]
jmp 0x466ac2
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 2
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x128]
call fcn.0047394c
add dword [ebp - 0x84], eax
mov edx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x12c]
call fcn.0047394c
add dword [ebp - 0x84], eax
lea ecx, [ebp - 0x12c]
lea eax, [ebp - 0x130]
push ecx
lea ecx, [ebp - 0x128]
mov edx, dword [ebp - 0x134]
call fcn.004649f8
test eax, eax
jne 0x466a0c
mov eax, dword [ebp - 0x84]
mov byte [eax], 2
mov eax, edi
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.0047394c
add dword [ebp - 0x84], eax
mov edx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x118]
call fcn.0047394c
add dword [ebp - 0x84], eax
jmp 0x466cb4
mov edx, dword [ebp - 0x118]
sub edx, edi
inc edx
add dword [ebp - 0xac], edx
mov ecx, dword [ebp - 0x118]
mov dword [ebp - 0xb0], ecx
mov eax, dword [ebp + 8]
test eax, eax
jne 0x466cb4
mov edx, dword [ebp - 0x118]
cmp edi, edx
jg 0x466cb4
mov ecx, edi
mov al, 1
and ecx, 7
mov edx, edi
shl al, cl
test edx, edx
jns 0x466b83
add edx, 7
sar edx, 3
or byte [ebp + edx - 0x1fc], al
test byte [ebp - 0x48], 1
je 0x466bc5
mov ecx, dword [ebx + 4]
xor eax, eax
mov dl, 1
mov al, byte [ecx + edi]
mov dword [ebp - 0x138], eax
mov ecx, dword [ebp - 0x138]
mov eax, dword [ebp - 0x138]
and ecx, 7
shl dl, cl
test eax, eax
jns 0x466bbb
add eax, 7
sar eax, 3
or byte [ebp + eax - 0x1fc], dl
inc edi
mov edx, dword [ebp - 0x118]
cmp edi, edx
jle 0x466b71
jmp 0x466cb4
mov ecx, dword [ebp - 0x80]
test ecx, ecx
je 0x466c60
cmp edi, 0xff
jg 0x466bf3
test byte [ebp - 0x48], 1
je 0x466c60
cmp edi, 0x7f
jle 0x466c60
mov dword [ebp - 0x7c], 1
mov eax, dword [ebp - 0x84]
mov byte [eax], 1
mov eax, edi
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.0047394c
add dword [ebp - 0x84], eax
test byte [ebp - 0x48], 1
je 0x466cb4
mov eax, edi
call fcn.00474388
mov dword [ebp - 0x13c], eax
cmp eax, 0xffffffff
je 0x466cb4
mov edx, dword [ebp - 0x84]
mov byte [edx], 1
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x13c]
call fcn.0047394c
add dword [ebp - 0x84], eax
jmp 0x466cb4
mov ecx, edi
mov al, 1
and ecx, 7
mov edx, edi
shl al, cl
test edx, edx
jns 0x466c72
add edx, 7
sar edx, 3
or byte [ebp + edx - 0x1fc], al
test byte [ebp - 0x48], 1
je 0x466ca8
mov ecx, dword [ebx + 4]
xor eax, eax
mov dl, 1
mov al, byte [ecx + edi]
mov edi, eax
mov ecx, edi
mov eax, edi
and ecx, 7
shl dl, cl
test eax, eax
jns 0x466c9e
add eax, 7
sar eax, 3
or byte [ebp + eax - 0x1fc], dl
inc dword [ebp - 0xac]
mov dword [ebp - 0xb0], edi
inc dword [ebp - 0x68]
mov edx, dword [ebp - 0x68]
movzx edi, byte [edx]
test edi, edi
je 0x466cd5
cmp edi, 0x5d
jne 0x465aaa
mov eax, dword [ebp - 0x60]
test eax, eax
jne 0x465aaa
test edi, edi
jne 0x466ce7
mov edx, dword [ebp + 0x1c]
mov dword [edx], 6
jmp 0x4694fc
mov ecx, dword [ebp - 0xac]
dec ecx
jne 0x466da1
mov eax, dword [ebp - 0x7c]
test eax, eax
jne 0x466da1
mov edx, dword [ebp - 0x80]
test edx, edx
je 0x466d21
mov ecx, dword [ebp - 0x94]
test ecx, ecx
je 0x466d21
mov eax, dword [ebp - 0xb0]
cmp eax, 0x80
jge 0x466da1
mov edx, dword [ebp - 0x30]
mov dword [ebp - 0x34], edx
mov ecx, dword [ebp - 0x94]
test ecx, ecx
je 0x466d58
mov eax, dword [ebp - 0x2c]
cmp eax, 0xfffffffe
jne 0x466d40
mov dword [ebp - 0x2c], 0xffffffff
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x38], edx
mov byte [esi], 0x1e
inc esi
mov cl, byte [ebp - 0xb0]
mov byte [esi], cl
inc esi
jmp 0x4694f4
mov eax, dword [ebp - 0x80]
test eax, eax
je 0x466d86
mov edx, dword [ebp - 0xb0]
cmp edx, 0x7f
jle 0x466d86
lea edx, [ebp - 0xd8]
mov eax, dword [ebp - 0xb0]
call fcn.0047394c
mov dword [ebp - 0xd0], eax
jmp 0x46940a
mov cl, byte [ebp - 0xb0]
mov byte [ebp - 0xd8], cl
mov dword [ebp - 0xd0], 1
jmp 0x46940a
mov eax, dword [ebp - 0x2c]
cmp eax, 0xfffffffe
jne 0x466db0
mov dword [ebp - 0x2c], 0xffffffff
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x38], edx
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x34], ecx
mov eax, dword [ebp - 0x7c]
test eax, eax
je 0x466e68
mov edx, dword [ebp - 0x98]
test edx, edx
jne 0x466e68
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 0
inc dword [ebp - 0x84]
mov byte [esi], 0x50
inc esi
add esi, 2
mov eax, dword [ebp - 0x94]
test eax, eax
je 0x466df9
mov dl, 1
jmp 0x466dfb
xor edx, edx
mov byte [esi], dl
mov eax, dword [ebp - 0xac]
test eax, eax
jle 0x466e3e
or byte [esi], 2
inc esi
mov ecx, dword [ebp - 0x84]
sub ecx, esi
lea eax, [esi + 0x20]
push ecx
push esi
push eax
call sub.MSVCRT.DLL_memmove
add esp, 0xc
lea edx, [ebp - 0x1fc]
push 0x20
push edx
push esi
call sub.MSVCRT.DLL_memcpy
add esp, 0xc
mov esi, dword [ebp - 0x84]
add esi, 0x20
jmp 0x466e44
mov esi, dword [ebp - 0x84]
mov edx, dword [ebp - 0x70]
mov eax, esi
sub eax, edx
mov ecx, dword [ebp - 0x70]
sar eax, 8
mov byte [ecx + 1], al
mov eax, esi
mov edx, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x70]
sub eax, edx
and al, 0xff
mov byte [ecx + 2], al
jmp 0x4694f4
mov eax, dword [ebp - 0x94]
mov edx, dword [ebp - 0x98]
cmp eax, edx
jne 0x466e7c
mov cl, 0x4e
jmp 0x466e7e
mov cl, 0x4f
mov byte [esi], cl
inc esi
mov eax, dword [ebp - 0x94]
test eax, eax
je 0x466ece
mov edx, dword [ebp + 8]
test edx, edx
jne 0x466ee0
xor edi, edi
mov eax, esi
mov dword [ebp - 0x1dc], eax
lea edx, [ebp - 0x1fc]
mov dword [ebp - 0x1d8], edx
mov ecx, dword [ebp - 0x1d8]
mov edx, dword [ebp - 0x1dc]
inc edi
mov al, byte [ecx]
not al
mov byte [edx], al
inc dword [ebp - 0x1dc]
inc dword [ebp - 0x1d8]
cmp edi, 0x20
jl 0x466ea8
jmp 0x466ee0
push 0x20
lea ecx, [ebp - 0x1fc]
push ecx
push esi
call sub.MSVCRT.DLL_memcpy
add esp, 0xc
add esi, 0x20
jmp 0x4694f4
mov eax, dword [ebp - 0xa0]
test eax, eax
je 0x4693b8
mov edx, dword [ebp + 0x1c]
push edx
lea ecx, [ebp - 0x1c]
lea edx, [ebp - 0x18]
mov eax, dword [ebp - 0x68]
inc eax
call fcn.00463dcc
mov dword [ebp - 0x68], eax
mov ecx, dword [ebp + 0x1c]
mov eax, dword [ecx]
test eax, eax
jne 0x4694fc
jmp 0x466f45
xor edx, edx
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x1c], 0xffffffff
jmp 0x466f45
mov dword [ebp - 0x18], 1
mov dword [ebp - 0x1c], 0xffffffff
jmp 0x466f45
xor ecx, ecx
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x1c], 1
mov eax, dword [ebp - 0x70]
test eax, eax
jne 0x466f5a
mov edx, dword [ebp + 0x1c]
mov dword [edx], 9
jmp 0x4694fc
mov ecx, dword [ebp - 0x18]
test ecx, ecx
jne 0x466f6d
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x2c], eax
mov edx, dword [ebp - 0x34]
mov dword [ebp - 0x30], edx
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
cmp ecx, eax
jne 0x466f7b
xor edx, edx
jmp 0x466f80
mov edx, 0x200
mov dword [ebp - 0x40], edx
xor eax, eax
mov dword [ebp - 0x14], eax
xor ecx, ecx
mov dword [ebp - 0x9c], ecx
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0x5c], eax
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx + 1]
cmp ecx, 0x2b
jne 0x466fb7
xor eax, eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x9c], 1
inc dword [ebp - 0x68]
jmp 0x466fd5
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx + 1]
cmp ecx, 0x3f
jne 0x466fcf
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x10], eax
inc dword [ebp - 0x68]
jmp 0x466fd5
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x10], edx
mov ecx, dword [ebp - 0x70]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x1c
je 0x466ff1
mov edx, dword [ebp - 0x70]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x1d
jne 0x4670c1
mov eax, dword [ebp - 0x80]
test eax, eax
je 0x46704e
test byte [esi - 1], 0x80
je 0x46704e
lea edx, [esi - 1]
mov dword [ebp - 0x140], edx
jmp 0x46700f
dec dword [ebp - 0x140]
mov ecx, dword [ebp - 0x140]
xor eax, eax
mov al, byte [ecx]
and eax, 0xc0
cmp eax, 0x80
je 0x467009
mov edi, esi
mov eax, dword [ebp - 0x140]
sub edi, eax
push edi
mov edx, dword [ebp - 0x140]
push edx
lea ecx, [ebp - 0x90]
push ecx
call sub.MSVCRT.DLL_memcpy
add esp, 0xc
or edi, 0x80
jmp 0x467065
movzx edi, byte [esi - 1]
mov eax, dword [ebp - 0x18]
dec eax
jle 0x467065
mov edx, dword [ebp - 0x3c]
or edx, edi
mov ecx, dword [ebx + 0x48]
or edx, ecx
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x9c]
test eax, eax
jne 0x467182
mov edx, dword [ebp - 0x1c]
test edx, edx
jge 0x467182
lea ecx, [ebp - 0x90]
push ecx
mov eax, dword [ebp - 0x68]
inc eax
push eax
mov edx, dword [ebp - 0x48]
push edx
push ebx
mov ecx, dword [ebp - 0x70]
xor eax, eax
mov al, byte [ecx]
mov ecx, dword [ebp - 0x80]
mov edx, edi
call fcn.00464a64
test eax, eax
je 0x467182
xor eax, eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x9c], 1
jmp 0x467182
mov edx, dword [ebp - 0x70]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x1e
jne 0x467129
mov dword [ebp - 0x14], 0xd
mov eax, dword [ebp - 0x70]
movzx edi, byte [eax + 1]
mov eax, dword [ebp - 0x9c]
test eax, eax
jne 0x467182
mov edx, dword [ebp - 0x1c]
test edx, edx
jge 0x467182
push 0
mov ecx, dword [ebp - 0x68]
inc ecx
push ecx
mov eax, dword [ebp - 0x48]
push eax
push ebx
mov ecx, dword [ebp - 0x80]
mov edx, edi
mov eax, 0x1e
call fcn.00464a64
test eax, eax
je 0x467182
xor edx, edx
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x9c], 1
jmp 0x467182
mov ecx, dword [ebp - 0x70]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x17
jge 0x4673f0
mov dword [ebp - 0x14], 0x1a
mov edx, dword [ebp - 0x70]
mov eax, dword [ebp - 0x9c]
test eax, eax
movzx edi, byte [edx]
jne 0x467182
mov edx, dword [ebp - 0x1c]
test edx, edx
jge 0x467182
push 0
mov ecx, dword [ebp - 0x68]
inc ecx
push ecx
mov eax, dword [ebp - 0x48]
push eax
push ebx
mov ecx, dword [ebp - 0x80]
xor edx, edx
mov eax, edi
call fcn.00464a64
test eax, eax
je 0x467182
xor edx, edx
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x9c], 1
mov ecx, dword [ebp - 0x70]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x10
je 0x46719a
mov edx, dword [ebp - 0x70]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0xf
jne 0x4671b8
mov eax, dword [ebp - 0x70]
xor edx, edx
mov dl, byte [eax + 1]
mov dword [ebp - 0x148], edx
mov ecx, dword [ebp - 0x70]
xor eax, eax
mov al, byte [ecx + 2]
mov dword [ebp - 0x14c], eax
jmp 0x4671c7
or edx, 0xffffffff
mov dword [ebp - 0x14c], edx
mov dword [ebp - 0x148], edx
mov dword [ebp - 0x144], esi
mov esi, dword [ebp - 0x70]
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x467ca1
mov edx, dword [ebp - 0x1c]
dec edx
je 0x4671e5
or dword [ebx + 0x44], 1
mov ecx, dword [ebp - 0x14]
add dword [ebp - 0x10], ecx
mov eax, dword [ebp - 0x18]
test eax, eax
jne 0x46723c
mov edx, dword [ebp - 0x1c]
inc edx
jne 0x467206
mov cl, byte [ebp - 0x10]
add cl, 0x1f
mov byte [esi], cl
inc esi
jmp 0x46739a
mov eax, dword [ebp - 0x1c]
dec eax
jne 0x46721a
mov dl, byte [ebp - 0x10]
add dl, 0x23
mov byte [esi], dl
inc esi
jmp 0x46739a
mov cl, byte [ebp - 0x10]
add cl, 0x25
mov byte [esi], cl
inc esi
mov eax, dword [ebp - 0x1c]
sar eax, 8
mov byte [esi], al
mov dl, byte [ebp - 0x1c]
and dl, 0xff
mov byte [esi + 1], dl
add esi, 2
jmp 0x46739a
mov ecx, dword [ebp - 0x18]
dec ecx
jne 0x46728a
mov eax, dword [ebp - 0x1c]
inc eax
jne 0x467256
mov dl, byte [ebp - 0x10]
add dl, 0x21
mov byte [esi], dl
inc esi
jmp 0x46739a
mov esi, dword [ebp - 0x144]
mov eax, dword [ebp - 0x1c]
dec eax
je 0x467ca1
mov dl, byte [ebp - 0x10]
add dl, 0x25
mov byte [esi], dl
inc esi
mov ecx, dword [ebp - 0x1c]
dec ecx
sar ecx, 8
mov byte [esi], cl
mov al, byte [ebp - 0x1c]
add al, 0xff
and al, 0xff
mov byte [esi + 1], al
add esi, 2
jmp 0x46739a
mov dl, byte [ebp - 0x14]
add dl, 0x27
mov byte [esi], dl
inc esi
mov ecx, dword [ebp - 0x18]
sar ecx, 8
mov byte [esi], cl
mov al, byte [ebp - 0x18]
and al, 0xff
mov byte [esi + 1], al
add esi, 2
mov edx, dword [ebp - 0x1c]
test edx, edx
jge 0x46730a
mov ecx, dword [ebp - 0x80]
test ecx, ecx
je 0x4672db
cmp edi, 0x80
jl 0x4672db
mov eax, edi
lea edx, [ebp - 0x90]
and eax, 7
push eax
push edx
push esi
call sub.MSVCRT.DLL_memcpy
add esp, 0xc
mov ecx, edi
and ecx, 7
add esi, ecx
jmp 0x4672fc
mov eax, edi
mov byte [esi], al
inc esi
mov edx, dword [ebp - 0x148]
test edx, edx
jl 0x4672fc
mov cl, byte [ebp - 0x148]
mov byte [esi], cl
inc esi
mov al, byte [ebp - 0x14c]
mov byte [esi], al
inc esi
mov dl, byte [ebp - 0x10]
add dl, 0x1f
mov byte [esi], dl
inc esi
jmp 0x46739a
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
cmp ecx, eax
je 0x46739a
mov edx, dword [ebp - 0x80]
test edx, edx
je 0x467346
cmp edi, 0x80
jl 0x467346
mov ecx, edi
lea eax, [ebp - 0x90]
and ecx, 7
push ecx
push eax
push esi
call sub.MSVCRT.DLL_memcpy
add esp, 0xc
mov edx, edi
and edx, 7
add esi, edx
jmp 0x46734b
mov ecx, edi
mov byte [esi], cl
inc esi
mov eax, dword [ebp - 0x148]
test eax, eax
jl 0x467367
mov dl, byte [ebp - 0x148]
mov byte [esi], dl
inc esi
mov cl, byte [ebp - 0x14c]
mov byte [esi], cl
inc esi
mov eax, dword [ebp - 0x18]
sub dword [ebp - 0x1c], eax
mov edx, dword [ebp - 0x1c]
dec edx
jne 0x46737e
mov cl, byte [ebp - 0x10]
add cl, 0x23
mov byte [esi], cl
inc esi
jmp 0x46739a
mov al, byte [ebp - 0x10]
add al, 0x25
mov byte [esi], al
inc esi
mov edx, dword [ebp - 0x1c]
sar edx, 8
mov byte [esi], dl
mov cl, byte [ebp - 0x1c]
and cl, 0xff
mov byte [esi + 1], cl
add esi, 2
mov eax, dword [ebp - 0x80]
test eax, eax
je 0x4673c6
cmp edi, 0x80
jl 0x4673c6
mov edx, edi
lea ecx, [ebp - 0x90]
and edx, 7
push edx
push ecx
push esi
call sub.MSVCRT.DLL_memcpy
add esp, 0xc
and edi, 7
add esi, edi
jmp 0x4673cb
mov eax, edi
mov byte [esi], al
inc esi
mov edx, dword [ebp - 0x148]
test edx, edx
jl 0x467abe
mov cl, byte [ebp - 0x148]
mov byte [esi], cl
inc esi
mov al, byte [ebp - 0x14c]
mov byte [esi], al
inc esi
jmp 0x467abe
mov edx, dword [ebp - 0x70]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x4e
je 0x467424
mov eax, dword [ebp - 0x70]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x4f
je 0x467424
mov ecx, dword [ebp - 0x70]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x50
je 0x467424
mov edx, dword [ebp - 0x70]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x51
jne 0x4674ca
mov eax, dword [ebp - 0x1c]
test eax, eax
jne 0x467433
mov esi, dword [ebp - 0x70]
jmp 0x467ca1
mov eax, dword [ebp - 0x1c]
dec eax
je 0x46743d
or dword [ebx + 0x44], 1
mov edx, dword [ebp - 0x18]
test edx, edx
jne 0x467457
mov ecx, dword [ebp - 0x1c]
inc ecx
jne 0x467457
mov al, byte [ebp - 0x10]
add al, 0x46
mov byte [esi], al
inc esi
jmp 0x467abe
mov edx, dword [ebp - 0x18]
dec edx
jne 0x467470
mov ecx, dword [ebp - 0x1c]
inc ecx
jne 0x467470
mov al, byte [ebp - 0x10]
add al, 0x48
mov byte [esi], al
inc esi
jmp 0x467abe
mov edx, dword [ebp - 0x18]
test edx, edx
jne 0x46748a
mov ecx, dword [ebp - 0x1c]
dec ecx
jne 0x46748a
mov al, byte [ebp - 0x10]
add al, 0x4a
mov byte [esi], al
inc esi
jmp 0x467abe
mov dl, byte [ebp - 0x10]
add dl, 0x4c
mov byte [esi], dl
inc esi
mov ecx, dword [ebp - 0x18]
sar ecx, 8
mov byte [esi], cl
mov al, byte [ebp - 0x18]
and al, 0xff
mov byte [esi + 1], al
add esi, 2
mov edx, dword [ebp - 0x1c]
inc edx
jne 0x4674b1
xor ecx, ecx
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x1c]
sar eax, 8
mov byte [esi], al
mov dl, byte [ebp - 0x1c]
and dl, 0xff
mov byte [esi + 1], dl
add esi, 2
jmp 0x467abe
mov ecx, dword [ebp - 0x70]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x5e
je 0x4674fe
mov edx, dword [ebp - 0x70]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x5f
je 0x4674fe
mov eax, dword [ebp - 0x70]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x5d
je 0x4674fe
mov ecx, dword [ebp - 0x70]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x60
jne 0x467aa0
xor edx, edx
mov edi, esi
mov dword [ebp - 0x154], edx
xor edx, edx
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0x158], edx
mov ecx, dword [ebp - 0x70]
sub edi, eax
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x60
jne 0x46753c
mov edx, dword [ebp - 0x70]
xor ecx, ecx
mov cl, byte [edx + 3]
cmp ecx, 0x66
jne 0x46753c
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x37
jmp 0x4694fc
mov edx, dword [ebp - 0x1c]
inc edx
jne 0x46758b
mov ecx, dword [ebp - 0x70]
mov dword [ebp - 0x15c], ecx
mov eax, dword [ebp - 0x15c]
mov ecx, dword [ebp - 0x15c]
xor edx, edx
mov dl, byte [eax + 1]
xor eax, eax
shl edx, 8
mov al, byte [ecx + 2]
or edx, eax
xor ecx, ecx
add dword [ebp - 0x15c], edx
mov edx, dword [ebp - 0x15c]
mov cl, byte [edx]
cmp ecx, 0x55
jne 0x46754b
mov eax, esi
mov edx, dword [ebp - 0x15c]
sub eax, edx
mov dword [ebp - 0x154], eax
mov ecx, dword [ebp - 0x18]
test ecx, ecx
jne 0x467682
mov eax, dword [ebp - 0x1c]
dec eax
jg 0x4675eb
mov byte [esi], 0
push ebx
mov edx, dword [ebp - 0x78]
push edx
mov ecx, dword [ebp - 0x80]
mov edx, 1
mov eax, dword [ebp - 0x70]
call fcn.004648f0
push edi
mov ecx, dword [ebp - 0x70]
push ecx
mov eax, dword [ebp - 0x70]
inc eax
push eax
call sub.MSVCRT.DLL_memmove
add esp, 0xc
inc esi
mov edx, dword [ebp - 0x1c]
test edx, edx
jne 0x4675d9
mov ecx, dword [ebp - 0x70]
mov byte [ecx], 0x6f
jmp 0x467ca1
mov edx, dword [ebp - 0x70]
mov al, byte [ebp - 0x10]
add al, 0x67
mov byte [edx], al
inc dword [ebp - 0x70]
jmp 0x46767a
mov byte [esi], 0
push ebx
mov ecx, dword [ebp - 0x78]
push ecx
mov ecx, dword [ebp - 0x80]
mov edx, 4
mov eax, dword [ebp - 0x70]
call fcn.004648f0
push edi
mov eax, dword [ebp - 0x70]
push eax
mov edx, dword [ebp - 0x70]
add edx, 4
push edx
call sub.MSVCRT.DLL_memmove
mov eax, dword [ebp - 0x70]
mov cl, byte [ebp - 0x10]
add cl, 0x67
add esp, 0xc
mov byte [eax], cl
add esi, 4
inc dword [ebp - 0x70]
mov edx, dword [ebp - 0x70]
mov byte [edx], 0x5e
inc dword [ebp - 0x70]
mov ecx, dword [ebp - 0x158]
test ecx, ecx
jne 0x46763f
xor eax, eax
jmp 0x46764a
mov eax, dword [ebp - 0x70]
mov edx, dword [ebp - 0x158]
sub eax, edx
mov dword [ebp - 0x160], eax
mov ecx, dword [ebp - 0x70]
mov dword [ebp - 0x158], ecx
mov eax, dword [ebp - 0x160]
mov edx, dword [ebp - 0x70]
sar eax, 8
mov byte [edx], al
mov eax, dword [ebp - 0x70]
mov cl, byte [ebp - 0x160]
and cl, 0xff
mov byte [eax + 1], cl
add dword [ebp - 0x70], 2
dec dword [ebp - 0x1c]
jmp 0x4677ba
mov edx, dword [ebp - 0x18]
dec edx
jle 0x4677ad
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x4676f8
mov eax, dword [ebp - 0x18]
dec eax
imul dword [ebp - 0x50]
mov dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x18]
dec edx
mov dword [ebp - 0x220], edx
fild dword [ebp - 0x220]
fild dword [ebp - 0x50]
fmulp st(1)
fld qword [0x469510]
fxch st(1)
fucompp
fnstsw ax
sahf
ja 0x4676da
mov edx, dword [ebp + 8]
mov ecx, 0x7fffffeb
mov eax, dword [edx]
sub ecx, eax
mov edx, dword [ebp - 0x164]
cmp ecx, edx
jge 0x4676e8
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0x14
jmp 0x4694fc
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x164]
add dword [eax], edx
jmp 0x4677ad
mov ecx, dword [ebp - 0x64]
test ecx, ecx
je 0x46770c
mov eax, dword [ebp - 0x30]
test eax, eax
jge 0x46770c
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x150], 1
mov ecx, dword [ebp - 0x150]
mov eax, dword [ebp - 0x18]
cmp ecx, eax
jge 0x4677ad
mov edx, dword [ebx + 0x20]
mov dword [ebp - 0x168], edx
push edi
mov ecx, dword [ebp - 0x70]
push ecx
push esi
call sub.MSVCRT.DLL_memcpy
add esp, 0xc
mov eax, dword [ebp - 0x78]
mov edx, dword [ebp - 0x168]
cmp eax, edx
jae 0x46778b
xor ecx, ecx
xor edx, edx
mov cl, byte [eax]
mov dl, byte [eax + 1]
shl ecx, 8
or ecx, edx
mov edx, dword [ebx + 0x20]
add ecx, edi
sar ecx, 8
mov byte [edx], cl
mov cl, byte [eax]
mov dl, byte [eax + 1]
shl ecx, 8
or cl, dl
mov edx, edi
add cl, dl
mov edx, dword [ebx + 0x20]
and cl, 0xff
mov byte [edx + 1], cl
add dword [ebx + 0x20], 2
add eax, 2
mov ecx, dword [ebp - 0x168]
cmp eax, ecx
jb 0x46774b
mov eax, dword [ebp - 0x168]
add esi, edi
mov dword [ebp - 0x78], eax
inc dword [ebp - 0x150]
mov eax, dword [ebp - 0x150]
mov edx, dword [ebp - 0x18]
cmp eax, edx
jl 0x467727
mov ecx, dword [ebp - 0x1c]
test ecx, ecx
jle 0x4677ba
mov eax, dword [ebp - 0x18]
sub dword [ebp - 0x1c], eax
mov edx, dword [ebp - 0x1c]
test edx, edx
jl 0x4679de
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x467840
mov eax, dword [ebp - 0x1c]
test eax, eax
jle 0x467840
mov edx, dword [ebp - 0x50]
add edx, 7
imul edx, dword [ebp - 0x1c]
add edx, 0xfffffffa
mov dword [ebp - 0x16c], edx
fild dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x50]
add ecx, 7
mov dword [ebp - 0x224], ecx
fild dword [ebp - 0x224]
fmulp st(1)
fld qword [0x469510]
fxch st(1)
fucompp
fnstsw ax
sahf
ja 0x467822
mov edx, dword [ebp + 8]
mov ecx, 0x7fffffeb
mov eax, dword [edx]
sub ecx, eax
mov edx, dword [ebp - 0x16c]
cmp ecx, edx
jge 0x467830
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0x14
jmp 0x4694fc
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x16c]
add dword [eax], edx
jmp 0x467959
mov ecx, dword [ebp - 0x1c]
dec ecx
mov dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x150]
test eax, eax
jl 0x467959
mov edx, dword [ebx + 0x20]
mov dword [ebp - 0x170], edx
mov cl, byte [ebp - 0x10]
add cl, 0x67
mov byte [esi], cl
inc esi
mov eax, dword [ebp - 0x150]
test eax, eax
je 0x4678b5
mov byte [esi], 0x5e
inc esi
mov edx, dword [ebp - 0x158]
test edx, edx
jne 0x467886
xor ecx, ecx
jmp 0x467890
mov ecx, esi
mov eax, dword [ebp - 0x158]
sub ecx, eax
mov dword [ebp - 0x174], ecx
mov dword [ebp - 0x158], esi
mov edx, dword [ebp - 0x174]
sar edx, 8
mov byte [esi], dl
mov al, byte [ebp - 0x174]
and al, 0xff
mov byte [esi + 1], al
add esi, 2
push edi
mov edx, dword [ebp - 0x70]
push edx
push esi
call sub.MSVCRT.DLL_memcpy
add esp, 0xc
mov eax, dword [ebp - 0x78]
mov edx, dword [ebp - 0x170]
cmp eax, edx
jae 0x46793a
xor ecx, ecx
xor edx, edx
mov cl, byte [eax]
mov dl, byte [eax + 1]
shl ecx, 8
or ecx, edx
mov edx, dword [ebp - 0x150]
add ecx, edi
test edx, edx
je 0x4678f1
mov edx, 4
jmp 0x4678f6
mov edx, 1
add ecx, edx
mov edx, dword [ebx + 0x20]
sar ecx, 8
mov byte [edx], cl
mov cl, byte [eax]
mov dl, byte [eax + 1]
shl ecx, 8
or cl, dl
mov edx, edi
add cl, dl
mov edx, dword [ebp - 0x150]
test edx, edx
je 0x46791c
mov dl, 4
jmp 0x46791e
mov dl, 1
add cl, dl
mov edx, dword [ebx + 0x20]
and cl, 0xff
mov byte [edx + 1], cl
add dword [ebx + 0x20], 2
add eax, 2
mov ecx, dword [ebp - 0x170]
cmp eax, ecx
jb 0x4678d0
mov eax, dword [ebp - 0x170]
add esi, edi
mov dword [ebp - 0x78], eax
dec dword [ebp - 0x150]
mov eax, dword [ebp - 0x150]
test eax, eax
jge 0x467858
mov edx, dword [ebp - 0x158]
test edx, edx
je 0x467abe
mov eax, esi
mov edx, dword [ebp - 0x158]
sub eax, edx
inc eax
mov edx, esi
sub edx, eax
xor ecx, ecx
mov cl, byte [edx + 1]
shl ecx, 8
movzx edi, byte [edx + 2]
or ecx, edi
mov dword [ebp - 0x178], ecx
mov ecx, dword [ebp - 0x178]
test ecx, ecx
jne 0x467998
xor ecx, ecx
jmp 0x4679a6
mov ecx, dword [ebp - 0x158]
mov edi, dword [ebp - 0x178]
sub ecx, edi
mov dword [ebp - 0x158], ecx
mov byte [esi], 0x55
inc esi
mov ecx, eax
sar ecx, 8
mov byte [esi], cl
mov ecx, eax
and cl, 0xff
mov byte [esi + 1], cl
mov ecx, eax
sar ecx, 8
add esi, 2
and al, 0xff
mov byte [edx + 1], cl
mov byte [edx + 2], al
mov eax, dword [ebp - 0x158]
test eax, eax
jne 0x467967
jmp 0x467abe
mov eax, dword [ebp - 0x154]
mov edx, esi
sub edx, eax
xor ecx, ecx
mov dword [ebp - 0x17c], edx
mov edx, dword [ebp - 0x17c]
mov eax, dword [ebp - 0x17c]
mov cl, byte [edx + 1]
xor edx, edx
shl ecx, 8
mov dl, byte [eax + 2]
mov eax, dword [ebp - 0x17c]
or ecx, edx
sub eax, ecx
mov dword [ebp - 0x180], eax
mov ecx, dword [ebp - 0x17c]
mov dl, byte [ebp - 0x10]
add dl, 0x56
mov byte [ecx], dl
mov eax, dword [ebp + 8]
test eax, eax
jne 0x467abe
mov edx, dword [ebp - 0x180]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x5d
je 0x467abe
mov eax, dword [ebp - 0x180]
mov dword [ebp - 0x184], eax
mov ecx, dword [ebp - 0x80]
mov edx, dword [ebp - 0x17c]
mov eax, dword [ebp - 0x184]
call fcn.004645b0
test eax, eax
je 0x467a6e
mov edx, dword [ebp - 0x180]
add byte [edx], 3
jmp 0x467abe
mov ecx, dword [ebp - 0x184]
mov edx, dword [ebp - 0x184]
xor eax, eax
mov al, byte [ecx + 1]
xor ecx, ecx
shl eax, 8
mov cl, byte [edx + 2]
or eax, ecx
add dword [ebp - 0x184], eax
mov eax, dword [ebp - 0x184]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x54
je 0x467a4b
jmp 0x467abe
mov ecx, dword [ebp - 0x70]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x6d
je 0x467ca1
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0xb
jmp 0x4694fc
mov ecx, dword [ebp - 0x9c]
test ecx, ecx
je 0x467ca1
mov eax, dword [ebp - 0x5c]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x27
je 0x467af0
mov ecx, dword [ebp - 0x5c]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x41
je 0x467af0
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x34
jne 0x467b33
mov eax, dword [ebp - 0x5c]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x41
jne 0x467b1d
mov ecx, dword [ebp - 0x5c]
xor eax, eax
mov al, byte [ecx + 3]
cmp eax, 0x10
je 0x467b16
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx + 3]
cmp ecx, 0xf
jne 0x467b1d
mov eax, 2
jmp 0x467b1f
xor eax, eax
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx]
xor edx, edx
mov dl, byte [ecx + 0x48eeac]
add eax, edx
add dword [ebp - 0x5c], eax
mov eax, esi
mov ecx, dword [ebp - 0x5c]
sub eax, ecx
mov dword [ebp - 0x188], eax
mov eax, dword [ebp - 0x188]
test eax, eax
jle 0x467ca1
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx]
add ecx, 0xffffffe1
cmp ecx, 0x20
ja case.0x467b67.31
mov cl, byte [ecx + 0x467b6e]
jmp dword [ecx*4 + 0x467b8f]
mov eax, dword [ebp - 0x5c]
mov byte [eax], 0x28
jmp 0x467ca1
mov edx, dword [ebp - 0x5c]
mov byte [edx], 0x29
jmp 0x467ca1
mov ecx, dword [ebp - 0x5c]
mov byte [ecx], 0x2a
jmp 0x467ca1
mov eax, dword [ebp - 0x5c]
mov byte [eax], 0x2b
jmp 0x467ca1
mov edx, dword [ebp - 0x5c]
mov byte [edx], 0x42
jmp 0x467ca1
mov ecx, dword [ebp - 0x5c]
mov byte [ecx], 0x43
jmp 0x467ca1
mov eax, dword [ebp - 0x5c]
mov byte [eax], 0x44
jmp 0x467ca1
mov edx, dword [ebp - 0x5c]
mov byte [edx], 0x45
jmp 0x467ca1
mov ecx, dword [ebp - 0x5c]
mov byte [ecx], 0x35
jmp 0x467ca1
mov eax, dword [ebp - 0x5c]
mov byte [eax], 0x36
jmp 0x467ca1
mov edx, dword [ebp - 0x5c]
mov byte [edx], 0x37
jmp 0x467ca1
mov ecx, dword [ebp - 0x5c]
mov byte [ecx], 0x38
jmp 0x467ca1
mov eax, dword [ebp - 0x188]
push eax
mov edx, dword [ebp - 0x5c]
push edx
mov ecx, dword [ebp - 0x5c]
add ecx, 3
push ecx
call sub.MSVCRT.DLL_memmove
add dword [ebp - 0x188], 3
mov eax, dword [ebp - 0x5c]
add esi, 3
add esp, 0xc
mov byte [eax], 0x5d
mov byte [esi], 0x55
inc esi
mov edx, dword [ebp - 0x188]
sar edx, 8
mov byte [esi], dl
mov cl, byte [ebp - 0x188]
and cl, 0xff
mov byte [esi + 1], cl
add esi, 2
mov eax, dword [ebp - 0x188]
mov edx, dword [ebp - 0x5c]
sar eax, 8
mov byte [edx + 1], al
mov eax, dword [ebp - 0x5c]
mov cl, byte [ebp - 0x188]
and cl, 0xff
mov byte [eax + 2], cl
xor edx, edx
mov dword [ebp - 0x70], edx
mov ecx, dword [ebp - 0x40]
or dword [ebx + 0x48], ecx
jmp 0x4694f4
mov eax, dword [ebp - 0x48]
xor edx, edx
mov dword [ebp - 0xb4], eax
mov dword [ebp - 0xc0], edx
mov dword [ebp - 0x20], 0x5f
mov ecx, dword [ebx + 0x20]
xor eax, eax
mov dword [ebp - 0x78], ecx
mov dword [ebp - 0xa8], eax
inc dword [ebp - 0x68]
xor ecx, ecx
mov edx, dword [ebp - 0x68]
mov cl, byte [edx]
cmp ecx, 0x2a
jne 0x467dff
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax + 1]
mov ecx, dword [ebx + 0xc]
test byte [ecx + edx], 2
je 0x467dff
mov dword [ebp - 0x190], 0x48e050
inc dword [ebp - 0x68]
xor edx, edx
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x194], eax
mov dword [ebp - 0x70], edx
inc dword [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx]
mov edx, dword [ebx + 0xc]
test byte [edx + eax], 2
jne 0x467d1a
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x3a
jne 0x467d47
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x3b
jmp 0x4694fc
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x29
je 0x467d61
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x3c
jmp 0x4694fc
mov ecx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x194]
sub ecx, eax
xor edi, edi
mov dword [ebp - 0x18c], ecx
jmp 0x467dd5
mov eax, dword [edi*8 + 0x48df6c]
mov edx, dword [ebp - 0x18c]
cmp eax, edx
jne 0x467dc6
mov ecx, dword [ebp - 0x18c]
push ecx
mov eax, dword [ebp - 0x190]
push eax
mov edx, dword [ebp - 0x194]
push edx
call sub.MSVCRT.DLL_strncmp
add esp, 0xc
test eax, eax
jne 0x467dc6
mov cl, byte [edi*8 + 0x48df70]
xor edx, edx
mov byte [esi], cl
mov al, byte [esi]
inc esi
mov dl, al
cmp edx, 0x6e
jne 0x467dde
mov dword [ebx + 0x4c], 1
jmp 0x467dde
mov ecx, dword [edi*8 + 0x48df6c]
inc ecx
add dword [ebp - 0x190], ecx
inc edi
mov eax, dword [0x48dfa4]
cmp edi, eax
jl 0x467d76
mov edx, dword [0x48dfa4]
cmp edi, edx
jl 0x4694f4
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0x3c
jmp 0x4694fc
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x3f
jne 0x468d7f
inc dword [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x3a
jg 0x467e9b
je 0x467f25
add eax, 0xffffffdf
cmp eax, 0x18
ja case.0x467e30.34
jmp dword [eax*4 + 0x467e37]
cmp eax, 0x43
jg 0x467ec2
je 0x4684a3
sub eax, 0x3c
je 0x468439
dec eax
je 0x468401
dec eax
je 0x468494
jmp case.0x467e30.34
sub eax, 0x50
je 0x46855c
sub eax, 2
je 0x468940
sub eax, 0x2a
je 0x467f1b
jmp case.0x467e30.34
inc dword [ebp - 0x68]
jmp 0x467ee6
inc dword [ebp - 0x68]
mov edx, dword [ebp - 0x68]
mov cl, byte [edx]
test cl, cl
je 0x467efb
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x29
jne 0x467ee3
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx]
test al, al
jne 0x4694f4
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x12
jmp 0x4694fc
mov dword [ebp - 0xa8], 1
mov dword [ebp - 0x20], 0x5e
inc dword [ebp - 0x68]
jmp 0x468dac
mov dword [ebp - 0x20], 0x60
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx + 1]
cmp eax, 0x3f
jne 0x467f7b
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx + 2]
cmp ecx, 0x3d
je 0x468dac
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax + 2]
cmp edx, 0x21
je 0x468dac
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx + 2]
cmp eax, 0x3c
je 0x468dac
mov byte [esi + 3], 0x64
mov dword [ebp - 0xc0], 3
mov dword [ebp - 0xbc], 0xffffffff
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx + 1]
cmp ecx, 0x52
jne 0x467fc1
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax + 2]
cmp edx, 0x26
jne 0x467fc1
mov dword [ebp - 0xcc], 0xffffffff
add dword [ebp - 0x68], 2
mov byte [esi + 3], 0x65
jmp 0x46802b
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx + 1]
cmp eax, 0x3c
jne 0x467fdd
mov dword [ebp - 0xcc], 0x3e
inc dword [ebp - 0x68]
jmp 0x46802b
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx + 1]
cmp ecx, 0x27
jne 0x467ff9
mov dword [ebp - 0xcc], 0x27
inc dword [ebp - 0x68]
jmp 0x46802b
xor eax, eax
mov dword [ebp - 0xcc], eax
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx + 1]
cmp ecx, 0x2d
je 0x46801b
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x2b
jne 0x46802b
inc dword [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx]
mov dword [ebp - 0xbc], eax
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx + 1]
mov eax, dword [ebx + 0xc]
test byte [eax + ecx], 0x10
jne 0x46804d
inc dword [ebp - 0x68]
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x1c
jmp 0x4694fc
xor ecx, ecx
mov dword [ebp - 0xb8], ecx
inc dword [ebp - 0x68]
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x1ac], eax
jmp 0x4680a2
mov edx, dword [ebp - 0xb8]
test edx, edx
jl 0x46809f
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx]
test byte [eax + 0x48ea01], 4
je 0x468096
mov edx, dword [ebp - 0xb8]
mov ecx, dword [ebp - 0x68]
add edx, edx
xor eax, eax
mov al, byte [ecx]
lea edx, [edx + edx*4]
add edx, eax
add edx, 0xffffffd0
jmp 0x468099
or edx, 0xffffffff
mov dword [ebp - 0xb8], edx
inc dword [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx]
mov edx, dword [ebx + 0xc]
test byte [edx + eax], 0x10
jne 0x468063
mov ecx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x1ac]
sub ecx, eax
mov dword [ebp - 0x1a4], ecx
mov edx, dword [ebp - 0xcc]
test edx, edx
jle 0x4680e1
mov ecx, dword [ebp - 0x68]
inc dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx]
mov edx, dword [ebp - 0xcc]
cmp eax, edx
jne 0x4680f0
mov ecx, dword [ebp - 0x68]
inc dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x29
je 0x468101
dec dword [ebp - 0x68]
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x1a
jmp 0x4694fc
mov ecx, dword [ebp + 8]
test ecx, ecx
jne 0x468dac
mov eax, dword [ebp - 0xbc]
test eax, eax
jle 0x46819e
mov edx, dword [ebp - 0xb8]
test edx, edx
jg 0x468132
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0x3a
jmp 0x4694fc
mov eax, dword [ebp - 0xbc]
cmp eax, 0x2d
jne 0x46814b
mov edx, dword [ebx + 0x30]
mov ecx, dword [ebp - 0xb8]
sub edx, ecx
inc edx
jmp 0x468156
mov edx, dword [ebp - 0xb8]
mov eax, dword [ebx + 0x30]
add edx, eax
mov dword [ebp - 0xb8], edx
mov ecx, dword [ebp - 0xb8]
test ecx, ecx
jle 0x468173
mov eax, dword [ebp - 0xb8]
mov edx, dword [ebx + 0x34]
cmp eax, edx
jle 0x468181
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0xf
jmp 0x4694fc
mov eax, dword [ebp - 0xb8]
sar eax, 8
mov byte [esi + 4], al
mov dl, byte [ebp - 0xb8]
and dl, 0xff
mov byte [esi + 5], dl
jmp 0x468dac
mov ecx, dword [ebx + 0x24]
mov dword [ebp - 0x1b0], ecx
xor eax, eax
mov dword [ebp - 0x198], eax
jmp 0x4681e4
mov edx, dword [ebp - 0x1a4]
push edx
mov ecx, dword [ebp - 0x1b0]
add ecx, 2
push ecx
mov eax, dword [ebp - 0x1ac]
push eax
call sub.MSVCRT.DLL_strncmp
add esp, 0xc
test eax, eax
je 0x4681f1
mov edx, dword [ebx + 0x2c]
add dword [ebp - 0x1b0], edx
inc dword [ebp - 0x198]
mov ecx, dword [ebp - 0x198]
mov eax, dword [ebx + 0x28]
cmp ecx, eax
jl 0x4681b1
mov edx, dword [ebp - 0x198]
mov ecx, dword [ebx + 0x28]
cmp edx, ecx
jge 0x46823b
mov eax, dword [ebp - 0x1b0]
mov ecx, dword [ebp - 0x1b0]
xor edx, edx
mov dl, byte [eax]
xor eax, eax
shl edx, 8
mov al, byte [ecx + 1]
or edx, eax
mov dword [ebp - 0xb8], edx
mov edx, dword [ebp - 0xb8]
sar edx, 8
mov byte [esi + 4], dl
mov cl, byte [ebp - 0xb8]
and cl, 0xff
mov byte [esi + 5], cl
jmp 0x468dac
mov eax, dword [ebp - 0x1a4]
push eax
test byte [ebp - 0x48], 8
setne dl
and edx, 1
push edx
mov ecx, dword [ebp - 0x1ac]
mov edx, ebx
mov eax, dword [ebp - 0x68]
call fcn.00463e80
mov dword [ebp - 0x198], eax
test eax, eax
jle 0x468284
mov edx, dword [ebp - 0x198]
sar edx, 8
mov byte [esi + 4], dl
mov cl, byte [ebp - 0x198]
and cl, 0xff
mov byte [esi + 5], cl
jmp 0x468dac
mov eax, dword [ebp - 0xcc]
test eax, eax
je 0x4682a1
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0xf
jmp 0x4694fc
mov ecx, dword [ebp - 0x1ac]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x52
jne 0x468370
xor edx, edx
mov dword [ebp - 0xb8], edx
mov dword [ebp - 0x198], 1
mov ecx, dword [ebp - 0x198]
mov eax, dword [ebp - 0x1a4]
cmp ecx, eax
jge 0x46833b
mov edx, dword [ebp - 0x1ac]
mov ecx, dword [ebp - 0x198]
xor eax, eax
mov al, byte [edx + ecx]
test byte [eax + 0x48ea01], 4
jne 0x4682fe
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0xf
jmp 0x4694fc
mov ecx, dword [ebp - 0x1ac]
mov eax, dword [ebp - 0x198]
xor edx, edx
mov dl, byte [ecx + eax]
mov ecx, dword [ebp - 0xb8]
add ecx, ecx
lea ecx, [ecx + ecx*4]
add edx, ecx
add edx, 0xffffffd0
mov dword [ebp - 0xb8], edx
inc dword [ebp - 0x198]
mov eax, dword [ebp - 0x198]
mov edx, dword [ebp - 0x1a4]
cmp eax, edx
jl 0x4682d6
mov ecx, dword [ebp - 0xb8]
test ecx, ecx
jne 0x46834f
mov dword [ebp - 0xb8], 0xffff
mov byte [esi + 3], 0x65
mov eax, dword [ebp - 0xb8]
sar eax, 8
mov byte [esi + 4], al
mov dl, byte [ebp - 0xb8]
and dl, 0xff
mov byte [esi + 5], dl
jmp 0x468dac
mov ecx, dword [ebp - 0x1a4]
cmp ecx, 6
jne 0x4683a8
push 6
push 0x48eb09
mov eax, dword [ebp - 0x1ac]
push eax
call sub.MSVCRT.DLL_strncmp
add esp, 0xc
test eax, eax
jne 0x4683a8
mov byte [esi + 3], 0x66
mov dword [ebp - 0xc0], 1
jmp 0x468dac
mov edx, dword [ebp - 0xb8]
test edx, edx
jle 0x4683dc
mov ecx, dword [ebp - 0xb8]
mov eax, dword [ebx + 0x34]
cmp ecx, eax
jg 0x4683dc
mov edx, dword [ebp - 0xb8]
sar edx, 8
mov byte [esi + 4], dl
mov cl, byte [ebp - 0xb8]
and cl, 0xff
mov byte [esi + 5], cl
jmp 0x468dac
mov eax, dword [ebp - 0xb8]
test eax, eax
jne 0x4683ed
mov edx, 0x23
jmp 0x4683f2
mov edx, 0xf
mov eax, dword [ebp + 0x1c]
mov dword [eax], edx
jmp 0x4694fc
mov dword [ebp - 0x20], 0x58
inc dword [ebp - 0x68]
jmp 0x468dac
inc dword [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x29
jne 0x46842d
mov byte [esi], 0x6d
inc esi
xor edx, edx
mov dword [ebp - 0x70], edx
jmp 0x4694f4
mov dword [ebp - 0x20], 0x59
jmp 0x468dac
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx + 1]
sub al, 0x21
je 0x468459
sub al, 0x1c
je 0x468449
jmp 0x468469
mov dword [ebp - 0x20], 0x5a
add dword [ebp - 0x68], 2
jmp 0x468dac
mov dword [ebp - 0x20], 0x5b
add dword [ebp - 0x68], 2
jmp 0x468dac
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx + 1]
mov eax, dword [ebx + 0xc]
test byte [eax + ecx], 0x10
jne case.0x467e30.39
inc dword [ebp - 0x68]
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x18
jmp 0x4694fc
mov dword [ebp - 0x20], 0x5d
inc dword [ebp - 0x68]
jmp 0x468dac
mov dword [ebp - 0x74], esi
mov dword [ebp - 0x4c], 1
mov byte [esi], 0x53
inc esi
xor ecx, ecx
mov dword [ebp - 0x1b4], ecx
jmp 0x4684d8
mov eax, dword [ebp - 0x1b4]
mov edx, dword [ebp - 0x68]
add eax, eax
xor ecx, ecx
mov cl, byte [edx]
lea eax, [eax + eax*4]
add eax, ecx
add eax, 0xffffffd0
mov dword [ebp - 0x1b4], eax
inc dword [ebp - 0x68]
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax]
test byte [edx + 0x48ea01], 4
jne 0x4684bb
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x29
je 0x468505
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x27
jmp 0x4694fc
mov ecx, dword [ebp - 0x1b4]
cmp ecx, 0xff
jle 0x468521
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x26
jmp 0x4694fc
mov dl, byte [ebp - 0x1b4]
mov byte [esi], dl
inc esi
mov ecx, dword [ebp - 0x68]
mov eax, dword [ebx + 0x18]
sub ecx, eax
inc ecx
sar ecx, 8
mov byte [esi], cl
mov edx, dword [ebp - 0x68]
mov ecx, dword [ebx + 0x18]
sub edx, ecx
inc edx
and dl, 0xff
mov byte [esi + 1], dl
mov byte [esi + 2], 0
mov byte [esi + 3], 0
add esi, 4
xor eax, eax
mov dword [ebp - 0x70], eax
jmp 0x4694f4
inc dword [ebp - 0x68]
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x3d
je 0x468577
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x3e
jne 0x46859e
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x3e
sete dl
and edx, 1
mov dword [ebp - 0xa4], edx
mov dword [ebp - 0xcc], 0x29
jmp 0x4687c7
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x3c
je case.0x467e30.39
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x29
jmp 0x4694fc
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x3c
jne 0x4685cb
mov edx, 0x3e
jmp 0x4685d0
mov edx, 0x27
mov dword [ebp - 0xcc], edx
inc dword [ebp - 0x68]
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x1ac], eax
jmp 0x4685e7
inc dword [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx]
mov edx, dword [ebx + 0xc]
test byte [edx + eax], 0x10
jne 0x4685e4
mov ecx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x1ac]
sub ecx, eax
mov dword [ebp - 0x1a4], ecx
mov edx, dword [ebp + 8]
test edx, edx
je 0x468688
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx]
mov edx, dword [ebp - 0xcc]
cmp eax, edx
je 0x46862e
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0x2a
jmp 0x4694fc
mov eax, dword [ebx + 0x28]
cmp eax, 0x2710
jl 0x468646
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x31
jmp 0x4694fc
mov ecx, dword [ebp - 0x1a4]
add ecx, 3
mov eax, dword [ebx + 0x2c]
cmp ecx, eax
jle 0x4687a8
mov edx, dword [ebp - 0x1a4]
add edx, 3
mov dword [ebx + 0x2c], edx
mov ecx, dword [ebp - 0x1a4]
cmp ecx, 0x20
jle 0x4687a8
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x30
jmp 0x4694fc
mov edx, dword [ebx + 0x24]
mov dword [ebp - 0x1b0], edx
xor ecx, ecx
mov dword [ebp - 0x198], ecx
jmp 0x468747
mov eax, dword [ebp - 0x1a4]
push eax
mov edx, dword [ebp - 0x1b0]
add edx, 2
push edx
mov ecx, dword [ebp - 0x1ac]
push ecx
call sub.MSVCRT.DLL_memcmp
add esp, 0xc
mov dword [ebp - 0x1b8], eax
mov eax, dword [ebp - 0x1b8]
test eax, eax
jne 0x468702
mov edx, dword [ebp - 0x1b0]
mov ecx, dword [ebp - 0x1a4]
mov al, byte [edx + ecx + 2]
test al, al
jne 0x4686f8
test byte [ebp - 0x46], 8
jne 0x468702
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x2b
jmp 0x4694fc
mov dword [ebp - 0x1b8], 0xffffffff
mov ecx, dword [ebp - 0x1b8]
test ecx, ecx
jge 0x468738
mov eax, dword [ebx + 0x28]
mov edx, dword [ebp - 0x198]
sub eax, edx
imul dword [ebx + 0x2c]
push eax
mov ecx, dword [ebp - 0x1b0]
push ecx
mov eax, dword [ebp - 0x1b0]
mov edx, dword [ebx + 0x2c]
add eax, edx
push eax
call sub.MSVCRT.DLL_memmove
add esp, 0xc
jmp 0x468758
mov ecx, dword [ebx + 0x2c]
add dword [ebp - 0x1b0], ecx
inc dword [ebp - 0x198]
mov eax, dword [ebp - 0x198]
mov edx, dword [ebx + 0x28]
cmp eax, edx
jl 0x46869e
mov ecx, dword [ebx + 0x30]
mov eax, dword [ebp - 0x1b0]
inc ecx
sar ecx, 8
mov byte [eax], cl
mov dl, byte [ebx + 0x30]
mov ecx, dword [ebp - 0x1b0]
inc edx
and dl, 0xff
mov byte [ecx + 1], dl
mov eax, dword [ebp - 0x1a4]
push eax
mov edx, dword [ebp - 0x1ac]
push edx
mov ecx, dword [ebp - 0x1b0]
add ecx, 2
push ecx
call sub.MSVCRT.DLL_memcpy
mov eax, dword [ebp - 0x1b0]
mov edx, dword [ebp - 0x1a4]
add esp, 0xc
mov byte [eax + edx + 2], 0
inc dword [ebp - 0x68]
inc dword [ebx + 0x28]
jmp 0x468d8e
mov dword [ebp - 0xcc], 0x29
mov dword [ebp - 0xa4], 1
inc dword [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
mov dword [ebp - 0x1ac], ecx
jmp 0x4687d8
inc dword [ebp - 0x68]
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax]
mov ecx, dword [ebx + 0xc]
test byte [ecx + edx], 0x10
jne 0x4687d5
mov eax, dword [ebp - 0x68]
mov edx, dword [ebp - 0x1ac]
sub eax, edx
mov dword [ebp - 0x1a4], eax
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x46885d
mov eax, dword [ebp - 0x1a4]
test eax, eax
jne 0x468818
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x3e
jmp 0x4694fc
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx]
mov edx, dword [ebp - 0xcc]
cmp eax, edx
je 0x468837
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0x2a
jmp 0x4694fc
mov eax, dword [ebp - 0x1a4]
cmp eax, 0x20
jle 0x468850
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x30
jmp 0x4694fc
xor ecx, ecx
mov dword [ebp - 0xb8], ecx
jmp 0x46892d
mov eax, dword [ebx + 0x24]
mov dword [ebp - 0x1b0], eax
xor edx, edx
mov dword [ebp - 0x198], edx
jmp 0x4688b7
mov ecx, dword [ebp - 0x1a4]
push ecx
mov eax, dword [ebp - 0x1b0]
add eax, 2
push eax
mov edx, dword [ebp - 0x1ac]
push edx
call sub.MSVCRT.DLL_strncmp
add esp, 0xc
test eax, eax
jne 0x4688a8
mov ecx, dword [ebp - 0x1b0]
mov eax, dword [ebp - 0x1a4]
mov dl, byte [ecx + eax + 2]
test dl, dl
je 0x4688c4
mov ecx, dword [ebx + 0x2c]
add dword [ebp - 0x1b0], ecx
inc dword [ebp - 0x198]
mov eax, dword [ebp - 0x198]
mov edx, dword [ebx + 0x28]
cmp eax, edx
jl 0x468870
mov ecx, dword [ebp - 0x198]
mov eax, dword [ebx + 0x28]
cmp ecx, eax
jge 0x4688f3
mov edx, dword [ebp - 0x1b0]
mov eax, dword [ebp - 0x1b0]
xor ecx, ecx
mov cl, byte [edx]
xor edx, edx
shl ecx, 8
mov dl, byte [eax + 1]
or ecx, edx
mov dword [ebp - 0xb8], ecx
jmp 0x46892d
mov ecx, dword [ebp - 0x1a4]
push ecx
test byte [ebp - 0x48], 8
setne al
and eax, 1
push eax
mov ecx, dword [ebp - 0x1ac]
mov edx, ebx
mov eax, dword [ebp - 0x68]
call fcn.00463e80
mov dword [ebp - 0xb8], eax
test eax, eax
jg 0x46892d
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0xf
jmp 0x4694fc
mov ecx, dword [ebp - 0xa4]
test ecx, ecx
jne 0x468a79
jmp 0x469275
inc dword [ebp - 0x68]
mov dword [ebp - 0xcc], 0x29
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax]
mov dword [ebp - 0xbc], edx
cmp edx, 0x2b
jne 0x468982
inc dword [ebp - 0x68]
mov eax, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [eax]
test byte [ecx + 0x48ea01], 4
jne 0x4689a5
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x3f
jmp 0x4694fc
mov edx, dword [ebp - 0xbc]
cmp edx, 0x2d
jne 0x4689a5
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx + 1]
test byte [eax + 0x48ea01], 4
je case.0x467e30.34
inc dword [ebp - 0x68]
xor edx, edx
mov dword [ebp - 0xb8], edx
jmp 0x4689cf
mov ecx, dword [ebp - 0xb8]
mov eax, dword [ebp - 0x68]
add ecx, ecx
xor edx, edx
mov dl, byte [eax]
lea ecx, [ecx + ecx*4]
add ecx, edx
add ecx, 0xffffffd0
mov dword [ebp - 0xb8], ecx
inc dword [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx]
test byte [eax + 0x48ea01], 4
jne 0x4689af
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
mov eax, dword [ebp - 0xcc]
cmp ecx, eax
je 0x4689fe
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x1d
jmp 0x4694fc
mov ecx, dword [ebp - 0xbc]
cmp ecx, 0x2d
jne 0x468a4d
mov eax, dword [ebp - 0xb8]
test eax, eax
jne 0x468a21
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x3a
jmp 0x4694fc
mov ecx, dword [ebx + 0x30]
mov eax, dword [ebp - 0xb8]
sub ecx, eax
inc ecx
mov dword [ebp - 0xb8], ecx
mov edx, dword [ebp - 0xb8]
test edx, edx
jg 0x468a79
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0xf
jmp 0x4694fc
mov eax, dword [ebp - 0xbc]
cmp eax, 0x2b
jne 0x468a79
mov edx, dword [ebp - 0xb8]
test edx, edx
jne 0x468a70
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0x3a
jmp 0x4694fc
mov eax, dword [ebx + 0x30]
add dword [ebp - 0xb8], eax
mov dword [ebp - 0x70], esi
mov edx, dword [ebx + 0x14]
mov dword [ebp - 0x1bc], edx
mov ecx, dword [ebp + 8]
test ecx, ecx
jne 0x468b69
mov byte [esi], 0
mov eax, dword [ebp - 0xb8]
test eax, eax
je 0x468ab4
mov ecx, dword [ebp - 0xb8]
mov edx, dword [ebp - 0x80]
mov eax, dword [ebx + 0x14]
call fcn.0046441c
mov dword [ebp - 0x1bc], eax
mov edx, dword [ebp - 0x1bc]
test edx, edx
jne 0x468b26
mov ecx, dword [ebp - 0xb8]
mov edx, ebx
push ecx
test byte [ebp - 0x48], 8
setne al
and eax, 1
xor ecx, ecx
push eax
mov eax, dword [ebp - 0x68]
call fcn.00463e80
test eax, eax
jge 0x468aee
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0xf
jmp 0x4694fc
mov ecx, dword [ebx + 0x14]
mov eax, dword [ebp - 0xb8]
add ecx, eax
lea edx, [esi + 4]
mov dword [ebp - 0x1bc], ecx
mov ecx, dword [ebx + 0x14]
mov eax, dword [ebx + 0x20]
sub edx, ecx
sar edx, 8
mov byte [eax], dl
lea edx, [esi + 4]
mov ecx, dword [ebx + 0x14]
mov eax, dword [ebx + 0x20]
sub edx, ecx
and dl, 0xff
mov byte [eax + 1], dl
add dword [ebx + 0x20], 2
jmp 0x468b69
mov edx, dword [ebp - 0x1bc]
xor ecx, ecx
mov eax, dword [ebp - 0x1bc]
mov cl, byte [edx + 1]
xor edx, edx
shl ecx, 8
mov dl, byte [eax + 2]
or ecx, edx
jne 0x468b69
mov ecx, dword [ebp - 0x80]
push ecx
mov ecx, dword [ebp + 0x10]
mov edx, esi
mov eax, dword [ebp - 0x1bc]
call fcn.00464810
test eax, eax
je 0x468b69
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x28
jmp 0x4694fc
mov byte [esi], 0x5d
mov byte [esi + 1], 0
mov byte [esi + 2], 6
add esi, 3
mov byte [esi], 0x52
mov edx, dword [ebp - 0x1bc]
mov ecx, dword [ebx + 0x14]
sub edx, ecx
sar edx, 8
mov byte [esi + 1], dl
mov edx, dword [ebx + 0x14]
mov eax, dword [ebp - 0x1bc]
sub eax, edx
and al, 0xff
mov byte [esi + 2], al
add esi, 3
mov byte [esi], 0x55
mov byte [esi + 1], 0
mov byte [esi + 2], 6
mov dword [ebp - 0x50], 9
add esi, 3
mov ecx, dword [ebp - 0x2c]
cmp ecx, 0xfffffffe
jne 0x4694f4
mov dword [ebp - 0x2c], 0xffffffff
jmp 0x4694f4
xor eax, eax
lea edx, [ebp - 0x19c]
mov dword [ebp - 0x1a0], eax
mov dword [ebp - 0x19c], eax
mov dword [ebp - 0x1a8], edx
jmp 0x468c98
mov ecx, dword [ebp - 0x68]
inc dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x69
jg 0x468c11
je 0x468c42
sub eax, 0x2d
je 0x468c22
sub eax, 0x1d
je 0x468c30
sub eax, 0xb
je 0x468c6e
sub eax, 3
je 0x468c7c
jmp 0x468c87
sub eax, 0x6d
je 0x468c4d
sub eax, 6
je 0x468c58
sub eax, 5
je 0x468c63
jmp 0x468c87
lea edx, [ebp - 0x1a0]
mov dword [ebp - 0x1a8], edx
jmp 0x468c98
mov ecx, dword [ebp - 0x1a8]
or dword [ecx], 0x80000
or dword [ebx + 0x44], 0x10
jmp 0x468c98
mov eax, dword [ebp - 0x1a8]
or dword [eax], 1
jmp 0x468c98
mov edx, dword [ebp - 0x1a8]
or dword [edx], 2
jmp 0x468c98
mov ecx, dword [ebp - 0x1a8]
or dword [ecx], 4
jmp 0x468c98
mov eax, dword [ebp - 0x1a8]
or dword [eax], 8
jmp 0x468c98
mov edx, dword [ebp - 0x1a8]
or dword [edx], 0x200
jmp 0x468c98
mov ecx, dword [ebp - 0x1a8]
or dword [ecx], 0x40
jmp 0x468c98
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0xc
dec dword [ebp - 0x68]
jmp 0x4694fc
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x29
je 0x468cb4
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x3a
jne 0x468bea
mov ecx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x19c]
or ecx, eax
mov edx, dword [ebp - 0x1a0]
not edx
and ecx, edx
mov dword [ebp - 0xb4], ecx
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x29
jne 0x468d73
mov edx, dword [ebx + 0x14]
add edx, 3
cmp esi, edx
jne 0x468d0e
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x468cfa
mov eax, dword [ebp + 8]
mov edx, dword [eax]
cmp edx, 6
jne 0x468d0e
mov ecx, dword [ebp - 0xb4]
mov dword [ebx + 0x40], ecx
mov eax, dword [ebp - 0xb4]
mov dword [ebp - 0x48], eax
jmp 0x468d69
mov edx, dword [ebp - 0x48]
mov ecx, dword [ebp - 0xb4]
and ecx, 7
and edx, 7
cmp edx, ecx
je 0x468d30
mov byte [esi], 0x19
inc esi
mov al, byte [ebp - 0xb4]
and al, 7
mov byte [esi], al
inc esi
mov edx, dword [ebp - 0xb4]
mov dword [ebp - 0x48], edx
mov eax, dword [ebp - 4]
mov dword [eax], edx
test byte [ebp - 0xb3], 2
setne cl
and ecx, 1
mov dword [ebp - 0x24], ecx
mov eax, dword [ebp - 0x24]
xor eax, 1
mov dword [ebp - 0x28], eax
test byte [ebp - 0x48], 1
je 0x468d64
mov edx, pe_nt_image_headers32
jmp 0x468d66
xor edx, edx
mov dword [ebp - 0x3c], edx
xor eax, eax
mov dword [ebp - 0x70], eax
jmp 0x4694f4
mov dword [ebp - 0x20], 0x5e
inc dword [ebp - 0x68]
jmp 0x468dac
test byte [ebp - 0x47], 0x10
je 0x468d8e
mov dword [ebp - 0x20], 0x5e
jmp 0x468dac
inc dword [ebx + 0x30]
mov ecx, dword [ebx + 0x30]
sar ecx, 8
mov byte [esi + 3], cl
mov al, byte [ebx + 0x30]
and al, 0xff
mov byte [esi + 4], al
mov dword [ebp - 0xc0], 2
mov edx, dword [ebp - 0x20]
cmp edx, 0x5d
jl 0x468db8
mov ecx, esi
jmp 0x468dba
xor ecx, ecx
mov dword [ebp - 0x70], ecx
mov al, byte [ebp - 0x20]
mov byte [esi], al
mov dword [ebp - 0x5c], esi
mov edx, dword [ebx + 0x48]
mov dword [ebp - 0x44], edx
xor eax, eax
mov dword [ebp - 0x50], eax
lea edx, [ebp - 0x68]
push edx
mov ecx, dword [ebp + 0x1c]
push ecx
mov eax, dword [ebp - 0x20]
cmp eax, 0x5a
je 0x468dec
mov edx, dword [ebp - 0x20]
cmp edx, 0x5b
je 0x468dec
xor ecx, ecx
jmp 0x468df1
mov ecx, 1
push ecx
lea ecx, [ebp - 0xc8]
mov eax, dword [ebp - 0xa8]
push eax
lea eax, [ebp - 0xc4]
mov edx, dword [ebp - 0xc0]
push edx
push ecx
push eax
mov edx, dword [ebp + 0x10]
push edx
push ebx
mov ecx, dword [ebp + 8]
test ecx, ecx
jne 0x468e1e
xor eax, eax
jmp 0x468e21
lea eax, [ebp - 0x50]
push eax
lea ecx, [ebp - 0x5c]
mov edx, dword [ebp - 0x48]
mov eax, dword [ebp - 0xb4]
and edx, 7
call fcn.00469518
test eax, eax
je 0x4694fc
mov edx, dword [ebp - 0x20]
cmp edx, 0x60
jne 0x468ef4
mov ecx, dword [ebp + 8]
test ecx, ecx
jne 0x468ef4
mov dword [ebp - 0x1c0], esi
xor eax, eax
mov dword [ebp - 0x1c4], eax
inc dword [ebp - 0x1c4]
xor ecx, ecx
mov edx, dword [ebp - 0x1c0]
mov eax, dword [ebp - 0x1c0]
mov cl, byte [edx + 1]
xor edx, edx
shl ecx, 8
mov dl, byte [eax + 2]
or ecx, edx
add dword [ebp - 0x1c0], ecx
mov ecx, dword [ebp - 0x1c0]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x55
jne 0x468e63
xor edx, edx
mov dl, byte [esi + 3]
cmp edx, 0x66
jne 0x468ec3
mov ecx, dword [ebp - 0x1c4]
dec ecx
jle 0x468eba
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x36
jmp 0x4694fc
mov dword [ebp - 0x20], 0x66
jmp 0x468ef4
mov edx, dword [ebp - 0x1c4]
cmp edx, 2
jle 0x468edc
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0x1b
jmp 0x4694fc
mov eax, dword [ebp - 0x1c4]
dec eax
jne 0x468ef4
or edx, 0xffffffff
mov dword [ebp - 0xc4], edx
mov dword [ebp - 0xc8], edx
mov eax, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [eax]
cmp ecx, 0x29
je 0x468f0e
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0xe
jmp 0x4694fc
mov edx, dword [ebp + 8]
test edx, edx
je 0x468f65
mov ecx, dword [ebp + 8]
mov eax, 0x7fffffeb
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x50]
add ecx, 0xfffffffa
sub eax, edx
cmp eax, ecx
jge 0x468f39
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x14
jmp 0x4694fc
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x50]
add edx, 0xfffffffa
add dword [ecx], edx
mov byte [esi], 0x5e
inc esi
mov byte [esi], 0
mov byte [esi + 1], 3
add esi, 2
mov byte [esi], 0x55
inc esi
mov byte [esi], 0
mov byte [esi + 1], 3
add esi, 2
jmp 0x4694f4
mov esi, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x20]
cmp eax, 0x66
je 0x4694f4
mov edx, dword [ebp - 0x30]
xor eax, eax
mov dword [ebp - 0x34], edx
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x64], eax
mov edx, dword [ebp - 0x20]
cmp edx, 0x5d
jl 0x469002
mov ecx, dword [ebp - 0x2c]
cmp ecx, 0xfffffffe
jne 0x468fc1
mov eax, dword [ebp - 0xc8]
test eax, eax
jl 0x468fb1
mov edx, dword [ebp - 0xc8]
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x64], 1
jmp 0x468fb8
mov dword [ebp - 0x2c], 0xffffffff
mov dword [ebp - 0x38], 0xffffffff
jmp 0x468fe6
mov ecx, dword [ebp - 0xc8]
test ecx, ecx
jl 0x468fe6
mov eax, dword [ebp - 0xc4]
test eax, eax
jge 0x468fe6
mov edx, dword [ebp - 0xc8]
mov ecx, dword [ebp - 0x44]
or edx, ecx
mov dword [ebp - 0xc4], edx
mov eax, dword [ebp - 0xc4]
test eax, eax
jl 0x4694f4
mov edx, dword [ebp - 0xc4]
mov dword [ebp - 0x30], edx
jmp 0x4694f4
mov ecx, dword [ebp - 0x20]
cmp ecx, 0x58
jne 0x4694f4
mov eax, dword [ebp - 0xc4]
test eax, eax
jl 0x4694f4
mov edx, dword [ebp - 0xc4]
mov dword [ebp - 0x30], edx
jmp 0x4694f4
mov ecx, dword [ebp - 0x68]
mov dword [ebp - 0x6c], ecx
mov eax, dword [ebp - 0x48]
push eax
push 0
lea eax, [ebp - 0x68]
mov ecx, dword [ebx + 0x30]
mov edx, dword [ebp + 0x1c]
call fcn.00463828
mov edi, eax
mov eax, dword [ebp + 0x1c]
mov edx, dword [eax]
test edx, edx
jne 0x4694fc
test edi, edi
jge 0x469383
mov ecx, edi
neg ecx
cmp ecx, 0x1a
jne 0x469093
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x5c
jne 0x469087
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx + 2]
cmp eax, 0x45
jne 0x469087
add dword [ebp - 0x68], 2
jmp 0x4694f4
mov dword [ebp - 0x60], 1
jmp 0x4694f4
mov edx, edi
neg edx
cmp edx, 0x19
je 0x4694f4
mov ecx, dword [ebp - 0x2c]
cmp ecx, 0xfffffffe
jne 0x4690c1
mov eax, edi
neg eax
cmp eax, 5
jle 0x4690c1
mov edx, edi
neg edx
cmp edx, 0x17
jge 0x4690c1
mov dword [ebp - 0x2c], 0xffffffff
mov ecx, dword [ebp - 0x2c]
mov edx, edi
neg edx
mov dword [ebp - 0x38], ecx
cmp edx, 0x1b
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x34], eax
jne 0x4691f0
mov ecx, dword [ebx + 0x20]
mov dword [ebp - 0x78], ecx
inc dword [ebp - 0x68]
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x3c
jne 0x4690f6
mov ecx, 0x3e
jmp 0x4690fb
mov ecx, 0x27
mov dword [ebp - 0xcc], ecx
xor eax, eax
mov dword [ebp - 0xc0], eax
xor edx, edx
mov dword [ebp - 0xa8], edx
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x2b
je 0x4691b6
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx + 1]
cmp eax, 0x2d
je 0x4691b6
mov dword [ebp - 0x1c8], 1
mov eax, dword [ebp - 0x68]
inc eax
jmp 0x469166
xor edx, edx
mov dl, byte [eax]
mov ecx, dword [ebx + 0xc]
test byte [ecx + edx], 4
jne 0x469158
xor edx, edx
mov dword [ebp - 0x1c8], edx
xor ecx, ecx
mov cl, byte [eax]
mov edx, dword [ebx + 0xc]
test byte [edx + ecx], 0x10
je 0x46917a
inc eax
mov cl, byte [eax]
test cl, cl
je 0x46917a
xor edx, edx
mov dl, byte [eax]
mov ecx, dword [ebp - 0xcc]
cmp edx, ecx
jne 0x469143
movzx eax, byte [eax]
mov edx, dword [ebp - 0xcc]
cmp eax, edx
je 0x469195
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x39
jmp 0x4694f4
mov ecx, dword [ebp - 0x1c8]
test ecx, ecx
je 0x4691a7
inc dword [ebp - 0x68]
jmp 0x46894d
mov dword [ebp - 0xa4], 1
jmp 0x4687c7
mov eax, dword [ebp - 0x68]
add eax, 2
jmp 0x4691bf
inc eax
xor edx, edx
mov dl, byte [eax]
test byte [edx + 0x48ea01], 4
jne 0x4691be
xor ecx, ecx
mov cl, byte [eax]
mov eax, dword [ebp - 0xcc]
cmp ecx, eax
je 0x4691e8
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x39
jmp 0x4694f4
inc dword [ebp - 0x68]
jmp 0x46894d
mov ecx, edi
neg ecx
cmp ecx, 0x1c
jne 0x469261
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x3c
je 0x469220
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx + 1]
cmp eax, 0x27
je 0x469220
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx + 1]
cmp ecx, 0x7b
jne 0x469261
xor eax, eax
mov dword [ebp - 0xa4], eax
inc dword [ebp - 0x68]
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x3c
jne 0x46923e
mov eax, 0x3e
jmp 0x469256
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x27
jne 0x469251
mov eax, 0x27
jmp 0x469256
mov eax, 0x7d
mov dword [ebp - 0xcc], eax
jmp 0x4687c7
mov edx, edi
neg edx
cmp edx, 0x1d
jl 0x4692e6
neg edi
add edi, 0xffffffe3
mov dword [ebp - 0xb8], edi
mov ecx, dword [ebp - 0x2c]
cmp ecx, 0xfffffffe
jne 0x469284
mov dword [ebp - 0x2c], 0xffffffff
mov dword [ebp - 0x70], esi
mov byte [esi], 0x51
inc esi
mov eax, dword [ebp - 0xb8]
sar eax, 8
mov byte [esi], al
mov dl, byte [ebp - 0xb8]
and dl, 0xff
mov byte [esi + 1], dl
add esi, 2
mov ecx, dword [ebp - 0xb8]
cmp ecx, 0x20
jge 0x4692bf
mov ecx, dword [ebp - 0xb8]
mov eax, 1
shl eax, cl
jmp 0x4692c4
mov eax, 1
or dword [ebx + 0x3c], eax
mov edx, dword [ebp - 0xb8]
mov ecx, dword [ebx + 0x38]
cmp edx, ecx
jle 0x4694f4
mov eax, dword [ebp - 0xb8]
mov dword [ebx + 0x38], eax
jmp 0x4694f4
mov edx, edi
neg edx
cmp edx, 0xf
je 0x4692f8
mov ecx, edi
neg ecx
cmp ecx, 0x10
jne 0x46935c
mov eax, dword [ebp + 0x1c]
lea ecx, [ebp - 0x1d0]
push eax
lea eax, [ebp - 0x68]
lea edx, [ebp - 0x1cc]
call fcn.00463c24
mov dword [ebp - 0x1d4], eax
mov edx, dword [ebp - 0x1d4]
test edx, edx
jl 0x4694fc
neg edi
cmp edi, 0x10
mov dword [ebp - 0x70], esi
sete cl
and ecx, 1
mov eax, dword [ebp - 0x1cc]
cmp ecx, eax
je 0x469340
mov dl, 0x10
jmp 0x469342
mov dl, 0xf
mov byte [esi], dl
inc esi
mov al, byte [ebp - 0x1d4]
mov byte [esi], al
inc esi
mov cl, byte [ebp - 0x1d0]
mov byte [esi], cl
inc esi
jmp 0x4694f4
mov eax, edi
neg eax
cmp eax, 5
jle 0x469372
mov edx, edi
neg edx
cmp edx, 0x17
jge 0x469372
mov ecx, esi
jmp 0x469374
xor ecx, ecx
mov dword [ebp - 0x70], ecx
mov eax, edi
neg al
mov byte [esi], al
inc esi
jmp 0x4694f4
mov edx, dword [ebp - 0x80]
test edx, edx
je 0x4693a4
cmp edi, 0x7f
jle 0x4693a4
lea edx, [ebp - 0xd8]
mov eax, edi
call fcn.0047394c
mov dword [ebp - 0xd0], eax
jmp 0x46940a
mov ecx, edi
mov byte [ebp - 0xd8], cl
mov dword [ebp - 0xd0], 1
jmp 0x46940a
mov dword [ebp - 0xd0], 1
mov eax, edi
mov byte [ebp - 0xd8], al
mov edx, dword [ebp - 0x80]
test edx, edx
je 0x46940a
cmp edi, 0xc0
jl 0x46940a
jmp 0x4693f6
inc dword [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
mov edx, dword [ebp - 0xd0]
mov al, byte [ecx]
mov byte [ebp + edx - 0xd8], al
inc dword [ebp - 0xd0]
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx + 1]
and eax, 0xc0
cmp eax, 0x80
je 0x4693db
mov dword [ebp - 0x70], esi
test byte [ebp - 0x48], 1
je 0x469417
mov dl, 0x1d
jmp 0x469419
mov dl, 0x1c
mov byte [esi], dl
lea eax, [ebp - 0xd8]
mov dword [ebp - 0x1dc], eax
inc esi
mov edx, dword [ebp - 0xd0]
xor edi, edi
cmp edi, edx
jge 0x469450
mov ecx, dword [ebp - 0x1dc]
mov al, byte [ecx]
mov byte [esi], al
inc esi
inc edi
inc dword [ebp - 0x1dc]
mov edx, dword [ebp - 0xd0]
cmp edi, edx
jl 0x469434
xor ecx, ecx
mov cl, byte [ebp - 0xd8]
cmp ecx, 0xd
je 0x46946a
xor eax, eax
mov al, byte [ebp - 0xd8]
cmp eax, 0xa
jne 0x46946e
or dword [ebx + 0x44], 0x20
mov edx, dword [ebp - 0x2c]
cmp edx, 0xfffffffe
jne 0x4694c6
mov dword [ebp - 0x38], 0xffffffff
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x34], ecx
mov eax, dword [ebp - 0xd0]
dec eax
je 0x469493
mov edx, dword [ebp - 0x3c]
test edx, edx
jne 0x4694bb
xor ecx, ecx
mov cl, byte [ebp - 0xd8]
mov eax, dword [ebp - 0x3c]
or ecx, eax
mov dword [ebp - 0x2c], ecx
mov edx, dword [ebp - 0xd0]
dec edx
je 0x4694f4
xor ecx, ecx
mov cl, byte [esi - 1]
mov eax, dword [ebx + 0x48]
or ecx, eax
mov dword [ebp - 0x30], ecx
jmp 0x4694f4
or edx, 0xffffffff
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x2c], edx
jmp 0x4694f4
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x38], eax
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x34], ecx
mov eax, dword [ebp - 0xd0]
dec eax
je 0x4694e2
mov edx, dword [ebp - 0x3c]
test edx, edx
jne 0x4694f4
xor ecx, ecx
mov cl, byte [esi - 1]
mov eax, dword [ebp - 0x3c]
or ecx, eax
mov edx, dword [ebx + 0x48]
or ecx, edx
mov dword [ebp - 0x30], ecx
inc dword [ebp - 0x68]
jmp 0x46558f
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x68]
mov dword [ecx], eax
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18