Function at 0x4654d1
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x50
push ebx
push esi
push edi
xor edi, edi
or ecx, 0xffffffff
mov dword [ebp - 4], edi
mov dword [ebp - 0x14], edi
mov dword [ebp - 0xc], edi
mov dword [ebp - 0x10], edi
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x30], ecx
mov eax, 0x653ac4
mov dword [eax - 4], edi
mov dword [eax], ecx
mov dword [eax + 4], edi
mov dword [eax + 8], ecx
mov word [eax + 0xe], di
add eax, 0x20
cmp eax, 0x6634c4
jl 0x4654ff
push dword [ebp + 8]
xor ebx, ebx
cmp dword [ebp + 0x14], edi
mov dword [ebp - 8], ebx
je 0x46552c
call fcn.00524463
jmp 0x465531
call fcn.00525390
cmp dword [ebp + 0xc], edi
mov dword [ebp - 0x2c], eax
pop ecx
mov dword [ebp - 0x18], edi
sete al
dec eax
and al, 0xe0
add eax, 0x20
cmp dword [0x5c1d6c], edi
mov byte [ebp + 0xf], al
je 0x465dcf
cmp dword [ebp - 0x2c], edi
jle 0x465dc1
push 4
pop esi
jmp 0x465564
mov al, byte [ebp + 0xf]
cmp ebx, 0x7cf
jge 0x465daa
cmp dword [ebp + 0x14], edi
je 0x465581
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x18]
mov cx, word [ecx + edx*2]
jmp 0x46558c
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp + 8]
movzx cx, byte [ecx + edx]
cmp dword [ebp - 0x14], edi
jne 0x4655b1
cmp cx, 0x41
jb 0x46559d
cmp cx, 0x5a
jbe 0x4655ab
cmp cx, 0xc0
jb 0x4655b1
cmp cx, 0xdf
jae 0x4655b1
movsx ax, al
or ecx, eax
movzx eax, cx
cmp eax, 0x2e
jg 0x465665
je 0x465648
cmp eax, 0x24
je 0x46568c
cmp eax, 0x27
jle 0x465680
cmp eax, 0x29
jle 0x4655e8
cmp eax, 0x2b
jle 0x46568c
jmp 0x465680
cmp dword [ebp - 0x14], edi
jne 0x4658d7
cmp cx, 0x28
jne 0x46561f
mov ecx, ebx
push 1
shl ecx, 5
pop eax
mov dword [ebp - 0x40], ebx
mov dword [ecx + 0x653ac0], eax
mov dword [ebp - 0xc], eax
inc ebx
xor eax, eax
cmp dword [ebp - 4], edi
mov dword [ebp - 8], ebx
setne al
mov dword [ebp - 0x38], eax
jmp 0x465d9b
cmp dword [ebp - 0xc], edi
je 0x46563d
mov eax, ebx
shl eax, 5
cmp dword [eax + 0x653aa0], esi
jne 0x46563d
cmp dword [ebp - 4], edi
jne 0x46563d
mov word [eax + 0x653ab2], di
inc dword [ebp - 0x10]
mov dword [ebp - 0xc], edi
jmp 0x465d4c
cmp dword [ebp - 0x14], edi
jne 0x4659f3
mov eax, ebx
shl eax, 5
mov dword [eax + 0x653ac0], 3
jmp 0x465a2a
mov edx, eax
sub edx, 0x5b
je 0x465a4d
dec edx
je 0x4659ee
sub edx, 0x20
je 0x4658d2
xor edx, edx
cmp cx, 0x5e
jne 0x465772
cmp dword [ebp - 0x14], edi
jne 0x4659f3
cmp cx, 0x2a
jne 0x4656f6
cmp ebx, edi
je 0x4656e5
mov eax, ebx
shl eax, 5
cmp dword [eax + 0x653aa0], 3
jne 0x4656e5
push 1
dec ebx
cmp dword [ebp - 0xc], edi
pop ecx
mov dword [ebp - 4], ecx
je 0x4656ce
mov edx, dword [ebp - 0x10]
mov eax, ebx
shl eax, 5
mov dword [eax + 0x653ac4], edx
mov word [eax + 0x653ad2], cx
mov eax, ebx
shl eax, 5
mov dword [eax + 0x653ac0], esi
or byte [eax + 0x653ad2], 2
jmp 0x465a38
mov eax, ebx
shl eax, 5
mov dword [eax + 0x653ac0], 0xd
jmp 0x46575f
cmp cx, 0x2b
jne 0x46570d
mov eax, ebx
shl eax, 5
mov dword [eax + 0x653ac0], 6
jmp 0x46575f
cmp dword [ebp - 4], edi
je 0x465733
dec ebx
mov dword [ebp - 4], edi
mov eax, ebx
shl eax, 5
and word [eax + 0x653ad2], 1
mov dword [eax + 0x653ac0], esi
mov word [eax + 0x653ad0], 0xd
inc ebx
cmp cx, 0x5e
jne 0x46574a
mov eax, ebx
shl eax, 5
mov dword [eax + 0x653ac0], 7
jmp 0x46575f
cmp cx, 0x24
jne 0x46575f
mov eax, ebx
shl eax, 5
mov dword [eax + 0x653ac0], 8
cmp dword [ebp - 0xc], edi
je 0x465a38
mov eax, ebx
shl eax, 5
jmp 0x465a2f
cmp dword [ebp - 0x14], 0
je 0x46584e
and dword [ebp - 0x14], 0
cmp eax, 0x44
je 0x4657f3
cmp eax, 0x53
je 0x4657e2
cmp eax, 0x57
je 0x4657d1
cmp eax, 0x64
je 0x4657c0
cmp eax, 0x73
je 0x4657af
cmp eax, 0x77
jne 0x465809
mov eax, ebx
shl eax, 5
mov dword [eax + 0x653ac0], 0x1a
jmp 0x465802
mov eax, ebx
shl eax, 5
mov dword [eax + 0x653ac0], 0x16
jmp 0x465802
mov eax, ebx
shl eax, 5
mov dword [eax + 0x653ac0], 0x11
jmp 0x465802
mov eax, ebx
shl eax, 5
mov dword [eax + 0x653ac0], 0x1b
jmp 0x465802
mov eax, ebx
shl eax, 5
mov dword [eax + 0x653ac0], 0x17
jmp 0x465802
mov eax, ebx
shl eax, 5
mov dword [eax + 0x653ac0], 0x12
xor edi, edi
jmp 0x465a2a
cmp cx, 0x66
jne 0x465814
push 0xc
pop ecx
jmp 0x46584e
cmp cx, 0x6e
jne 0x46581e
push 0xa
jmp 0x465811
cmp cx, 0x72
jne 0x465828
push 0xd
jmp 0x465811
cmp cx, 0x74
jne 0x465832
push 9
jmp 0x465811
cmp cx, 0x76
jne 0x46583c
push 0xb
jmp 0x465811
cmp cx, 0x70
je 0x465848
cmp cx, 0x50
jne 0x46584e
push 0xd
pop ecx
push 1
pop edx
xor edi, edi
cmp dword [ebp - 4], edi
je 0x465885
dec ebx
mov dword [ebp - 4], edi
mov eax, ebx
shl eax, 5
and word [eax + 0x653ad2], 1
cmp dword [ebp - 0xc], edi
mov dword [eax + 0x653ac0], esi
mov word [eax + 0x653ad0], cx
je 0x4658a9
cmp dword [ebp - 0x38], edi
mov ecx, dword [ebp - 0x10]
je 0x4658a3
add ecx, 0x64
jmp 0x4658a3
mov eax, ebx
shl eax, 5
cmp dword [ebp - 0xc], edi
mov dword [eax + 0x653ac0], 2
mov word [eax + 0x653ad0], cx
je 0x4658a9
mov ecx, dword [ebp - 0x10]
mov dword [eax + 0x653ac4], ecx
inc ebx
cmp edx, edi
mov dword [ebp - 8], ebx
je 0x465d4c
mov eax, ebx
shl eax, 5
mov dword [eax + 0x653ac0], 2
mov word [eax + 0x653ad0], 0xa
jmp 0x465a2a
cmp dword [ebp - 0x14], edi
je 0x465925
cmp dword [ebp - 4], edi
je 0x4658f5
dec ebx
mov dword [ebp - 4], edi
mov eax, ebx
shl eax, 5
and word [eax + 0x653ad2], 1
mov dword [eax + 0x653ac0], esi
jmp 0x465904
mov eax, ebx
shl eax, 5
mov dword [eax + 0x653ac0], 2
cmp dword [ebp - 0xc], edi
mov word [eax + 0x653ad0], cx
je 0x465919
mov ecx, dword [ebp - 0x10]
mov dword [eax + 0x653ac4], ecx
inc ebx
mov dword [ebp - 0x14], edi
mov dword [ebp - 8], ebx
jmp 0x465d4c
cmp dword [ebp - 0xc], edi
je 0x465941
mov ecx, dword [ebp - 0x40]
cmp ecx, 0xffffffff
je 0x465941
shl ecx, 5
mov dword [ecx + 0x653ac0], 9
jmp 0x465973
cmp ebx, edi
jle 0x465962
mov eax, ebx
push 0xfa00
shl eax, 5
lea eax, [eax + 0x653ac0]
lea ecx, [eax - 0x20]
push ecx
push eax
call fcn.005244d0
add esp, 0xc
lea ecx, [ebx - 1]
shl ecx, 5
inc ebx
mov dword [ecx + 0x653ac0], 9
cmp dword [ebp - 0xc], edi
je 0x465991
mov eax, ebx
shl eax, 5
cmp dword [eax + 0x653aa0], esi
jne 0x465991
cmp dword [ebp - 4], edi
jne 0x465991
mov word [eax + 0x653ab2], di
mov eax, ebx
mov dword [ebp - 0x28], ebx
shl eax, 5
cmp dword [ebp - 0xc], edi
mov dword [eax + 0x653ac0], 0xa
je 0x4659b1
mov edx, dword [ebp - 0x10]
mov dword [eax + 0x653ac4], edx
inc ebx
mov dword [ebp - 0x30], ebx
lea eax, [ebx + 1]
mov word [ecx + 0x653ad0], ax
mov eax, ebx
shl eax, 5
inc ebx
cmp dword [ebp - 0xc], edi
mov dword [eax + 0x653ac0], 0xb
mov dword [ebp - 8], ebx
je 0x465d51
mov ecx, dword [ebp - 0x10]
mov eax, ebx
shl eax, 5
mov dword [eax + 0x653ac4], ecx
jmp 0x465d4c
cmp dword [ebp - 0x14], edi
je 0x465a41
cmp dword [ebp - 4], edi
mov dword [ebp - 0x14], edi
je 0x465a14
dec ebx
mov dword [ebp - 4], edi
mov eax, ebx
shl eax, 5
and word [eax + 0x653ad2], 1
mov dword [eax + 0x653ac0], esi
jmp 0x465a23
mov eax, ebx
shl eax, 5
mov dword [eax + 0x653ac0], 2
mov word [eax + 0x653ad0], cx
cmp dword [ebp - 0xc], edi
je 0x465a38
mov ecx, dword [ebp - 0x10]
mov dword [eax + 0x653ac4], ecx
inc ebx
mov dword [ebp - 8], ebx
jmp 0x465d4c
mov dword [ebp - 0x14], 1
jmp 0x465d4c
cmp dword [ebp - 0x14], edi
jne 0x4659f3
and dword [ebp - 4], 0
push 0x400
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov esi, ebx
mov edi, eax
shl esi, 5
push 0x400
push 0x40
mov dword [ebp - 0x50], edi
mov dword [esi + 0x653ad4], edi
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
test edi, edi
mov dword [ebp - 0x48], eax
mov dword [esi + 0x653ad8], eax
je 0x466492
xor ecx, ecx
cmp eax, ecx
je 0x466492
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x34], ecx
mov dword [esi + 0x653adc], ecx
mov ecx, dword [ebp + 8]
inc eax
mov dword [ebp - 0x18], eax
lea edx, [ecx + eax*2]
lea eax, [ecx + eax*2 + 2]
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x20], eax
mov edx, dword [ebp - 0x18]
push 1
cmp edx, dword [ebp - 0x2c]
pop eax
jge 0x465d12
cmp dword [ebp + 0x14], 0
je 0x465ae1
mov ecx, dword [ebp - 0x1c]
mov cx, word [ecx]
jmp 0x465ae9
mov ecx, dword [ebp + 8]
movzx cx, byte [edx + ecx]
cmp cx, 0x41
jb 0x465af5
cmp cx, 0x5a
jbe 0x465b03
cmp cx, 0xc0
jb 0x465b0a
cmp cx, 0xdf
jae 0x465b0a
movsx di, byte [ebp + 0xf]
or ecx, edi
cmp cx, 0x5d
je 0x465d12
cmp cx, 0x5e
jne 0x465b2e
add dword [ebp - 0x20], 2
inc edx
add dword [ebp - 0x1c], 2
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x18], edx
jmp 0x465d15
cmp dword [ebp - 0x24], 0
je 0x465b3f
mov eax, dword [ebp - 0x48]
lea edi, [ebp - 0x44]
mov dword [ebp - 0x3c], eax
jmp 0x465b48
mov eax, dword [ebp - 0x50]
lea edi, [ebp - 0x4c]
mov dword [ebp - 0x3c], eax
cmp cx, 0x5c
jne 0x465c66
xor edx, edx
cmp dword [ebp + 0x14], edx
je 0x465b6c
inc dword [ebp - 0x18]
add dword [ebp - 0x20], 2
add dword [ebp - 0x1c], 2
mov ecx, dword [ebp - 0x1c]
mov cx, word [ecx]
jmp 0x465b84
inc dword [ebp - 0x18]
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x18]
add dword [ebp - 0x20], 2
add dword [ebp - 0x1c], 2
movzx cx, byte [edx + ecx]
xor edx, edx
cmp cx, 0x66
jne 0x465b91
push 0xc
jmp 0x465c65
cmp cx, 0x6e
je 0x465c63
cmp cx, 0x72
jne 0x465ba8
push 0xd
jmp 0x465c65
cmp cx, 0x74
jne 0x465bb5
push 9
jmp 0x465c65
cmp cx, 0x76
jne 0x465bc2
push 0xb
jmp 0x465c65
cmp cx, 0x64
jne 0x465bd9
cmp dword [ebp - 0x24], edx
je 0x465be4
or dword [esi + 0x653adc], 2
jmp 0x465cf6
cmp cx, 0x44
jne 0x465bf0
cmp dword [ebp - 0x24], edx
je 0x465bcd
or dword [esi + 0x653adc], 1
jmp 0x465cf6
cmp cx, 0x73
jne 0x465c07
cmp dword [ebp - 0x24], edx
je 0x465c12
or dword [esi + 0x653adc], 4
jmp 0x465cf6
cmp cx, 0x53
jne 0x465c1e
cmp dword [ebp - 0x24], edx
je 0x465bfb
or dword [esi + 0x653adc], 8
jmp 0x465cf6
cmp cx, 0x77
jne 0x465c35
cmp dword [ebp - 0x24], edx
je 0x465c40
or dword [esi + 0x653adc], 0x20
jmp 0x465cf6
cmp cx, 0x57
jne 0x465c4c
cmp dword [ebp - 0x24], edx
je 0x465c29
or dword [esi + 0x653adc], 0x10
jmp 0x465cf6
cmp cx, 0x70
je 0x465c58
cmp cx, 0x50
jne 0x465c66
mov ecx, dword [edi]
mov word [eax + ecx*2], 0xd
inc ecx
mov dword [edi], ecx
push 0xa
pop ecx
mov edx, dword [edi]
mov word [eax + edx*2], cx
inc edx
cmp dword [ebp + 0x14], 0
mov dword [edi], edx
je 0x465c80
mov eax, dword [ebp - 0x20]
cmp word [eax], 0x2d
je 0x465c90
jmp 0x465cf6
mov eax, dword [ebp + 8]
mov ebx, dword [ebp - 0x18]
cmp byte [ebx + eax + 1], 0x2d
mov ebx, dword [ebp - 8]
jne 0x465cf6
add dword [ebp - 0x18], 2
add dword [ebp - 0x20], 4
add dword [ebp - 0x1c], 4
cmp dword [ebp + 0x14], 0
movzx ecx, cl
je 0x465cad
mov eax, dword [ebp - 0x1c]
mov ax, word [eax]
jmp 0x465cbb
mov eax, dword [ebp - 0x18]
mov ebx, dword [ebp + 8]
movzx ax, byte [eax + ebx]
mov ebx, dword [ebp - 8]
cmp ax, 0x41
jb 0x465cc7
cmp ax, 0x5a
jbe 0x465cd3
cmp ax, 0xc0
jb 0x465cdd
cmp ax, 0xdf
jae 0x465cdd
movsx bx, byte [ebp + 0xf]
or eax, ebx
mov ebx, dword [ebp - 8]
movzx eax, al
cmp ecx, eax
jge 0x465cf6
mov ebx, dword [ebp - 0x3c]
inc ecx
mov word [ebx + edx*2], cx
inc edx
cmp ecx, eax
mov dword [edi], edx
jl 0x465ce4
mov ebx, dword [ebp - 8]
inc dword [ebp - 0x18]
add dword [ebp - 0x20], 2
add dword [ebp - 0x1c], 2
cmp dword [edi], 0x1ff
jb 0x465d15
mov dword [ebp - 0x34], 1
jmp 0x465d15
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0
je 0x465ac4
mov ax, word [ebp + 0x10]
cmp dword [ebp - 0xc], 0
mov word [esi + 0x653ad0], ax
je 0x465d39
mov eax, dword [ebp - 0x10]
mov dword [esi + 0x653ac4], eax
inc ebx
push 4
mov dword [esi + 0x653ac0], 5
mov dword [ebp - 8], ebx
pop esi
xor edi, edi
cmp dword [ebp - 0xc], edi
jne 0x465d9b
cmp dword [ebp - 0x30], 0xffffffff
je 0x465d9b
mov eax, ebx
shl eax, 5
cmp dword [eax + 0x653aa0], 0xb
je 0x465d9b
cmp dword [ebp - 0x28], 0xffffffff
je 0x465d83
mov edx, dword [ebp - 0x28]
or dword [ebp - 0x28], 0xffffffff
shl edx, 5
or dword [ebp - 0x30], 0xffffffff
lea ecx, [ebx + 1]
mov word [edx + 0x653ad0], cx
lea ecx, [ebx + 1]
inc ebx
mov word [eax + 0x653ad0], cx
mov dword [eax + 0x653ac0], 0xc
mov dword [ebp - 8], ebx
inc dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x2c]
jl 0x465561
cmp ebx, edi
jle 0x465dc1
mov eax, ebx
shl eax, 5
cmp dword [eax + 0x653aa0], esi
jne 0x465dc1
cmp dword [ebp - 4], edi
je 0x465dc1
dec ebx
shl ebx, 5
mov dword [ebx + 0x653ac0], edi
jmp 0x46648d
cmp dword [ebp - 0x2c], edi
jle 0x466483
push 4
pop esi
push 2
pop edi
cmp ebx, 0x7cf
jge 0x46646b
xor edx, edx
cmp dword [ebp + 0x14], edx
je 0x465dfd
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x18]
mov cx, word [eax + ecx*2]
jmp 0x465e08
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp + 8]
movzx cx, byte [eax + ecx]
cmp cx, 0x41
jb 0x465e14
cmp cx, 0x5a
jbe 0x465e22
cmp cx, 0xc0
jb 0x465e29
cmp cx, 0xdf
jae 0x465e29
movsx ax, byte [ebp + 0xf]
or ecx, eax
movzx eax, cx
cmp eax, 0x3f
jg 0x465fd0
je 0x465faf
cmp eax, 0x24
jl 0x465fec
cmp eax, 0x25
jle 0x465f04
cmp eax, 0x27
jle 0x465fec
cmp eax, 0x29
jle 0x465eb0
cmp eax, 0x2a
je 0x465e6e
cmp eax, 0x2b
je 0x465f04
jmp 0x465fec
xor edx, edx
cmp dword [ebp - 0x14], edx
jne 0x465fb4
cmp dword [ebp - 0xc], edx
push 1
pop ecx
mov dword [ebp - 4], ecx
je 0x465e99
mov edx, dword [ebp - 0x10]
mov eax, ebx
shl eax, 5
mov dword [eax + 0x653ac4], edx
mov word [eax + 0x653ad2], cx
mov eax, ebx
shl eax, 5
mov dword [eax + 0x653ac0], esi
or word [eax + 0x653ad2], di
jmp 0x466150
xor edx, edx
cmp dword [ebp - 0x14], edx
je 0x466112
cmp cx, 0x28
mov dword [ebp - 0x14], edx
jne 0x465edb
xor eax, eax
cmp dword [ebp - 4], edx
mov dword [ebp - 0xc], 1
setne al
mov dword [ebp - 0x38], eax
jmp 0x46645c
cmp dword [ebp - 0xc], edx
je 0x465ef9
mov eax, ebx
shl eax, 5
cmp dword [eax + 0x653aa0], esi
jne 0x465ef9
cmp dword [ebp - 4], edx
jne 0x465ef9
mov word [eax + 0x653ab2], dx
inc dword [ebp - 0x10]
mov dword [ebp - 0xc], edx
jmp 0x46645c
xor edx, edx
cmp dword [ebp - 0x14], edx
jne 0x465fb4
cmp cx, 0x2b
jne 0x465f4a
cmp ebx, edx
je 0x465f39
mov eax, ebx
shl eax, 5
cmp dword [eax + 0x653aa0], 6
jne 0x465f39
dec ebx
mov eax, ebx
shl eax, 5
mov dword [eax + 0x653ac0], 0xd
jmp 0x465f9c
mov eax, ebx
shl eax, 5
mov dword [eax + 0x653ac0], 6
jmp 0x465f9c
cmp dword [ebp - 4], edx
je 0x465f70
dec ebx
mov dword [ebp - 4], edx
mov eax, ebx
shl eax, 5
and word [eax + 0x653ad2], 1
mov dword [eax + 0x653ac0], esi
mov word [eax + 0x653ad0], 0xd
inc ebx
cmp cx, 0x25
jne 0x465f87
mov eax, ebx
shl eax, 5
mov dword [eax + 0x653ac0], 7
jmp 0x465f9c
cmp cx, 0x24
jne 0x465f9c
mov eax, ebx
shl eax, 5
mov dword [eax + 0x653ac0], 8
cmp dword [ebp - 0xc], edx
je 0x466150
mov eax, ebx
shl eax, 5
jmp 0x466147
cmp dword [ebp - 0x14], edx
je 0x465fbc
mov dword [ebp - 0x14], edx
jmp 0x466112
mov eax, ebx
shl eax, 5
mov dword [eax + 0x653ac0], 3
jmp 0x466142
mov edx, eax
sub edx, 0x5b
je 0x466232
sub edx, 0x20
je 0x46610b
sub edx, edi
je 0x46610b
movsx edi, byte [0x65054c]
xor edx, edx
cmp eax, edi
jne 0x46604d
xor eax, eax
cmp dword [ebp - 0x14], eax
je 0x46603e
cmp dword [ebp - 4], eax
mov dword [ebp - 0x14], eax
je 0x466024
and dword [ebp - 4], eax
dec ebx
mov eax, ebx
push 2
shl eax, 5
pop edi
and word [eax + 0x653ad2], 1
mov dword [eax + 0x653ac0], esi
jmp 0x466032
mov eax, ebx
push 2
shl eax, 5
pop edi
mov dword [eax + 0x653ac0], edi
mov word [eax + 0x653ad0], cx
jmp 0x466105
push 2
mov dword [ebp - 0x14], 1
pop edi
jmp 0x46645c
xor edi, edi
cmp dword [ebp - 0x14], edi
je 0x46606e
cmp cx, 0x74
mov dword [ebp - 0x14], edi
jne 0x466062
push 9
pop ecx
jmp 0x46606e
cmp cx, 0x70
jne 0x46606e
push 0xd
pop ecx
push 1
pop edx
cmp dword [ebp - 4], edi
je 0x4660c1
cmp ebx, edi
mov dword [ebp - 4], edi
jle 0x466088
mov eax, ebx
shl eax, 5
cmp dword [eax + 0x653aa0], esi
jne 0x466088
dec ebx
mov eax, ebx
shl eax, 5
and word [eax + 0x653ad2], 1
cmp dword [ebp - 0xc], edi
mov dword [eax + 0x653ac0], esi
mov word [eax + 0x653ad0], cx
je 0x4660b8
cmp dword [ebp - 0x38], edi
mov ecx, dword [ebp - 0x10]
je 0x4660b2
add ecx, 0x64
mov dword [eax + 0x653ac4], ecx
inc ebx
push 2
mov dword [ebp - 8], ebx
pop edi
jmp 0x4660e9
mov eax, ebx
push 2
shl eax, 5
cmp dword [ebp - 0xc], 0
pop edi
mov dword [eax + 0x653ac0], edi
mov word [eax + 0x653ad0], cx
je 0x4660e5
mov ecx, dword [ebp - 0x10]
mov dword [eax + 0x653ac4], ecx
inc ebx
mov dword [ebp - 8], ebx
test edx, edx
je 0x46645c
mov eax, ebx
shl eax, 5
mov dword [eax + 0x653ac0], edi
mov word [eax + 0x653ad0], 0xa
cmp dword [ebp - 0xc], 0
jmp 0x466145
xor edx, edx
cmp dword [ebp - 0x14], edx
jne 0x466159
cmp dword [ebp - 4], edx
je 0x466130
dec ebx
mov dword [ebp - 4], edx
mov eax, ebx
shl eax, 5
and word [eax + 0x653ad2], 1
mov dword [eax + 0x653ac0], esi
jmp 0x46613b
mov eax, ebx
shl eax, 5
mov dword [eax + 0x653ac0], edi
mov word [eax + 0x653ad0], cx
cmp dword [ebp - 0xc], edx
je 0x466150
mov ecx, dword [ebp - 0x10]
mov dword [eax + 0x653ac4], ecx
inc ebx
mov dword [ebp - 8], ebx
jmp 0x46645c
cmp ebx, edx
mov dword [ebp - 0x14], edx
jle 0x466173
mov eax, ebx
shl eax, 5
cmp dword [eax + 0x653aa0], esi
jne 0x466173
cmp dword [ebp - 4], edx
je 0x466173
dec ebx
cmp cx, 0x7b
jne 0x4661b7
cmp dword [ebp - 0x34], 0xffffffff
jne 0x466193
mov eax, ebx
mov dword [ebp - 0x34], ebx
shl eax, 5
mov dword [eax + 0x653ac0], 9
jmp 0x466142
mov ecx, dword [ebp - 0x34]
lea eax, [ebx + 1]
shl ecx, 5
mov dword [ebp - 0x30], ebx
mov word [ecx + 0x653ad0], ax
mov eax, ebx
shl eax, 5
mov dword [eax + 0x653ac0], 0xb
jmp 0x466142
cmp dword [ebp - 0xc], edx
je 0x4661d5
mov eax, ebx
shl eax, 5
cmp dword [eax + 0x653aa0], esi
jne 0x4661d5
cmp dword [ebp - 4], edx
jne 0x4661d5
mov word [eax + 0x653ab2], dx
or eax, 0xffffffff
cmp dword [ebp - 0x30], eax
jne 0x4661f4
mov eax, ebx
mov dword [ebp - 0x28], ebx
shl eax, 5
mov dword [eax + 0x653ac0], 0xa
jmp 0x466142
cmp dword [ebp - 0x28], eax
je 0x466214
mov edx, dword [ebp - 0x28]
lea ecx, [ebx + 1]
shl edx, 5
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x28], eax
mov word [edx + 0x653ad0], cx
mov dword [ebp - 0x30], eax
xor edx, edx
mov eax, ebx
lea ecx, [ebx + 1]
shl eax, 5
mov word [eax + 0x653ad0], cx
mov dword [eax + 0x653ac0], 0xc
jmp 0x466142
xor edx, edx
cmp dword [ebp - 0x14], edx
jne 0x465fb4
mov ebx, dword [sym.imp.KERNEL32.dll_GlobalAlloc]
and dword [ebp - 4], edx
mov esi, 0x400
push esi
push 0x40
call ebx
mov edi, dword [ebp - 8]
push esi
shl edi, 5
push 0x40
mov dword [ebp - 0x40], eax
mov dword [edi + 0x653ad4], eax
call ebx
cmp dword [ebp - 0x40], 0
mov dword [ebp - 0x4c], eax
mov dword [edi + 0x653ad8], eax
je 0x466492
xor ecx, ecx
cmp eax, ecx
je 0x466492
mov ebx, dword [ebp - 0x18]
mov eax, dword [ebp + 8]
inc ebx
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x3c], ecx
lea ecx, [eax + ebx*2]
mov dword [ebp - 0x1c], ecx
lea ecx, [eax + ebx*2 + 2]
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x20], ecx
jmp 0x4662a9
mov eax, dword [ebp + 8]
cmp ebx, dword [ebp - 0x2c]
push 1
pop edx
jge 0x46641f
cmp dword [ebp + 0x14], 0
je 0x4662c3
mov eax, dword [ebp - 0x1c]
mov cx, word [eax]
jmp 0x4662c8
movzx cx, byte [ebx + eax]
cmp cx, 0x41
jb 0x4662d4
cmp cx, 0x5a
jbe 0x4662e2
cmp cx, 0xc0
jb 0x4662e9
cmp cx, 0xdf
jae 0x4662e9
movsx ax, byte [ebp + 0xf]
or ecx, eax
movzx eax, cx
cmp eax, 0x5d
je 0x46641f
cmp eax, 0x7e
je 0x46640e
cmp dword [ebp - 0x44], 0
je 0x46630c
mov edx, dword [ebp - 0x4c]
lea esi, [ebp - 0x50]
jmp 0x466312
mov edx, dword [ebp - 0x40]
lea esi, [ebp - 0x48]
mov dword [ebp - 0x24], edx
movsx edx, byte [0x65054c]
cmp eax, edx
jne 0x466369
cmp dword [ebp + 0x14], 0
je 0x466337
add dword [ebp - 0x20], 2
inc ebx
add dword [ebp - 0x1c], 2
mov eax, dword [ebp - 0x1c]
mov cx, word [eax]
jmp 0x466348
mov eax, dword [ebp + 8]
add dword [ebp - 0x20], 2
inc ebx
add dword [ebp - 0x1c], 2
movzx cx, byte [ebx + eax]
cmp cx, 0x74
jne 0x466352
push 9
jmp 0x466368
cmp cx, 0x70
jne 0x466369
mov ecx, dword [esi]
mov eax, dword [ebp - 0x24]
push 0xa
mov word [eax + ecx*2], 0xd
inc ecx
mov dword [esi], ecx
pop ecx
mov edx, dword [esi]
mov eax, dword [ebp - 0x24]
mov word [eax + edx*2], cx
inc edx
cmp dword [ebp + 0x14], 0
mov dword [esi], edx
je 0x466386
mov eax, dword [ebp - 0x20]
cmp word [eax], 0x2d
je 0x466390
jmp 0x4663f1
mov eax, dword [ebp + 8]
cmp byte [ebx + eax + 1], 0x2d
jne 0x4663f1
add dword [ebp - 0x20], 4
add dword [ebp - 0x1c], 4
inc ebx
inc ebx
cmp dword [ebp + 0x14], 0
mov dword [ebp - 0x18], ebx
movzx ecx, cl
je 0x4663ae
mov eax, dword [ebp - 0x1c]
mov ax, word [eax]
jmp 0x4663b6
mov eax, dword [ebp + 8]
movzx ax, byte [ebx + eax]
cmp ax, 0x41
jb 0x4663c2
cmp ax, 0x5a
jbe 0x4663ce
cmp ax, 0xc0
jb 0x4663d8
cmp ax, 0xdf
jae 0x4663d8
movsx bx, byte [ebp + 0xf]
or eax, ebx
mov ebx, dword [ebp - 0x18]
movzx eax, al
cmp ecx, eax
jge 0x4663f1
mov ebx, dword [ebp - 0x24]
inc ecx
mov word [ebx + edx*2], cx
inc edx
cmp ecx, eax
mov dword [esi], edx
jl 0x4663df
mov ebx, dword [ebp - 0x18]
add dword [ebp - 0x20], 2
add dword [ebp - 0x1c], 2
inc ebx
cmp edx, 0x1ff
mov dword [ebp - 0x18], ebx
jb 0x466422
mov dword [ebp - 0x3c], 1
jmp 0x466422
add dword [ebp - 0x20], 2
inc ebx
add dword [ebp - 0x1c], 2
mov dword [ebp - 0x44], edx
mov dword [ebp - 0x18], ebx
jmp 0x466422
mov dword [ebp - 0x3c], edx
cmp dword [ebp - 0x3c], 0
je 0x4662a6
mov ax, word [ebp + 0x10]
cmp dword [ebp - 0xc], 0
mov word [edi + 0x653ad0], ax
je 0x466446
mov eax, dword [ebp - 0x10]
mov dword [edi + 0x653ac4], eax
inc dword [ebp - 8]
push 4
mov ebx, dword [ebp - 8]
pop esi
push 2
mov dword [edi + 0x653ac0], 5
pop edi
inc dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x2c]
jl 0x465dde
test ebx, ebx
jle 0x466483
mov eax, ebx
shl eax, 5
cmp dword [eax + 0x653aa0], esi
jne 0x466483
cmp dword [ebp - 4], 0
je 0x466483
dec ebx
shl ebx, 5
and dword [ebx + 0x653ac0], 0
pop edi
pop esi
pop ebx
leave
ret
mov edi, dword [ebp - 8]
mov esi, dword [sym.imp.KERNEL32.dll_GlobalFree]
shl edi, 5
push dword [edi + 0x653ad4]
call esi
push dword [edi + 0x653ad8]
call esi
and dword [0x653ac0], 0
jmp 0x46648d