Function at 0x643140
Capabilities:
Encode data using base64
Parse credit card information
Resolve function by parsing pe exports

Disassembly:
push ebp
add edx, eax
push edi
push esi
push ebx
sub esp, 0x12c
mov ebx, dword [esp + 0x140]
mov dword [esp + 0x34], eax
mov dword [esp + 0x11c], eax
mov dword [esp + 0x30], ecx
mov eax, dword [ebx + 0x14]
mov dword [esp + 0x40], edx
mov dword [esp], 0x280
mov dword [esp + 0x38], eax
call sub.msvcrt.dll_malloc
mov dword [esp + 0x3c], eax
mov edi, dword [esp + 0x3c]
mov eax, 0xc
test edi, edi
je 0x643287
mov ecx, dword [esp + 0x30]
and byte [ebx + 0x1c], 0x97
mov esi, dword [0x8651c4]
mov dword [ebx + 8], 0
mov dword [ebx + 0xc], ecx
mov dword [ebx + 0x18], 0
test esi, esi
je 0x643540
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x643292
mov esi, dword [ebx]
mov eax, dword [esp + 0x34]
movzx edx, byte [esp + 0x30]
xor ebp, ebp
mov dword [esp + 0x1c], esi
mov dword [esp + 0x44], 0
mov dword [esp + 0x50], 0x20
and edx, 1
mov dword [esp + 0x48], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0
mov byte [esp + 0x85], dl
cmp dword [esp + 0x40], eax
je 0x6446f0
movzx ecx, byte [eax]
mov edx, dword [esp + 0x38]
mov byte [esp + 0x24], cl
lea ecx, [eax + 1]
test edx, edx
mov dword [esp + 0x11c], ecx
je 0x643237
movzx edx, byte [esp + 0x24]
mov edi, dword [esp + 0x38]
movzx edx, byte [edi + edx]
mov byte [esp + 0x24], dl
movzx edx, byte [esp + 0x24]
sub edx, 0xa
cmp dl, 0x72
ja case.0x64324b.1
movzx edx, dl
jmp dword [edx*4 + 0x76d484]
test dword [esp + 0x30], 0x2000
jne case.0x643a22.3
mov eax, dword [esp + 0x44]
test eax, eax
jne 0x6432d9
test dword [esp + 0x30], 0x20000
jne case.0x643a22.3
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
call fcn.006a4590
mov eax, 0x10
add esp, 0x12c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [ebx]
test eax, eax
je 0x643c41
mov dword [esp + 4], 0x20
mov dword [esp], eax
call sub.msvcrt.dll_realloc
mov esi, eax
mov dword [ebx], eax
test esi, esi
je 0x64440b
mov dword [ebx + 4], 0x20
mov eax, dword [esp + 0x11c]
jmp 0x6431c6
test dword [esp + 0x30], 0x2000
je case.0x64324b.1
test ebp, ebp
je 0x6433b5
mov edi, dword [ebx]
mov edx, ebp
mov ecx, dword [esp + 0x28]
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x28], edi
jmp 0x643378
cmp eax, 0x10000
je 0x643520
add eax, eax
cmp eax, 0x10000
mov dword [ebx + 4], eax
jbe 0x643319
mov dword [ebx + 4], 0x10000
mov eax, 0x10000
mov dword [esp + 4], eax
mov eax, dword [ebx]
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], ecx
mov dword [esp], eax
call sub.msvcrt.dll_realloc
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
test eax, eax
mov dword [ebx], eax
je 0x643530
cmp eax, dword [esp + 0x28]
je 0x643374
mov edi, eax
sub edi, dword [esp + 0x28]
add dword [esp + 0x1c], edi
mov dword [esp + 0x24], edi
add esi, edi
add edi, edx
test edx, edx
cmovne edx, edi
mov edi, dword [esp + 0x24]
add edi, ebp
test ebp, ebp
cmovne ebp, edi
mov edi, dword [esp + 0x24]
add edi, ecx
test ecx, ecx
cmovne ecx, edi
mov dword [esp + 0x28], eax
mov eax, dword [ebx + 4]
mov edi, esi
sub edi, dword [esp + 0x28]
mov dword [esp + 0x24], esi
add edi, 1
cmp edi, eax
ja 0x6432f6
mov dword [esp + 0x28], ecx
mov ecx, esi
mov eax, ecx
sub eax, edx
sub eax, 3
mov byte [esi], 0x14
add esi, 1
mov byte [edx + 1], al
sar eax, 8
mov dword [esp + 0x2c], ebp
mov ebp, edx
mov byte [edx], 0xe
mov byte [edx + 2], al
mov eax, dword [esp + 0x44]
test eax, eax
jne 0x64496c
test dword [esp + 0x30], 0x20000
je 0x643276
mov byte [esp + 0x24], 0x29
mov eax, dword [esp + 0x28]
test eax, eax
je 0x6433f2
mov edi, dword [esp + 0x28]
movzx edx, byte [edi]
movzx eax, dl
lea edi, [edi + eax + 1]
cmp edi, esi
je 0x643c56
mov edi, dword [ebx]
mov edx, esi
mov eax, dword [ebx + 4]
mov ecx, edx
mov dword [esp + 0x2c], esi
sub ecx, edi
add ecx, 2
cmp ecx, eax
jbe 0x643477
cmp eax, 0x10000
je 0x643520
add eax, eax
cmp eax, 0x10000
mov dword [ebx + 4], eax
jbe 0x64342b
mov dword [ebx + 4], 0x10000
mov eax, 0x10000
mov dword [esp + 0x14], edx
mov dword [esp + 4], eax
mov dword [esp], edi
call sub.msvcrt.dll_realloc
mov edx, dword [esp + 0x14]
test eax, eax
mov dword [ebx], eax
je 0x643530
cmp eax, edi
je 0x643467
mov ecx, eax
sub ecx, edi
add edx, ecx
add dword [esp + 0x1c], ecx
test ebp, ebp
lea edi, [ebp + ecx]
cmovne ebp, edi
add ecx, esi
test esi, esi
cmovne esi, ecx
mov edi, eax
mov eax, dword [ebx + 4]
mov ecx, edx
sub ecx, edi
add ecx, 2
cmp ecx, eax
ja 0x643408
mov dword [esp + 0x2c], esi
mov esi, edx
add esi, 1
mov byte [edx], 2
lea edi, [edx + 2]
mov byte [edx + 1], 0
mov dword [esp + 0x28], esi
mov dword [esp + 0x20], edi
mov edx, ebp
mov esi, dword [ebx]
mov edi, dword [esp + 0x28]
mov ebp, dword [esp + 0x2c]
nop
mov ecx, dword [esp + 0x20]
mov eax, dword [ebx + 4]
sub ecx, esi
add ecx, 1
cmp ecx, eax
jbe 0x6443e0
cmp eax, 0x10000
je 0x643520
add eax, eax
cmp eax, 0x10000
mov dword [ebx + 4], eax
jbe 0x6434d3
mov dword [ebx + 4], 0x10000
mov eax, 0x10000
mov dword [esp + 0x14], edx
mov dword [esp + 4], eax
mov dword [esp], esi
call sub.msvcrt.dll_realloc
mov edx, dword [esp + 0x14]
test eax, eax
mov dword [ebx], eax
je 0x643530
cmp esi, eax
je 0x643515
mov ecx, eax
sub ecx, esi
lea esi, [edx + ecx]
add dword [esp + 0x20], ecx
add dword [esp + 0x1c], ecx
test edx, edx
cmovne edx, esi
test ebp, ebp
lea esi, [ebp + ecx]
cmovne ebp, esi
add ecx, edi
test edi, edi
cmovne edi, ecx
mov esi, eax
jmp 0x6434a0
add esp, 0x12c
mov eax, 0xf
pop ebx
pop esi
pop edi
pop ebp
ret
add esp, 0x12c
mov eax, 0xc
pop ebx
pop esi
pop edi
pop ebp
ret
mov edx, 0x8650c0
mov ecx, 0x40
xor al, al
mov edi, edx
rep stosd dword es:[edi], eax
mov edi, dword [sym.imp.msvcrt.dll_isalnum]
xor esi, esi
mov dword [esp], esi
call edi
test eax, eax
je 0x643568
mov byte [esi + 0x8650c0], 1
add esi, 1
cmp esi, 0x100
jne 0x643558
mov byte [0x86511f], 1
mov dword [0x8651c4], 1
jmp 0x6431b5
test dword [esp + 0x30], 0x402
jne case.0x64324b.1
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x6447bd
mov ecx, dword [esp + 0x30]
xor edi, edi
mov dword [esp + 0x58], ebp
mov eax, dword [esp + 0x11c]
mov dword [esp + 0x54], ebx
mov ebp, dword [esp + 0x40]
mov ebx, dword [esp + 0x38]
and ecx, 2
movzx edx, byte [esp + 0x24]
mov byte [esp + 0x4c], 0
mov dword [esp + 0x24], esi
xor esi, esi
mov dword [esp + 0x20], ecx
cmp dl, 0x2b
setne cl
or esi, ecx
cmp dl, 0x3f
setne dl
or edi, edx
cmp ebp, eax
je 0x6446d9
lea ecx, [eax + 1]
test ebx, ebx
movzx edx, byte [eax]
mov dword [esp + 0x11c], ecx
je 0x643607
movzx edx, dl
movzx edx, byte [ebx + edx]
cmp dl, 0x2a
je 0x643c3a
cmp dword [esp + 0x20], 0
jne 0x643c07
cmp dl, 0x3f
je 0x643c3a
cmp dl, 0x2b
je 0x643c3a
mov edx, esi
mov ebp, dword [esp + 0x58]
mov esi, dword [esp + 0x24]
mov ebx, dword [esp + 0x54]
mov byte [esp + 0x4c], dl
mov dword [esp + 0x11c], eax
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x6443ff
mov ecx, edi
test cl, cl
mov byte [esp + 0x20], 0
je 0x64449b
mov edx, esi
mov edi, dword [ebx]
mov esi, dword [esp + 0x2c]
lea esi, [esi]
mov eax, dword [ebx + 4]
mov ecx, edx
sub ecx, edi
add ecx, 3
cmp ecx, eax
jbe 0x644421
cmp eax, 0x10000
je 0x643520
add eax, eax
cmp eax, 0x10000
mov dword [ebx + 4], eax
jbe 0x6436a5
mov dword [ebx + 4], 0x10000
mov eax, 0x10000
mov dword [esp + 0x14], edx
mov dword [esp + 4], eax
mov dword [esp], edi
call sub.msvcrt.dll_realloc
mov edx, dword [esp + 0x14]
test eax, eax
mov dword [ebx], eax
je 0x643530
cmp edi, eax
je 0x6436e1
mov ecx, eax
sub ecx, edi
add edx, ecx
add dword [esp + 0x1c], ecx
test ebp, ebp
lea edi, [ebp + ecx]
cmovne ebp, edi
add ecx, esi
test esi, esi
cmovne esi, ecx
mov edi, eax
jmp 0x643670
test dword [esp + 0x30], 0x2000
je case.0x64324b.1
mov ecx, dword [esp + 0x50]
add dword [ebx + 0x18], 1
cmp dword [esp + 0x44], ecx
je 0x644b66
mov edx, dword [esp + 0x44]
mov edi, dword [ebx]
mov ecx, dword [esp + 0x3c]
lea eax, [edx + edx*4]
mov edx, dword [esp + 0x1c]
lea eax, [ecx + eax*4]
sub edx, edi
mov dword [eax], edx
xor edx, edx
test ebp, ebp
je 0x64372a
mov edx, ebp
sub edx, edi
add edx, 1
add dword [esp + 0x48], 1
mov ecx, dword [esp + 0x48]
mov dword [eax + 4], edx
mov edx, esi
sub edx, edi
mov dword [eax + 0xc], edx
cmp ecx, 0xff
mov dword [eax + 0x10], ecx
ja 0x6446b2
add edx, 2
mov dword [eax + 8], edx
mov eax, dword [ebx + 4]
mov edx, esi
sub edx, edi
add edx, 3
cmp edx, eax
jbe 0x6446a0
cmp eax, 0x10000
je 0x643520
add eax, eax
cmp eax, 0x10000
mov dword [ebx + 4], eax
jbe 0x643787
mov dword [ebx + 4], 0x10000
mov eax, 0x10000
mov dword [esp + 4], eax
mov eax, dword [ebx]
mov dword [esp], eax
call sub.msvcrt.dll_realloc
test eax, eax
mov dword [ebx], eax
je 0x643530
cmp eax, edi
je 0x6437a9
mov edx, eax
sub edx, edi
add esi, edx
mov edi, eax
jmp 0x643752
test dword [esp + 0x30], 0x8000
je case.0x64324b.1
test dword [esp + 0x30], 0x400
jne case.0x64324b.1
mov edi, dword [ebx]
nop
lea esi, [esi]
mov eax, dword [ebx + 4]
mov edx, esi
sub edx, edi
add edx, 3
cmp edx, eax
jbe 0x64480c
cmp eax, 0x10000
je 0x643520
add eax, eax
cmp eax, 0x10000
mov dword [ebx + 4], eax
jbe 0x643805
mov dword [ebx + 4], 0x10000
mov eax, 0x10000
mov dword [esp + 4], eax
mov dword [esp], edi
call sub.msvcrt.dll_realloc
test eax, eax
mov dword [ebx], eax
je 0x643530
cmp eax, edi
je 0x643830
mov edx, eax
sub edx, edi
add esi, edx
add dword [esp + 0x1c], edx
add edx, ebp
test ebp, ebp
cmovne ebp, edx
mov edi, eax
jmp 0x6437d0
mov eax, dword [esp + 0x30]
and eax, 0x1200
cmp eax, 0x1200
jne case.0x64324b.1
cmp dword [esp + 0x40], ecx
je 0x6438f7
mov edi, dword [esp + 0x38]
mov eax, ecx
mov dword [esp + 0x20], esi
mov esi, 0xffffffff
mov dword [esp + 0x4c], ebp
mov ebp, ecx
mov dword [esp + 0x24], 0xffffffff
movzx edx, byte [eax]
add eax, 1
test edi, edi
mov dword [esp + 0x11c], eax
je 0x643887
movzx edx, dl
movzx edx, byte [edi + edx]
lea ecx, [edx - 0x30]
cmp cl, 9
ja 0x644a8e
cmp esi, 0x7fff
jg 0x6438ae
xor ecx, ecx
cmp esi, 0xffffffff
je 0x6438a7
lea ecx, [esi + esi*4]
add ecx, ecx
movzx esi, dl
lea esi, [ecx + esi - 0x30]
cmp dword [esp + 0x40], eax
jne 0x64386f
mov dword [esp + 0x24], esi
mov edi, edx
mov edx, dword [esp + 0x24]
mov ecx, ebp
mov ebp, dword [esp + 0x4c]
xor eax, eax
mov esi, dword [esp + 0x20]
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x24]
shr edx, 0x1f
test dl, dl
jne 0x6438f7
test al, al
jne 0x6438f7
mov edx, dword [esp + 0x30]
and edx, 0x1000
jne 0x644e61
mov eax, edi
cmp al, 0x5c
je 0x644e2d
test dword [esp + 0x30], 0x200000
je 0x644f78
mov edx, dword [esp + 0x30]
and edx, 0x1000
test edx, edx
mov dword [esp + 0x11c], ecx
mov byte [esp + 0x24], 0x7b
jne case.0x64324b.1
mov eax, dword [esp + 0x38]
test eax, eax
je case.0x64324b.1
movzx eax, byte [esp + 0x24]
mov ecx, dword [esp + 0x38]
movzx eax, byte [ecx + eax]
mov byte [esp + 0x24], al
jmp case.0x64324b.1
mov edx, dword [esp + 0x34]
add edx, 1
cmp ecx, edx
je 0x64395b
test byte [esp + 0x30], 8
je 0x643d07
mov dword [esp + 0x20], esi
mov edx, ebp
mov edi, dword [ebx]
mov esi, dword [esp + 0x28]
mov ebp, dword [esp + 0x2c]
nop
lea esi, [esi]
mov ecx, dword [esp + 0x20]
mov eax, dword [ebx + 4]
sub ecx, edi
add ecx, 1
cmp ecx, eax
jbe 0x64479d
cmp eax, 0x10000
je 0x643520
add eax, eax
cmp eax, 0x10000
mov dword [ebx + 4], eax
jbe 0x6439a7
mov dword [ebx + 4], 0x10000
mov eax, 0x10000
mov dword [esp + 4], eax
mov eax, dword [ebx]
mov dword [esp + 0x14], edx
mov dword [esp], eax
call sub.msvcrt.dll_realloc
mov edx, dword [esp + 0x14]
test eax, eax
mov dword [ebx], eax
je 0x643530
cmp eax, edi
je 0x6439ef
mov ecx, eax
sub ecx, edi
lea edi, [edx + ecx]
add dword [esp + 0x20], ecx
add dword [esp + 0x1c], ecx
test edx, edx
cmovne edx, edi
test ebp, ebp
lea edi, [ebp + ecx]
cmovne ebp, edi
add ecx, esi
test esi, esi
cmovne esi, ecx
mov edi, eax
jmp 0x643970
cmp dword [esp + 0x40], ecx
je 0x6447d8
movzx edx, byte [eax + 1]
lea ecx, [eax + 2]
mov dword [esp + 0x11c], ecx
mov eax, edx
sub eax, 0x27
cmp al, 0x55
mov byte [esp + 0x24], dl
ja case.0x643a22.3
movzx eax, al
jmp dword [eax*4 + 0x76d650]
mov dword [esp + 0x2c], esi
mov edx, ebp
mov edi, dword [ebx]
mov dword [esp + 0x20], esi
mov ebp, dword [esp + 0x2c]
mov esi, dword [esp + 0x28]
lea esi, [esi]
mov ecx, dword [esp + 0x20]
mov eax, dword [ebx + 4]
sub ecx, edi
add ecx, 1
cmp ecx, eax
jbe 0x644518
cmp eax, 0x10000
je 0x643520
add eax, eax
cmp eax, 0x10000
mov dword [ebx + 4], eax
jbe 0x643a77
mov dword [ebx + 4], 0x10000
mov eax, 0x10000
mov dword [esp + 0x14], edx
mov dword [esp + 4], eax
mov dword [esp], edi
call sub.msvcrt.dll_realloc
mov edx, dword [esp + 0x14]
test eax, eax
mov dword [ebx], eax
je 0x643530
cmp eax, edi
je 0x643abd
mov ecx, eax
sub ecx, edi
lea edi, [edx + ecx]
add dword [esp + 0x20], ecx
add dword [esp + 0x1c], ecx
test edx, edx
cmovne edx, edi
test ebp, ebp
lea edi, [ebp + ecx]
cmovne ebp, edi
add ecx, esi
test esi, esi
cmovne esi, ecx
mov edi, eax
jmp 0x643a40
cmp dword [esp + 0x40], ecx
je 0x644e17
mov edx, esi
mov edi, dword [ebx]
mov esi, dword [esp + 0x28]
mov eax, dword [ebx + 4]
mov ecx, edx
sub ecx, edi
add ecx, 0x22
cmp ecx, eax
jbe 0x644538
cmp eax, 0x10000
je 0x643520
add eax, eax
cmp eax, 0x10000
mov dword [ebx + 4], eax
jbe 0x643b0b
mov dword [ebx + 4], 0x10000
mov eax, 0x10000
mov dword [esp + 0x14], edx
mov dword [esp + 4], eax
mov dword [esp], edi
call sub.msvcrt.dll_realloc
mov edx, dword [esp + 0x14]
test eax, eax
mov dword [ebx], eax
je 0x643530
cmp eax, edi
je 0x643b47
mov ecx, eax
sub ecx, edi
add edx, ecx
add dword [esp + 0x1c], ecx
test ebp, ebp
lea edi, [ebp + ecx]
cmovne ebp, edi
add ecx, esi
test esi, esi
cmovne esi, ecx
mov edi, eax
jmp 0x643ad6
cmp dword [esp + 0x40], ecx
je 0x643b5e
mov edi, dword [esp + 0x30]
and edi, 8
je 0x643cc0
mov dword [esp + 0x20], esi
mov edx, ebp
mov edi, dword [ebx]
mov esi, dword [esp + 0x28]
mov ebp, dword [esp + 0x2c]
nop
mov ecx, dword [esp + 0x20]
mov eax, dword [ebx + 4]
sub ecx, edi
add ecx, 1
cmp ecx, eax
jbe 0x64477d
cmp eax, 0x10000
je 0x643520
add eax, eax
cmp eax, 0x10000
mov dword [ebx + 4], eax
jbe 0x643ba7
mov dword [ebx + 4], 0x10000
mov eax, 0x10000
mov dword [esp + 0x14], edx
mov dword [esp + 4], eax
mov dword [esp], edi
call sub.msvcrt.dll_realloc
mov edx, dword [esp + 0x14]
test eax, eax
mov dword [ebx], eax
je 0x643530
cmp eax, edi
je 0x643bed
mov ecx, eax
sub ecx, edi
lea edi, [edx + ecx]
add dword [esp + 0x20], ecx
add dword [esp + 0x1c], ecx
test edx, edx
cmovne edx, edi
test ebp, ebp
lea edi, [ebp + ecx]
cmovne ebp, edi
add ecx, esi
test esi, esi
cmovne esi, ecx
mov edi, eax
jmp 0x643b70
test dword [esp + 0x30], 0x800
jne 0x6437bb
jmp case.0x64324b.1
cmp dl, 0x5c
jne 0x644fd3
cmp ebp, ecx
je 0x6447d8
lea ecx, [eax + 2]
test ebx, ebx
movzx edx, byte [eax + 1]
mov dword [esp + 0x11c], ecx
je 0x643c31
movzx edx, dl
movzx edx, byte [ebx + edx]
cmp dl, 0x3f
jne 0x643d48
mov eax, ecx
jmp 0x6435d7
mov dword [esp], 0x20
call sub.msvcrt.dll_malloc
mov esi, eax
mov dword [ebx], eax
jmp 0x6432b0
cmp dl, 0xff
je 0x6433f2
mov eax, dword [esp + 0x11c]
movzx ecx, byte [eax]
mov dword [esp + 0x20], eax
cmp cl, 0x2a
je 0x6433f2
cmp cl, 0x5e
je 0x6433f2
test byte [esp + 0x30], 2
je 0x64494f
cmp cl, 0x5c
je 0x644c6e
test dword [esp + 0x30], 0x200
je 0x64348e
test dword [esp + 0x30], 0x1000
je 0x644c89
cmp cl, 0x7b
jne 0x64348e
mov esi, edi
jmp 0x6433f2
movzx edx, byte [eax + 1]
cmp dl, 0x5c
sete cl
add eax, 2
cmp dword [esp + 0x40], eax
cmovbe eax, edi
test dword [esp + 0x30], 0x2000
je 0x6447ee
cmp dl, 0x29
je 0x643b5e
test dword [esp + 0x30], 0x8000
je 0x6448bb
cmp dl, 0x7c
jne case.0x64324b.1
jmp 0x643b5e
lea ecx, [eax - 1]
xor edx, edx
cmp dword [esp + 0x34], ecx
jae 0x643d19
cmp byte [eax - 2], 0x5c
sete dl
movzx eax, byte [eax - 1]
cmp al, 0x28
je 0x644a73
cmp al, 0x7c
jne case.0x64324b.1
test dl, dl
jne 0x64395b
test dword [esp + 0x30], 0x8000
jne 0x64395b
jmp case.0x64324b.1
cmp dl, 0x2b
je 0x643c3a
mov edx, esi
mov ebp, dword [esp + 0x58]
mov byte [esp + 0x4c], dl
mov esi, dword [esp + 0x24]
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x11c], eax
jmp 0x643646
test dword [esp + 0x30], 0x80000
jne case.0x64324b.1
mov edi, dword [ebx]
mov edx, esi
mov esi, ebx
mov ebx, dword [esp + 0x2c]
mov eax, dword [esi + 4]
mov ecx, edx
sub ecx, edi
add ecx, 1
cmp ecx, eax
jbe 0x64523a
cmp eax, 0x10000
je 0x643520
add eax, eax
cmp eax, 0x10000
mov dword [esi + 4], eax
jbe 0x643dbc
mov dword [esi + 4], 0x10000
mov eax, 0x10000
mov dword [esp + 0x14], edx
mov dword [esp + 4], eax
mov dword [esp], edi
call sub.msvcrt.dll_realloc
mov edx, dword [esp + 0x14]
test eax, eax
mov dword [esi], eax
je 0x643530
cmp eax, edi
je 0x643e0c
mov ecx, eax
sub ecx, edi
lea edi, [ebp + ecx]
add edx, ecx
add dword [esp + 0x1c], ecx
test ebp, ebp
cmovne ebp, edi
test ebx, ebx
lea edi, [ebx + ecx]
cmovne ebx, edi
mov edi, dword [esp + 0x28]
add ecx, dword [esp + 0x28]
test edi, edi
cmove ecx, dword [esp + 0x28]
mov dword [esp + 0x28], ecx
mov edi, eax
jmp 0x643d87
test dword [esp + 0x30], 0x80000
jne case.0x64324b.1
mov edi, dword [ebx]
mov edx, esi
mov dword [esp + 0x2c], esi
mov eax, dword [ebx + 4]
mov ecx, edx
sub ecx, edi
add ecx, 1
cmp ecx, eax
jbe 0x645254
cmp eax, 0x10000
je 0x643520
add eax, eax
cmp eax, 0x10000
mov dword [ebx + 4], eax
jbe 0x643e5e
mov dword [ebx + 4], 0x10000
mov eax, 0x10000
mov dword [esp + 4], eax
mov eax, dword [ebx]
mov dword [esp + 0x14], edx
mov dword [esp], eax
call sub.msvcrt.dll_realloc
mov edx, dword [esp + 0x14]
test eax, eax
mov dword [ebx], eax
je 0x643530
cmp eax, edi
je 0x643eb0
mov ecx, eax
sub ecx, edi
lea edi, [ebp + ecx]
add edx, ecx
add dword [esp + 0x1c], ecx
test ebp, ebp
cmovne ebp, edi
test esi, esi
lea edi, [esi + ecx]
cmovne esi, edi
mov edi, dword [esp + 0x28]
add ecx, dword [esp + 0x28]
test edi, edi
cmove ecx, dword [esp + 0x28]
mov dword [esp + 0x28], ecx
mov edi, eax
jmp 0x643e29
test dword [esp + 0x30], 0x80000
jne case.0x64324b.1
mov edi, dword [ebx]
mov edx, esi
mov esi, ebx
mov ebx, dword [esp + 0x2c]
mov eax, dword [esi + 4]
mov ecx, edx
sub ecx, edi
add ecx, 1
cmp ecx, eax
jbe 0x645220
cmp eax, 0x10000
je 0x643520
add eax, eax
cmp eax, 0x10000
mov dword [esi + 4], eax
jbe 0x643f04
mov dword [esi + 4], 0x10000
mov eax, 0x10000
mov dword [esp + 0x14], edx
mov dword [esp + 4], eax
mov dword [esp], edi
call sub.msvcrt.dll_realloc
mov edx, dword [esp + 0x14]
test eax, eax
mov dword [esi], eax
je 0x643530
cmp eax, edi
je 0x643f54
mov ecx, eax
sub ecx, edi
lea edi, [ebp + ecx]
add edx, ecx
add dword [esp + 0x1c], ecx
test ebp, ebp
cmovne ebp, edi
test ebx, ebx
lea edi, [ebx + ecx]
cmovne ebx, edi
mov edi, dword [esp + 0x28]
add ecx, dword [esp + 0x28]
test edi, edi
cmove ecx, dword [esp + 0x28]
mov dword [esp + 0x28], ecx
mov edi, eax
jmp 0x643ecf
test dword [esp + 0x30], 0x80000
jne case.0x64324b.1
mov edi, dword [ebx]
mov edx, esi
mov esi, ebx
mov ebx, dword [esp + 0x2c]
mov eax, dword [esi + 4]
mov ecx, edx
sub ecx, edi
add ecx, 1
cmp ecx, eax
jbe 0x645206
cmp eax, 0x10000
je 0x643520
add eax, eax
cmp eax, 0x10000
mov dword [esi + 4], eax
jbe 0x643fa8
mov dword [esi + 4], 0x10000
mov eax, 0x10000
mov dword [esp + 0x14], edx
mov dword [esp + 4], eax
mov dword [esp], edi
call sub.msvcrt.dll_realloc
mov edx, dword [esp + 0x14]
test eax, eax
mov dword [esi], eax
je 0x643530
cmp eax, edi
je 0x643ff8
mov ecx, eax
sub ecx, edi
lea edi, [ebp + ecx]
add edx, ecx
add dword [esp + 0x1c], ecx
test ebp, ebp
cmovne ebp, edi
test ebx, ebx
lea edi, [ebx + ecx]
cmovne ebx, edi
mov edi, dword [esp + 0x28]
add ecx, dword [esp + 0x28]
test edi, edi
cmove ecx, dword [esp + 0x28]
mov dword [esp + 0x28], ecx
mov edi, eax
jmp 0x643f73
test dword [esp + 0x30], 0x80000
jne case.0x64324b.1
mov edx, esi
mov edi, dword [ebx]
mov dword [esp + 0x2c], esi
mov esi, ebx
mov ebx, edx
mov eax, dword [esi + 4]
mov ecx, edx
sub ecx, edi
add ecx, 1
cmp ecx, eax
jbe 0x6451ec
cmp eax, 0x10000
je 0x643520
add eax, eax
cmp eax, 0x10000
mov dword [esi + 4], eax
jbe 0x64404e
mov dword [esi + 4], 0x10000
mov eax, 0x10000
mov dword [esp + 0x14], edx
mov dword [esp + 4], eax
mov dword [esp], edi
call sub.msvcrt.dll_realloc
mov edx, dword [esp + 0x14]
test eax, eax
mov dword [esi], eax
je 0x643530
cmp eax, edi
je 0x64409e
mov ecx, eax
sub ecx, edi
lea edi, [ebp + ecx]
add edx, ecx
add dword [esp + 0x1c], ecx
test ebp, ebp
cmovne ebp, edi
test ebx, ebx
lea edi, [ebx + ecx]
cmovne ebx, edi
mov edi, dword [esp + 0x28]
add ecx, dword [esp + 0x28]
test edi, edi
cmove ecx, dword [esp + 0x28]
mov dword [esp + 0x28], ecx
mov edi, eax
jmp 0x644019
test dword [esp + 0x30], 0x8400
jne case.0x643a22.3
jmp 0x6437bb
mov eax, dword [esp + 0x30]
and eax, 0x1200
cmp eax, 0x200
jne case.0x643a22.3
jmp 0x643848
test byte [esp + 0x30], 2
jne case.0x64324b.32
lea esi, [esi]
jmp case.0x643a22.3
test dword [esp + 0x30], 0x2000
jne case.0x643a22.3
jmp 0x6436f3
test dword [esp + 0x30], 0x80000
jne case.0x64324b.1
mov edi, dword [ebx]
mov edx, esi
mov esi, ebx
mov ebx, dword [esp + 0x2c]
mov eax, dword [esi + 4]
mov ecx, edx
sub ecx, edi
add ecx, 1
cmp ecx, eax
jbe 0x6452be
cmp eax, 0x10000
je 0x643520
add eax, eax
cmp eax, 0x10000
mov dword [esi + 4], eax
jbe 0x644145
mov dword [esi + 4], 0x10000
mov eax, 0x10000
mov dword [esp + 0x14], edx
mov dword [esp + 4], eax
mov dword [esp], edi
call sub.msvcrt.dll_realloc
mov edx, dword [esp + 0x14]
test eax, eax
mov dword [esi], eax
je 0x643530
cmp eax, edi
je 0x644195
mov ecx, eax
sub ecx, edi
lea edi, [ebp + ecx]
add edx, ecx
add dword [esp + 0x1c], ecx
test ebp, ebp
cmovne ebp, edi
test ebx, ebx
lea edi, [ebx + ecx]
cmovne ebx, edi
mov edi, dword [esp + 0x28]
add ecx, dword [esp + 0x28]
test edi, edi
cmove ecx, dword [esp + 0x28]
mov dword [esp + 0x28], ecx
mov edi, eax
jmp 0x644110
test dword [esp + 0x30], 0x80000
jne case.0x64324b.1
mov edi, dword [ebx]
mov edx, esi
mov esi, ebx
mov ebx, dword [esp + 0x2c]
mov eax, dword [esi + 4]
mov ecx, edx
sub ecx, edi
add ecx, 1
cmp ecx, eax
jbe 0x6452a4
cmp eax, 0x10000
je 0x643520
add eax, eax
cmp eax, 0x10000
mov dword [esi + 4], eax
jbe 0x6441e9
mov dword [esi + 4], 0x10000
mov eax, 0x10000
mov dword [esp + 0x14], edx
mov dword [esp + 4], eax
mov dword [esp], edi
call sub.msvcrt.dll_realloc
mov edx, dword [esp + 0x14]
test eax, eax
mov dword [esi], eax
je 0x643530
cmp eax, edi
je 0x644239
mov ecx, eax
sub ecx, edi
lea edi, [ebp + ecx]
add edx, ecx
add dword [esp + 0x1c], ecx
test ebp, ebp
cmovne ebp, edi
test ebx, ebx
lea edi, [ebx + ecx]
cmovne ebx, edi
mov edi, dword [esp + 0x28]
add ecx, dword [esp + 0x28]
test edi, edi
cmove ecx, dword [esp + 0x28]
mov dword [esp + 0x28], ecx
mov edi, eax
jmp 0x6441b4
test dword [esp + 0x30], 0x4000
jne case.0x64324b.1
movzx ecx, byte [esp + 0x24]
sub ecx, 0x30
mov byte [esp + 0x20], cl
movzx ecx, cl
cmp dword [esp + 0x48], ecx
jb 0x6452fa
mov edx, dword [esp + 0x44]
sub edx, 1
js 0x6442a4
mov edi, dword [esp + 0x3c]
lea eax, [edx + edx*4]
cmp ecx, dword [edi + eax*4 + 0x10]
je case.0x64324b.1
mov edi, dword [esp + 0x44]
lea eax, [edi + edi*4 - 0xa]
mov edi, dword [esp + 0x3c]
lea eax, [edi + eax*4 + 0x10]
jmp 0x64429f
sub eax, 0x14
cmp ecx, dword [eax + 0x14]
je case.0x64324b.1
sub edx, 1
jns 0x644293
mov edx, esi
mov edi, dword [ebx]
mov dword [esp + 0x2c], esi
mov esi, ebx
mov ebx, edx
mov eax, dword [esi + 4]
mov ecx, edx
sub ecx, edi
add ecx, 2
cmp ecx, eax
jbe 0x6452d8
cmp eax, 0x10000
je 0x643520
add eax, eax
cmp eax, 0x10000
mov dword [esi + 4], eax
jbe 0x6442e5
mov dword [esi + 4], 0x10000
mov eax, 0x10000
mov dword [esp + 0x14], edx
mov dword [esp + 4], eax
mov dword [esp], edi
call sub.msvcrt.dll_realloc
mov edx, dword [esp + 0x14]
test eax, eax
mov dword [esi], eax
je 0x643530
cmp edi, eax
je 0x644335
mov ecx, eax
sub ecx, edi
lea edi, [ebp + ecx]
add edx, ecx
add dword [esp + 0x1c], ecx
test ebp, ebp
cmovne ebp, edi
test ebx, ebx
lea edi, [ebx + ecx]
cmovne ebx, edi
mov edi, dword [esp + 0x28]
add ecx, dword [esp + 0x28]
test edi, edi
cmove ecx, dword [esp + 0x28]
mov dword [esp + 0x28], ecx
mov edi, eax
jmp 0x6442b0
test dword [esp + 0x30], 0x80000
jne case.0x64324b.1
mov edi, dword [ebx]
mov edx, esi
mov esi, ebx
mov ebx, dword [esp + 0x2c]
mov eax, dword [esi + 4]
mov ecx, edx
sub ecx, edi
add ecx, 1
cmp ecx, eax
jbe 0x644f5e
cmp eax, 0x10000
je 0x643520
add eax, eax
cmp eax, 0x10000
mov dword [esi + 4], eax
jbe 0x644389
mov dword [esi + 4], 0x10000
mov eax, 0x10000
mov dword [esp + 0x14], edx
mov dword [esp + 4], eax
mov dword [esp], edi
call sub.msvcrt.dll_realloc
mov edx, dword [esp + 0x14]
test eax, eax
mov dword [esi], eax
je 0x643530
cmp eax, edi
je 0x6443d9
mov ecx, eax
sub ecx, edi
lea edi, [ebp + ecx]
add edx, ecx
add dword [esp + 0x1c], ecx
test ebp, ebp
cmovne ebp, edi
test ebx, ebx
lea edi, [ebx + ecx]
cmovne ebx, edi
mov edi, dword [esp + 0x28]
add ecx, dword [esp + 0x28]
test edi, edi
cmove ecx, dword [esp + 0x28]
mov dword [esp + 0x28], ecx
mov edi, eax
jmp 0x644354
mov dword [esp + 0x28], edi
mov edi, dword [esp + 0x20]
mov dword [esp + 0x2c], ebp
mov ecx, dword [esp + 0x28]
mov ebp, edx
movzx edx, byte [esp + 0x24]
lea esi, [edi + 1]
mov byte [edi], dl
add byte [ecx], 1
mov eax, dword [esp + 0x11c]
jmp 0x643203
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
call fcn.006a4590
mov eax, 0xc
jmp 0x643287
mov eax, dword [esp + 0x38]
mov dword [esp + 0x2c], esi
mov ecx, dword [esp + 0x11c]
mov esi, edx
test eax, eax
je 0x645310
movzx eax, byte [ecx - 2]
mov edi, dword [esp + 0x38]
movsx edx, byte [edi + eax]
movsx eax, byte [edi + 0x2e]
cmp edx, eax
jne 0x64447e
cmp byte [esp + 0x4c], 0
je 0x64447e
cmp dword [esp + 0x40], ecx
jbe 0x64447e
mov eax, dword [esp + 0x38]
test eax, eax
je 0x644fc6
movzx eax, byte [ecx]
mov ecx, dword [esp + 0x38]
movsx edx, byte [ecx + eax]
movsx eax, byte [ecx + 0xa]
cmp edx, eax
je 0x644f9c
mov eax, dword [esp + 0x2c]
mov byte [esi], 0x12
mov byte [esp + 0x20], 0
sub eax, esi
sub eax, 6
mov byte [esi + 1], al
sar eax, 8
mov byte [esi + 2], al
add esi, 3
mov edx, esi
mov edi, dword [ebx]
mov esi, dword [esp + 0x2c]
mov eax, dword [ebx + 4]
mov ecx, edx
sub ecx, edi
add ecx, 3
cmp ecx, eax
jbe 0x6448f1
cmp eax, 0x10000
je 0x643520
add eax, eax
cmp eax, 0x10000
mov dword [ebx + 4], eax
jbe 0x6444d8
mov dword [ebx + 4], 0x10000
mov eax, 0x10000
mov dword [esp + 0x14], edx
mov dword [esp + 4], eax
mov dword [esp], edi
call sub.msvcrt.dll_realloc
mov edx, dword [esp + 0x14]
test eax, eax
mov dword [ebx], eax
je 0x643530
cmp eax, edi
je 0x644514
mov ecx, eax
sub ecx, edi
add edx, ecx
add dword [esp + 0x1c], ecx
test ebp, ebp
lea edi, [ebp + ecx]
cmovne ebp, edi
add ecx, esi
test esi, esi
cmovne esi, ecx
mov edi, eax
jmp 0x6444a3
mov dword [esp + 0x28], esi
mov esi, dword [esp + 0x20]
mov dword [esp + 0x2c], ebp
mov ebp, edx
mov byte [esi], 3
add esi, 1
mov eax, dword [esp + 0x11c]
jmp 0x643203
mov dword [esp + 0x28], esi
mov ecx, eax
mov esi, edx
mov dword [esp + 0x2c], edx
jmp 0x6445c0
cmp ecx, 0x10000
je 0x643520
add ecx, ecx
cmp ecx, 0x10000
mov dword [ebx + 4], ecx
jbe 0x64456b
mov dword [ebx + 4], 0x10000
mov ecx, 0x10000
mov dword [esp + 0x14], edx
mov dword [esp + 4], ecx
mov dword [esp], edi
call sub.msvcrt.dll_realloc
mov edx, dword [esp + 0x14]
test eax, eax
mov dword [ebx], eax
je 0x643530
cmp eax, edi
je 0x6445bb
mov ecx, eax
sub ecx, edi
lea edi, [ebp + ecx]
add edx, ecx
add dword [esp + 0x1c], ecx
test ebp, ebp
cmovne ebp, edi
test esi, esi
lea edi, [esi + ecx]
cmovne esi, edi
mov edi, dword [esp + 0x28]
add ecx, dword [esp + 0x28]
test edi, edi
cmove ecx, dword [esp + 0x28]
mov dword [esp + 0x28], ecx
mov ecx, dword [ebx + 4]
mov edi, eax
mov eax, edx
sub eax, edi
add eax, 1
cmp eax, ecx
ja 0x644546
mov eax, dword [esp + 0x11c]
mov dword [esp + 0x2c], esi
mov esi, edx
cmp byte [eax], 0x5e
sete al
add esi, 1
add eax, 4
mov byte [edx], al
mov edx, dword [esp + 0x11c]
mov dword [esp + 0x20], esi
cmp byte [edx], 0x5e
mov dword [esp + 0x58], edx
jne 0x64460c
add edx, 1
mov dword [esp + 0x58], edx
mov dword [esp + 0x11c], edx
mov esi, dword [ebx]
mov edi, dword [esp + 0x28]
mov edx, esi
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x20]
mov eax, dword [ebx + 4]
sub ecx, edx
add ecx, 1
cmp ecx, eax
jbe 0x644cbf
cmp eax, 0x10000
je 0x643520
add eax, eax
cmp eax, 0x10000
mov dword [ebx + 4], eax
jbe 0x64464f
mov dword [ebx + 4], 0x10000
mov eax, 0x10000
mov dword [esp + 4], eax
mov eax, dword [ebx]
mov dword [esp + 0x14], edx
mov dword [esp], eax
call sub.msvcrt.dll_realloc
mov edx, dword [esp + 0x14]
test eax, eax
mov dword [ebx], eax
je 0x643530
cmp eax, edx
je 0x644699
mov ecx, eax
sub ecx, edx
mov edx, ecx
add dword [esp + 0x20], ecx
add dword [esp + 0x1c], ecx
test ebp, ebp
lea ecx, [ebp + ecx]
cmovne ebp, ecx
test esi, esi
lea ecx, [esi + edx]
cmovne esi, ecx
add edx, edi
test edi, edi
cmovne edi, edx
mov edx, eax
jmp 0x644618
movzx eax, byte [esp + 0x48]
mov byte [esi], 6
mov byte [esi + 2], 0
mov byte [esi + 1], al
add esi, 3
add dword [esp + 0x44], 1
xor ebp, ebp
mov eax, dword [esp + 0x11c]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0
jmp 0x643203
mov edx, esi
mov ebp, dword [esp + 0x58]
mov byte [esp + 0x4c], dl
mov esi, dword [esp + 0x24]
mov ebx, dword [esp + 0x54]
jmp 0x643646
test ebp, ebp
je 0x644708
mov eax, esi
sub eax, ebp
sub eax, 3
mov byte [ebp + 1], al
sar eax, 8
mov byte [ebp], 0xe
mov byte [ebp + 2], al
mov edi, dword [esp + 0x44]
test edi, edi
jne 0x6448db
test dword [esp + 0x30], 0x40000
je 0x644b9d
mov edi, dword [ebx]
mov eax, dword [ebx + 4]
mov edx, esi
sub edx, edi
add edx, 1
cmp edx, eax
jbe 0x644b97
cmp eax, 0x10000
je 0x643520
add eax, eax
cmp eax, 0x10000
mov dword [ebx + 4], eax
jbe 0x644759
mov dword [ebx + 4], 0x10000
mov eax, 0x10000
mov dword [esp + 4], eax
mov dword [esp], edi
call sub.msvcrt.dll_realloc
test eax, eax
mov dword [ebx], eax
je 0x643530
cmp edi, eax
je 0x644779
mov edx, eax
sub edx, edi
add esi, edx
mov edi, eax
jmp 0x644724
mov dword [esp + 0x28], esi
mov esi, dword [esp + 0x20]
mov dword [esp + 0x2c], ebp
mov ebp, edx
mov byte [esi], 0xa
add esi, 1
mov eax, dword [esp + 0x11c]
jmp 0x643203
mov dword [esp + 0x28], esi
mov esi, dword [esp + 0x20]
mov dword [esp + 0x2c], ebp
mov ebp, edx
mov byte [esi], 9
add esi, 1
mov eax, dword [esp + 0x11c]
jmp 0x643203
test byte [esp + 0x30], 0x20
jne 0x644f10
test byte [esp + 0x30], 0x10
je case.0x64324b.1
jmp 0x6435a3
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
call fcn.006a4590
mov eax, 5
jmp 0x643287
test eax, eax
je 0x643ceb
test cl, cl
je 0x643ceb
cmp byte [eax], 0x29
jne 0x643ceb
jmp 0x643b5e
mov eax, esi
sub eax, dword [esp + 0x1c]
cmp dword [esp + 0x1c], esi
lea edi, [esi + 3]
lea edx, [eax + 3]
je 0x64482f
mov ecx, dword [esp + 0x1c]
sub esi, 1
movzx eax, byte [esi]
cmp esi, ecx
mov byte [esi + 3], al
jne 0x644822
mov ecx, dword [esp + 0x1c]
mov byte [ecx + 1], dl
sar edx, 8
test ebp, ebp
mov byte [ecx], 0xf
mov byte [ecx + 2], dl
je 0x644857
mov eax, edi
sub eax, ebp
sub eax, 3
mov byte [ebp + 1], al
sar eax, 8
mov byte [ebp], 0xe
mov byte [ebp + 2], al
mov esi, dword [ebx]
mov ebp, edi
mov eax, dword [ebx + 4]
mov edx, edi
sub edx, esi
add edx, 3
cmp edx, eax
jbe 0x644b43
cmp eax, 0x10000
je 0x643520
add eax, eax
cmp eax, 0x10000
mov dword [ebx + 4], eax
jbe 0x644890
mov dword [ebx + 4], 0x10000
mov eax, 0x10000
mov dword [esp + 4], eax
mov dword [esp], esi
call sub.msvcrt.dll_realloc
test eax, eax
mov dword [ebx], eax
je 0x643530
cmp eax, esi
je 0x6448b7
mov edx, eax
sub edx, esi
add edi, edx
add edx, ebp
test ebp, ebp
cmovne ebp, edx
mov esi, eax
jmp 0x64485b
test eax, eax
je case.0x64324b.1
test cl, cl
je case.0x64324b.1
cmp byte [eax], 0x7c
nop
jne case.0x64324b.1
jmp 0x643b5e
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
call fcn.006a4590
mov eax, 8
jmp 0x643287
mov dword [esp + 0x2c], esi
mov ecx, edx
mov esi, edx
sub ecx, dword [esp + 0x2c]
cmp byte [esp + 0x20], 1
lea edi, [edx + 3]
sbb edx, edx
add edx, 0x10
cmp dword [esp + 0x2c], esi
je 0x64491f
sub esi, 1
movzx eax, byte [esi]
cmp esi, dword [esp + 0x2c]
mov byte [esi + 3], al
jne 0x644910
mov esi, dword [esp + 0x2c]
mov byte [esi + 1], cl
sar ecx, 8
cmp byte [esp + 0x4c], 0
mov byte [esi], dl
mov byte [esi + 2], cl
je 0x644bb5
mov eax, dword [esp + 0x11c]
mov esi, edi
mov dword [esp + 0x28], 0
jmp 0x643203
xor edx, edx
cmp cl, 0x3f
sete dl
xor eax, eax
cmp cl, 0x2b
sete al
or edx, eax
jne 0x6433f2
jmp 0x643c93
sub dword [esp + 0x44], 1
xor ebp, ebp
mov edx, dword [esp + 0x44]
mov edi, dword [esp + 0x3c]
mov ecx, dword [ebx]
lea eax, [edx + edx*4]
lea eax, [edi + eax*4]
mov edx, dword [eax]
mov edi, dword [eax + 4]
add edx, ecx
mov dword [esp + 0x1c], edx
test edi, edi
lea edx, [ecx + edi - 1]
mov edi, dword [eax + 0xc]
cmovne ebp, edx
mov edx, dword [eax + 0x10]
add edi, ecx
cmp edx, 0xff
mov dword [esp + 0x2c], edi
ja 0x644a5f
mov byte [esp + 0x20], dl
mov eax, dword [eax + 8]
movzx edx, byte [esp + 0x48]
sub dl, byte [esp + 0x20]
mov byte [ecx + eax], dl
mov edi, dword [ebx]
mov byte [esp + 0x28], dl
mov edx, esi
mov esi, ebx
mov ebx, dword [esp + 0x2c]
mov eax, dword [esi + 4]
mov ecx, edx
sub ecx, edi
add ecx, 3
cmp ecx, eax
jbe 0x644a41
cmp eax, 0x10000
je 0x643520
add eax, eax
cmp eax, 0x10000
mov dword [esi + 4], eax
jbe 0x644a01
mov dword [esi + 4], 0x10000
mov eax, 0x10000
mov dword [esp + 0x14], edx
mov dword [esp + 4], eax
mov dword [esp], edi
call sub.msvcrt.dll_realloc
mov edx, dword [esp + 0x14]
test eax, eax
mov dword [esi], eax
je 0x643530
cmp edi, eax
je 0x644a3d
mov ecx, eax
sub ecx, edi
add edx, ecx
add dword [esp + 0x1c], ecx
test ebp, ebp
lea edi, [ebp + ecx]
cmovne ebp, edi
add ecx, ebx
test ebx, ebx
cmovne ebx, ecx
mov edi, eax
jmp 0x6449d0
movzx ecx, byte [esp + 0x20]
mov byte [edx], 7
mov dword [esp + 0x2c], ebx
mov ebx, esi
mov esi, edx
mov byte [edx + 1], cl
movzx edx, byte [esp + 0x28]
mov byte [esi + 2], dl
add esi, 3
mov eax, dword [esp + 0x11c]
mov dword [esp + 0x28], 0
jmp 0x643203
test dl, dl
jne 0x64395b
test dword [esp + 0x30], 0x2000
jne 0x64395b
jmp case.0x64324b.1
mov edi, edx
mov edx, eax
mov eax, edi
mov ecx, ebp
mov ebp, dword [esp + 0x4c]
cmp al, 0x2c
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x20]
mov byte [esp + 0x4c], al
mov dword [esp + 0x20], 0xffffffff
jne 0x644cb0
mov eax, dword [esp + 0x20]
mov dword [esp + 0x54], ecx
cmp edx, dword [esp + 0x40]
je 0x644b1d
mov edi, dword [esp + 0x38]
movzx ecx, byte [edx]
add edx, 1
mov dword [esp + 0x11c], edx
test edi, edi
mov byte [esp + 0x4c], cl
je 0x644aec
movzx edi, cl
mov ecx, dword [esp + 0x38]
movzx ecx, byte [ecx + edi]
mov byte [esp + 0x4c], cl
movzx ecx, byte [esp + 0x4c]
lea edi, [ecx - 0x30]
mov ecx, edi
cmp cl, 9
ja 0x644b1d
cmp eax, 0x7fff
jg 0x644abe
xor edi, edi
cmp eax, 0xffffffff
je 0x644b0e
lea edi, [eax + eax*4]
add edi, edi
movzx eax, byte [esp + 0x4c]
cmp edx, dword [esp + 0x40]
lea eax, [edi + eax - 0x30]
jne 0x644ac4
cmp eax, 0xffffffff
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x20], eax
je 0x644fea
mov edx, dword [esp + 0x24]
cmp dword [esp + 0x20], edx
movzx edi, byte [esp + 0x4c]
setl al
jmp 0x6438ce
lea esi, [edi + 3]
mov eax, dword [esp + 0x11c]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0
jmp 0x643203
mov edi, dword [esp + 0x44]
lea eax, [edi + edi*4]
shl eax, 3
mov dword [esp + 4], eax
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
call sub.msvcrt.dll_realloc
test eax, eax
mov dword [esp + 0x3c], eax
je 0x643530
add edi, edi
mov dword [esp + 0x50], edi
jmp 0x643705
mov byte [esi], 1
add esi, 1
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
call fcn.006a4590
xor eax, eax
sub esi, dword [ebx]
mov dword [ebx + 8], esi
jmp 0x643287
mov edx, ebp
mov esi, dword [ebx]
mov ebp, dword [esp + 0x2c]
mov eax, dword [ebx + 4]
mov ecx, edi
sub ecx, esi
add ecx, 3
cmp ecx, eax
jbe 0x644c2d
cmp eax, 0x10000
je 0x643520
add eax, eax
cmp eax, 0x10000
mov dword [ebx + 4], eax
jbe 0x644bee
mov dword [ebx + 4], 0x10000
mov eax, 0x10000
mov dword [esp + 0x14], edx
mov dword [esp + 4], eax
mov dword [esp], esi
call sub.msvcrt.dll_realloc
mov edx, dword [esp + 0x14]
test eax, eax
mov dword [ebx], eax
je 0x643530
cmp eax, esi
je 0x644c29
mov ecx, eax
sub ecx, esi
add edi, ecx
add dword [esp + 0x1c], ecx
test edx, edx
lea esi, [edx + ecx]
cmovne edx, esi
add ecx, ebp
test ebp, ebp
cmovne ebp, ecx
mov esi, eax
jmp 0x644bbd
mov dword [esp + 0x2c], ebp
lea esi, [edi + 3]
mov ebp, edx
cmp dword [esp + 0x2c], edi
je 0x644c4b
sub edi, 1
movzx eax, byte [edi]
cmp edi, dword [esp + 0x2c]
mov byte [edi + 3], al
jne 0x644c3c
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x28], 0
mov byte [edi], 0x13
mov byte [edi + 1], 3
mov byte [edi + 2], 0
mov eax, dword [esp + 0x11c]
jmp 0x643203
movzx eax, byte [eax + 1]
cmp al, 0x3f
je 0x643cb8
cmp al, 0x2b
jne 0x643c93
mov esi, edi
jmp 0x6433f2
cmp cl, 0x5c
lea esi, [esi]
jne 0x64348e
mov ecx, dword [esp + 0x20]
cmp byte [ecx + 1], 0x7b
jne 0x64348e
jmp 0x643cb8
mov edx, dword [esp + 0x24]
xor eax, eax
mov dword [esp + 0x20], edx
jmp 0x6438ce
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0x20]
mov edx, 0x20
mov dword [esp + 0x28], edi
mov byte [esi], 0x20
add esi, 1
mov dword [esp + 0x4c], esi
mov eax, esi
and esi, 1
jne 0x6454f5
test al, 2
jne 0x6454e5
mov esi, edx
xor ecx, ecx
and esi, 0xfffffffc
mov dword [eax + ecx], 0
add ecx, 4
cmp ecx, esi
jb 0x644cf4
add eax, ecx
test dl, 2
je 0x644d11
mov word [eax], 0
add eax, 2
and edx, 1
je 0x644d19
mov byte [eax], 0
mov eax, dword [esp + 0x20]
cmp byte [eax - 1], 5
je 0x645538
mov dword [esp + 0x88], ebp
mov edx, dword [esp + 0x11c]
xor esi, esi
mov dword [esp + 0x8c], ebx
mov ebp, dword [esp + 0x4c]
mov ebx, dword [esp + 0x40]
mov dword [esp + 0x24], 0xffffffff
cmp ebx, edx
je 0x644e17
mov eax, dword [esp + 0x38]
lea edi, [edx + 1]
movzx ecx, byte [edx]
mov dword [esp + 0x5c], edi
mov dword [esp + 0x11c], edi
test eax, eax
je 0x644d7a
mov eax, dword [esp + 0x38]
movzx ecx, cl
movzx ecx, byte [eax + ecx]
cmp cl, 0x5c
je 0x645320
cmp cl, 0x5d
je 0x6453e9
cmp cl, 0x2d
jne 0x645384
mov eax, esi
test al, al
jne 0x645460
movzx edi, byte [edx + 1]
lea eax, [edx - 1]
cmp dword [esp + 0x34], eax
ja 0x644db6
cmp byte [edx - 1], 0x5b
je 0x645388
lea eax, [edx - 2]
cmp dword [esp + 0x34], eax
ja 0x644dc9
cmp byte [edx - 2], 0x5b
je 0x6454d3
mov eax, edi
cmp al, 0x5d
je 0x645392
mov ecx, dword [esp + 0x30]
lea edx, [esp + 0x11c]
mov edi, dword [esp + 0x38]
mov eax, dword [esp + 0x24]
mov dword [esp + 8], ebp
mov dword [esp + 4], ecx
mov ecx, ebx
mov dword [esp], edi
call fcn.006a51b4
test eax, eax
jne 0x645509
mov edx, dword [esp + 0x11c]
mov dword [esp + 0x24], 0xffffffff
cmp ebx, edx
jne 0x644d56
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
call fcn.006a4590
mov eax, 7
jmp 0x643287
mov eax, dword [esp + 0x11c]
cmp eax, dword [esp + 0x40]
je 0x6438f7
movzx edi, byte [eax]
add eax, 1
mov dword [esp + 0x11c], eax
mov eax, dword [esp + 0x38]
test eax, eax
je 0x644e61
mov eax, dword [esp + 0x38]
and edi, 0xff
movzx edi, byte [eax + edi]
mov eax, edi
cmp al, 0x7d
jne 0x6438f7
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x644f3c
cmp dword [esp + 0x20], 0x7fff
jg 0x644f26
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x645053
mov edi, dword [ebx]
mov edx, esi
mov esi, ebx
mov ebx, dword [esp + 0x2c]
mov eax, dword [esi + 4]
mov ecx, edx
sub ecx, edi
add ecx, 3
cmp ecx, eax
jbe 0x645007
cmp eax, 0x10000
je 0x643520
add eax, eax
cmp eax, 0x10000
mov dword [esi + 4], eax
jbe 0x644ed0
mov dword [esi + 4], 0x10000
mov eax, 0x10000
mov dword [esp + 0x14], edx
mov dword [esp + 4], eax
mov dword [esp], edi
call sub.msvcrt.dll_realloc
mov edx, dword [esp + 0x14]
test eax, eax
mov dword [esi], eax
je 0x643530
cmp edi, eax
je 0x644f0c
mov ecx, eax
sub ecx, edi
add edx, ecx
add dword [esp + 0x1c], ecx
test ebp, ebp
lea edi, [ebp + ecx]
cmovne ebp, edi
add ecx, ebx
test ebx, ebx
cmovne ebx, ecx
mov edi, eax
jmp 0x644e9b
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
call fcn.006a4590
mov eax, 0xd
jmp 0x643287
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
call fcn.006a4590
mov eax, 0xa
jmp 0x643287
mov eax, dword [esp + 0x30]
and eax, 0x200020
cmp eax, 0x20
je 0x644f10
test byte [esp + 0x30], 0x10
je 0x64390f
mov dword [esp + 0x2c], esi
jmp 0x644e77
mov dword [esp + 0x2c], ebx
mov ebx, esi
mov esi, edx
mov byte [edx], 0x1b
add esi, 1
mov eax, dword [esp + 0x11c]
jmp 0x643203
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
call fcn.006a4590
mov edx, dword [esp + 0x40]
xor eax, eax
cmp dword [esp + 0x11c], edx
setne al
add eax, 9
jmp 0x643287
test byte [esp + 0x30], 0x40
jne 0x64447e
mov eax, dword [esp + 0x2c]
mov byte [esi], 0xd
mov byte [esp + 0x20], 1
sub eax, esi
sub eax, 3
mov byte [esi + 1], al
sar eax, 8
mov byte [esi + 2], al
jmp 0x644498
movsx edx, byte [ecx]
mov eax, 0xa
jmp 0x644476
mov ecx, esi
mov ebp, dword [esp + 0x58]
mov byte [esp + 0x4c], cl
mov esi, dword [esp + 0x24]
mov ebx, dword [esp + 0x54]
jmp 0x64363f
cmp dword [esp + 0x24], 0x7fff
movzx edi, byte [esp + 0x4c]
mov dword [esp + 0x20], 0x7fff
setg al
jmp 0x6438ce
mov dword [esp + 0x2c], ebx
mov ebx, esi
mov esi, edx
mov eax, esi
sub eax, dword [esp + 0x2c]
cmp dword [esp + 0x2c], esi
lea edx, [edx + 3]
je 0x64502d
sub esi, 1
movzx ecx, byte [esi]
cmp esi, dword [esp + 0x2c]
mov byte [esi + 3], cl
jne 0x64501e
mov ecx, dword [esp + 0x2c]
mov esi, edx
mov dword [esp + 0x28], 0
mov byte [ecx + 1], al
sar eax, 8
mov byte [ecx], 0xd
mov byte [ecx + 2], al
mov eax, dword [esp + 0x11c]
jmp 0x643203
cmp dword [esp + 0x20], 2
mov ecx, 0x14
mov edi, dword [ebx]
mov eax, 0xa
cmovl ecx, eax
mov eax, dword [ebx + 4]
mov edx, esi
sub edx, edi
add edx, ecx
cmp edx, eax
jbe 0x6450e3
cmp eax, 0x10000
je 0x643520
add eax, eax
cmp eax, 0x10000
mov dword [ebx + 4], eax
jbe 0x645097
mov dword [ebx + 4], 0x10000
mov eax, 0x10000
mov dword [esp + 0x18], ecx
mov dword [esp + 4], eax
mov dword [esp], edi
call sub.msvcrt.dll_realloc
mov ecx, dword [esp + 0x18]
test eax, eax
mov dword [ebx], eax
je 0x643530
cmp eax, edi
je 0x6450df
mov edx, eax
sub edx, edi
lea edi, [ebp + edx]
add esi, edx
add dword [esp + 0x1c], edx
test ebp, ebp
cmovne ebp, edi
mov edi, dword [esp + 0x2c]
add edx, dword [esp + 0x2c]
test edi, edi
cmove edx, dword [esp + 0x2c]
mov dword [esp + 0x2c], edx
mov edi, eax
jmp 0x645067
xor eax, eax
mov edx, esi
cmp dword [esp + 0x20], 2
mov ecx, esi
setge al
sub edx, dword [esp + 0x2c]
cmp dword [esp + 0x2c], esi
lea eax, [eax + eax*4 + 5]
lea edx, [edx + eax - 3]
lea eax, [esi + 5]
je 0x645119
mov edi, eax
sub esi, 1
movzx eax, byte [esi]
cmp esi, dword [esp + 0x2c]
mov byte [esi + 5], al
jne 0x645108
mov eax, edi
mov esi, dword [esp + 0x2c]
movzx edi, byte [esp + 0x24]
mov byte [esi + 1], dl
sar edx, 8
mov byte [esi + 2], dl
mov edx, edi
mov byte [esi + 3], dl
mov edx, dword [esp + 0x24]
mov byte [esi], 0x15
sar edx, 8
cmp eax, dword [esp + 0x2c]
mov byte [esi + 4], dl
lea esi, [ecx + 0xa]
mov byte [esp + 0x28], dl
je 0x645165
mov edx, esi
mov dword [esp + 0x24], ecx
sub eax, 1
sub edx, 1
movzx ecx, byte [eax]
cmp eax, dword [esp + 0x2c]
mov byte [edx], cl
jne 0x645150
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x2c]
mov edx, edi
cmp dword [esp + 0x20], 1
mov byte [eax + 3], dl
movzx edx, byte [esp + 0x28]
mov byte [eax], 0x17
mov byte [eax + 1], 5
mov byte [eax + 2], 0
mov byte [eax + 4], dl
jle 0x644a5f
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x20]
mov byte [ecx + 0xa], 0x16
sub eax, esi
add eax, 2
sub edx, 1
mov byte [ecx + 0xb], al
sar eax, 8
mov byte [ecx + 0xc], al
lea eax, [ecx + 0xf]
mov byte [esp + 0x20], dl
mov edi, eax
mov byte [ecx + 0xd], dl
sar edx, 8
sub edi, dword [esp + 0x2c]
cmp eax, dword [esp + 0x2c]
mov byte [esp + 0x28], dl
lea esi, [ecx + 0x14]
mov byte [ecx + 0xe], dl
je 0x64526c
mov ecx, edx
mov edx, esi
sub edx, 1
sub eax, 1
cmp eax, dword [esp + 0x2c]
mov byte [edx], cl
je 0x64526c
movzx ecx, byte [eax - 1]
jmp 0x6451d4
mov dword [esp + 0x2c], ebx
mov ebx, esi
mov esi, edx
mov byte [edx], 0x19
add esi, 1
mov eax, dword [esp + 0x11c]
jmp 0x643203
mov dword [esp + 0x2c], ebx
mov ebx, esi
mov esi, edx
mov byte [edx], 0xb
add esi, 1
mov eax, dword [esp + 0x11c]
jmp 0x643203
mov dword [esp + 0x2c], ebx
mov ebx, esi
mov esi, edx
mov byte [edx], 0x1c
add esi, 1
mov eax, dword [esp + 0x11c]
jmp 0x643203
mov dword [esp + 0x2c], ebx
mov ebx, esi
mov esi, edx
mov byte [edx], 0x1d
add esi, 1
mov eax, dword [esp + 0x11c]
jmp 0x643203
mov dword [esp + 0x2c], esi
mov esi, edx
mov byte [edx], 0x18
add esi, 1
mov eax, dword [esp + 0x11c]
jmp 0x643203
mov ecx, dword [esp + 0x2c]
mov eax, edi
movzx edx, byte [esp + 0x20]
mov byte [ecx + 1], al
mov eax, edi
sar eax, 8
mov byte [ecx + 2], al
movzx eax, byte [esp + 0x28]
mov byte [ecx], 0x17
mov byte [ecx + 3], dl
mov dword [esp + 0x28], 0
mov byte [ecx + 4], al
mov eax, dword [esp + 0x11c]
jmp 0x643203
mov dword [esp + 0x2c], ebx
mov ebx, esi
mov esi, edx
mov byte [edx], 0x1a
add esi, 1
mov eax, dword [esp + 0x11c]
jmp 0x643203
mov dword [esp + 0x2c], ebx
mov ebx, esi
mov esi, edx
mov byte [edx], 0xc
add esi, 1
mov eax, dword [esp + 0x11c]
jmp 0x643203
mov byte [edx], 8
mov dword [esp + 0x2c], ebx
mov ebx, esi
mov esi, edx
movzx edx, byte [esp + 0x20]
mov byte [esi + 1], dl
add esi, 2
mov eax, dword [esp + 0x11c]
jmp 0x643203
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
call fcn.006a4590
mov eax, 6
jmp 0x643287
movsx edx, byte [ecx - 2]
mov eax, 0x2e
jmp 0x64444a
cmp byte [esp + 0x85], 0
je 0x644d83
cmp ebx, dword [esp + 0x5c]
je 0x6447d8
mov edi, dword [esp + 0x38]
movzx eax, byte [edx + 1]
add edx, 2
mov dword [esp + 0x11c], edx
test edi, edi
je 0x645359
mov edx, dword [esp + 0x38]
movzx eax, al
movzx eax, byte [edx + eax]
mov edx, eax
shr dl, 3
movzx edi, dl
movzx edx, al
mov ecx, edx
mov eax, 1
and ecx, 7
shl eax, cl
or byte [ebp + edi], al
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x11c]
jmp 0x644d4e
movzx edi, byte [edx + 1]
mov eax, edi
cmp al, 0x2d
je 0x645474
cmp cl, 0x5b
jne 0x6453bc
test byte [esp + 0x30], 4
je 0x6453bc
mov eax, edi
cmp al, 0x3a
je 0x6457ac
mov eax, edi
cmp al, 0x3d
je 0x64566c
mov eax, edi
cmp al, 0x2e
je 0x64554f
movzx edx, cl
mov eax, ecx
shr al, 3
mov ecx, edx
movzx esi, al
and ecx, 7
mov eax, 1
shl eax, cl
or byte [ebp + esi], al
xor esi, esi
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x11c]
jmp 0x644d4e
mov edi, dword [esp + 0x58]
add edi, 1
cmp dword [esp + 0x5c], edi
je 0x644d8c
mov ecx, dword [esp + 0x20]
xor esi, esi
mov ebp, dword [esp + 0x88]
mov eax, dword [esp + 0x5c]
mov ebx, dword [esp + 0x8c]
movzx edx, byte [ecx]
test dl, dl
je 0x645c5b
mov edi, dword [esp + 0x4c]
movzx esi, dl
cmp byte [edi + esi - 1], 0
jne 0x645c5b
mov esi, dword [esp + 0x20]
sub edx, 1
test dl, dl
mov byte [esi], dl
je 0x645c52
mov edi, dword [esp + 0x4c]
movzx esi, dl
cmp byte [edi + esi - 1], 0
je 0x64542f
mov eax, dword [esp + 0x11c]
jmp 0x645c5b
cmp byte [edx + 1], 0x5d
jne 0x645522
mov edi, 0x5d
jmp 0x644da3
cmp byte [edx + 2], 0x5d
je 0x645392
cmp ebx, dword [esp + 0x5c]
je 0x645c64
movzx eax, cl
mov ecx, dword [esp + 0x30]
add edx, 2
mov edi, dword [esp + 0x38]
mov dword [esp + 0x11c], edx
lea edx, [esp + 0x11c]
mov dword [esp + 8], ebp
mov dword [esp + 4], ecx
mov ecx, ebx
mov dword [esp], edi
call fcn.006a51b4
test eax, eax
mov edi, eax
je 0x644e00
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
call fcn.006a4590
mov eax, edi
jmp 0x643287
cmp byte [edx - 1], 0x5e
jne 0x644dc9
lea esi, [esi]
jmp 0x645388
mov word [eax], 0
sub edx, 2
add eax, 2
jmp 0x644ced
mov edi, dword [esp + 0x20]
mov dl, 0x1f
mov eax, edi
mov byte [edi + 1], 0
add eax, 2
jmp 0x644ce5
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x18], eax
mov dword [esp], edx
call fcn.006a4590
mov eax, dword [esp + 0x18]
jmp 0x643287
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
call fcn.006a4590
mov eax, 0xb
jmp 0x643287
test dword [esp + 0x30], 0x100
je 0x644d27
or byte [eax + 2], 4
jmp 0x644d27
cmp ebx, dword [esp + 0x5c]
je 0x645c64
add edx, 2
cmp ebx, edx
mov dword [esp + 0x24], edx
mov dword [esp + 0x11c], edx
je 0x644e17
mov edi, dword [esp + 0x38]
xor eax, eax
mov esi, dword [esp + 0x24]
mov ecx, eax
lea edx, [esi + 1]
test edi, edi
movzx eax, byte [esi]
mov dword [esp + 0x11c], edx
je 0x645593
movzx eax, al
movzx eax, byte [edi + eax]
cmp al, 0x2e
je 0x6455bc
cmp ebx, edx
je 0x6455f9
test cl, cl
js 0x6455b0
movzx esi, cl
add ecx, 1
mov byte [esp + esi + 0x9c], al
mov esi, edx
jmp 0x64557b
mov byte [esp + 0x9c], 0
mov esi, edx
jmp 0x64557b
cmp byte [edx], 0x5d
jne 0x645597
mov eax, ecx
movzx ecx, cl
mov byte [esp + ecx + 0x9c], 0
mov esi, edx
movzx ecx, byte [esp + 0x9c]
mov edi, edx
test cl, cl
je 0x645617
cmp al, 1
jne 0x645656
cmp ebx, esi
je 0x645c64
add esi, 1
mov dword [esp + 0x11c], esi
jmp 0x6453bc
mov edi, esi
mov esi, eax
mov dword [esp + 0x24], edi
mov eax, ecx
movzx edi, cl
mov ecx, esi
cmp cl, 0x2e
mov byte [esp + edi + 0x9c], 0
mov edi, ebx
je 0x645645
cmp al, 0xff
je 0x64562a
movzx eax, al
not eax
lea edx, [edi + eax]
mov dword [esp + 0x11c], edx
mov ecx, dword [esp + 0x20]
xor esi, esi
mov dword [esp + 0x24], 0x2e
or byte [ecx + 0xc], 8
or byte [ecx + 6], 0x40
jmp 0x644d4e
mov esi, dword [esp + 0x24]
cmp byte [esi + 1], 0x5d
jne 0x645617
mov esi, ebx
jmp 0x6455d0
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
call fcn.006a4590
mov eax, 3
jmp 0x643287
cmp ebx, dword [esp + 0x5c]
je 0x645c64
add edx, 2
cmp ebx, edx
mov dword [esp + 0x54], edx
mov dword [esp + 0x11c], edx
je 0x644e17
mov edi, dword [esp + 0x38]
xor eax, eax
mov esi, dword [esp + 0x54]
mov ecx, eax
lea edx, [esi + 1]
test edi, edi
movzx eax, byte [esi]
mov dword [esp + 0x11c], edx
je 0x6456b0
movzx eax, al
movzx eax, byte [edi + eax]
cmp al, 0x3d
je 0x6456de
cmp ebx, edx
je 0x64574d
cmp cl, 4
ja 0x6456d2
movzx esi, cl
add ecx, 1
mov byte [esp + esi + 0x9c], al
mov esi, edx
jmp 0x645698
mov byte [esp + 0x9c], 0
mov esi, edx
jmp 0x645698
cmp byte [edx], 0x5d
jne 0x6456b4
mov eax, ecx
movzx ecx, cl
mov byte [esp + ecx + 0x9c], 0
mov dword [esp + 0x54], edx
movzx esi, byte [esp + 0x9c]
mov edi, edx
mov ecx, esi
test cl, cl
je 0x64576b
cmp al, 1
jne 0x645656
cmp ebx, dword [esp + 0x54]
je 0x645c64
mov ecx, dword [esp + 0x54]
mov eax, esi
mov edx, 1
shr al, 3
movzx eax, al
add ecx, 1
mov dword [esp + 0x11c], ecx
mov ecx, esi
and ecx, 7
shl edx, cl
or byte [ebp + eax], dl
mov edx, dword [esp + 0x11c]
mov esi, 1
jmp 0x644d4e
mov edi, esi
mov esi, eax
mov dword [esp + 0x54], edi
mov eax, ecx
movzx edi, cl
mov ecx, esi
cmp cl, 0x3d
mov byte [esp + edi + 0x9c], 0
mov edi, ebx
je 0x645799
cmp al, 0xff
je 0x64577e
movzx eax, al
not eax
lea edx, [edi + eax]
mov dword [esp + 0x11c], edx
mov ecx, dword [esp + 0x20]
xor esi, esi
mov dword [esp + 0x24], 0x3d
or byte [ecx + 0xc], 8
or byte [ecx + 8], 0x20
jmp 0x644d4e
mov esi, dword [esp + 0x54]
cmp byte [esi + 1], 0x5d
jne 0x64576b
mov dword [esp + 0x54], ebx
jmp 0x6456f4
cmp ebx, dword [esp + 0x5c]
je 0x645c64
add edx, 2
cmp ebx, edx
mov dword [esp + 0x54], edx
mov dword [esp + 0x11c], edx
je 0x644e17
mov edi, dword [esp + 0x38]
xor eax, eax
mov esi, dword [esp + 0x54]
mov ecx, eax
lea edx, [esi + 1]
test edi, edi
movzx eax, byte [esi]
mov dword [esp + 0x11c], edx
je 0x6457f0
movzx eax, al
movzx eax, byte [edi + eax]
cmp al, 0x3a
je 0x64581e
cmp ebx, edx
je 0x645be3
cmp cl, 5
ja 0x645812
movzx esi, cl
add ecx, 1
mov byte [esp + esi + 0x9c], al
mov esi, edx
jmp 0x6457d8
mov byte [esp + 0x9c], 0
mov esi, edx
jmp 0x6457d8
cmp byte [edx], 0x5d
jne 0x6457f4
movzx eax, cl
mov byte [esp + eax + 0x9c], 0
lea esi, [esp + 0x9c]
mov edi, 0x76d438
mov dword [esp + 0x10], esi
mov ecx, 6
repe cmpsb byte [esi], byte es:[edi]
mov esi, dword [esp + 0x10]
mov edi, 0x76d43e
setb cl
seta al
sub al, cl
mov ecx, 6
movsx eax, al
mov dword [esp + 0x54], eax
repe cmpsb byte [esi], byte es:[edi]
mov esi, dword [esp + 0x10]
mov edi, str.blank
setb al
seta cl
sub cl, al
movsx ecx, cl
mov dword [esp + 0x5c], ecx
mov ecx, 6
repe cmpsb byte [esi], byte es:[edi]
mov esi, dword [esp + 0x10]
mov edi, 0x76d44a
setb al
seta cl
sub cl, al
movsx ecx, cl
mov dword [esp + 0x60], ecx
mov ecx, 6
repe cmpsb byte [esi], byte es:[edi]
mov esi, dword [esp + 0x10]
mov edi, 0x76d450
setb al
seta cl
sub cl, al
movsx ecx, cl
mov dword [esp + 0x64], ecx
mov ecx, 6
repe cmpsb byte [esi], byte es:[edi]
mov esi, dword [esp + 0x10]
mov edi, 0x76d456
setb al
seta cl
sub cl, al
movsx ecx, cl
mov dword [esp + 0x68], ecx
mov ecx, 6
repe cmpsb byte [esi], byte es:[edi]
mov esi, dword [esp + 0x10]
mov edi, 0x76d45c
setb al
seta cl
sub cl, al
movsx ecx, cl
mov dword [esp + 0x6c], ecx
mov ecx, 6
repe cmpsb byte [esi], byte es:[edi]
mov esi, dword [esp + 0x10]
mov edi, 0x76d462
setb al
seta cl
sub cl, al
movsx eax, cl
mov ecx, 6
test eax, eax
mov dword [esp + 0x70], eax
sete byte [esp + 0x86]
repe cmpsb byte [esi], byte es:[edi]
mov esi, dword [esp + 0x10]
mov edi, 0x76d468
setb al
seta cl
sub cl, al
movsx ecx, cl
mov dword [esp + 0x74], ecx
mov ecx, 6
repe cmpsb byte [esi], byte es:[edi]
mov edi, 0x76d46e
setb al
seta cl
sub cl, al
movsx ecx, cl
mov dword [esp + 0x78], ecx
mov esi, dword [esp + 0x10]
mov ecx, 6
repe cmpsb byte [esi], byte es:[edi]
mov esi, dword [esp + 0x10]
mov edi, 0x76d474
setb al
seta cl
sub cl, al
movsx ecx, cl
mov dword [esp + 0x7c], ecx
mov ecx, 6
repe cmpsb byte [esi], byte es:[edi]
mov esi, dword [esp + 0x10]
mov edi, 0x76d47a
setb al
seta cl
sub cl, al
movsx eax, cl
mov ecx, 7
test eax, eax
mov dword [esp + 0x80], eax
sete byte [esp + 0x87]
repe cmpsb byte [esi], byte es:[edi]
setb cl
seta al
sub al, cl
mov ecx, dword [esp + 0x5c]
movsx esi, al
test ecx, ecx
je 0x645a1f
mov eax, dword [esp + 0x80]
test eax, eax
je 0x645a1f
mov eax, dword [esp + 0x70]
test eax, eax
je 0x645a1f
mov eax, dword [esp + 0x68]
test eax, eax
je 0x645a1f
mov eax, dword [esp + 0x54]
test eax, eax
je 0x645a1f
test esi, esi
je 0x645a1f
mov eax, dword [esp + 0x7c]
test eax, eax
je 0x645a1f
mov eax, dword [esp + 0x74]
test eax, eax
je 0x645a1f
mov edi, dword [esp + 0x78]
test edi, edi
je 0x645a1f
mov ecx, dword [esp + 0x6c]
test ecx, ecx
je 0x645a1f
mov eax, dword [esp + 0x64]
test eax, eax
je 0x645a1f
mov eax, dword [esp + 0x60]
test eax, eax
jne 0x645c3c
cmp ebx, edx
je 0x645c64
add edx, 1
cmp ebx, edx
mov dword [esp + 0x11c], edx
je 0x644e17
xor edi, edi
mov eax, dword [esp + 0x54]
test eax, eax
jne 0x645a50
mov dword [esp], edi
call dword [sym.imp.msvcrt.dll_isalnum]
test eax, eax
jne 0x645a8c
mov eax, dword [esp + 0x5c]
test eax, eax
jne 0x645a65
mov dword [esp], edi
call dword [sym.imp.msvcrt.dll_isalpha]
test eax, eax
jne 0x645a8c
mov eax, dword [esp + 0x60]
test eax, eax
jne 0x645a77
cmp edi, 9
je 0x645a8c
cmp edi, 0x20
je 0x645a8c
mov eax, dword [esp + 0x64]
test eax, eax
jne 0x645aa4
mov dword [esp], edi
call dword [sym.imp.msvcrt.dll_iscntrl]
test eax, eax
je 0x645aa4
mov edx, edi
mov ecx, edi
shr dl, 3
and ecx, 7
movzx edx, dl
mov eax, 1
shl eax, cl
or byte [ebp + edx], al
mov ecx, dword [esp + 0x68]
test ecx, ecx
jne 0x645ab4
lea eax, [edi - 0x30]
cmp eax, 9
jbe 0x645b02
mov edx, dword [esp + 0x6c]
test edx, edx
jne 0x645ad6
mov dword [esp], edi
call dword [sym.imp.msvcrt.dll_isprint]
test eax, eax
je 0x645ad6
mov dword [esp], edi
call dword [sym.imp.msvcrt.dll_isspace]
test eax, eax
je 0x645b02
cmp byte [esp + 0x86], 0
je 0x645aed
mov dword [esp], edi
call dword [sym.imp.msvcrt.dll_islower]
test eax, eax
jne 0x645b02
mov eax, dword [esp + 0x74]
test eax, eax
jne 0x645b1a
mov dword [esp], edi
call dword [sym.imp.msvcrt.dll_isprint]
test eax, eax
je 0x645b1a
mov edx, edi
mov ecx, edi
shr dl, 3
and ecx, 7
movzx edx, dl
mov eax, 1
shl eax, cl
or byte [ebp + edx], al
mov eax, dword [esp + 0x78]
test eax, eax
jne 0x645b2f
mov dword [esp], edi
call dword [sym.imp.msvcrt.dll_ispunct]
test eax, eax
jne 0x645b6c
mov eax, dword [esp + 0x7c]
test eax, eax
jne 0x645b44
mov dword [esp], edi
call dword [sym.imp.msvcrt.dll_isspace]
test eax, eax
jne 0x645b6c
cmp byte [esp + 0x87], 0
je 0x645b5b
mov dword [esp], edi
call dword [sym.imp.msvcrt.dll_isupper]
test eax, eax
jne 0x645b6c
test esi, esi
jne 0x645b84
mov dword [esp], edi
call dword [sym.imp.msvcrt.dll_isxdigit]
test eax, eax
je 0x645b84
mov edx, edi
mov ecx, edi
shr dl, 3
and ecx, 7
movzx edx, dl
mov eax, 1
shl eax, cl
or byte [ebp + edx], al
mov eax, dword [esp + 0x38]
test eax, eax
je 0x645bcf
movzx edx, byte [esp + 0x87]
or dl, byte [esp + 0x86]
je 0x645bcf
mov dword [esp], edi
call dword [sym.imp.msvcrt.dll_isupper]
test eax, eax
jne 0x645bb7
mov dword [esp], edi
call dword [sym.imp.msvcrt.dll_islower]
test eax, eax
je 0x645bcf
mov edx, edi
mov ecx, edi
shr dl, 3
and ecx, 7
movzx edx, dl
mov eax, 1
shl eax, cl
or byte [ebp + edx], al
add edi, 1
cmp edi, 0x100
jne 0x645a3b
jmp 0x64573c
mov edi, esi
mov esi, eax
mov dword [esp + 0x54], edi
mov eax, ecx
movzx edi, cl
mov ecx, esi
cmp cl, 0x3a
mov byte [esp + edi + 0x9c], 0
je 0x645c2d
cmp al, 0xff
je 0x645c12
movzx eax, al
not eax
lea edx, [ebx + eax]
mov dword [esp + 0x11c], edx
mov ecx, dword [esp + 0x20]
xor esi, esi
mov dword [esp + 0x24], 0x3a
or byte [ecx + 0xc], 8
or byte [ecx + 8], 4
jmp 0x644d4e
mov esi, dword [esp + 0x54]
cmp byte [esi + 1], 0x5d
jne 0x645bff
jmp 0x64582e
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
call fcn.006a4590
mov eax, 4
jmp 0x643287
mov eax, dword [esp + 0x11c]
xor esi, esi
add esi, dword [esp + 0x4c]
jmp 0x643203
mov eax, 0xe
jmp 0x643287