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

Disassembly:
push ebp
lea ebp, [esp - 0x70]
sub esp, 0x47c
mov eax, dword [0x437b00]
xor eax, ebp
mov dword [ebp + 0x6c], eax
mov ecx, dword [0x436038]
push ebx
mov ebx, dword [ebp + 0x7c]
push esi
mov esi, dword [ebp + 0x78]
mov eax, dword [esi + 4]
push edi
xor edi, edi
mov dword [ebp - 0x3d8], eax
mov dword [ebp - 0x3dc], eax
mov dword [ebp - 0x3f0], eax
mov dword [ebp - 0x3e8], edi
mov ecx, dword [ecx + 0x14]
mov dword [ebp - 0x3d4], ecx
mov ecx, dword [esi + 8]
lea eax, [ecx + eax - 0x10]
mov dword [ebp - 0x3ec], eax
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x400], esi
mov dword [ebp - 0x40c], ebx
mov dword [ebp - 0x3fc], edi
mov dword [ebp - 0x3d0], edi
mov dword [ebp - 0x3c4], edi
mov dword [ebp - 0x3c0], eax
cmp eax, edi
je 0x412835
cmp dword [0x4360e0], edi
jne 0x41282b
cmp dword [0x439054], edi
je 0x412835
mov dword [ebp - 0x3d0], 0xa
cmp dword [0x438fd8], edi
je 0x412874
push dword [0x43b52c]
call dword [sym.imp.USER32.dll_GetDC]
push dword [0x438fd4]
mov dword [ebp - 0x3c8], eax
push eax
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [ebp - 0x408], eax
mov eax, dword [0x43601c]
imul eax, dword [ebp - 0x3d4]
mov dword [ebp - 0x3cc], eax
movzx eax, byte [ebx + 4]
mov ecx, dword [ebx]
mov dword [ebp - 0x3bc], eax
movzx eax, byte [ebx + 5]
mov dword [ebp - 0x3b8], eax
movzx eax, byte [ebx + 6]
mov dword [ebp - 0x3b0], eax
mov al, byte [ebx + 7]
movzx edx, al
and edx, 0xffffffde
mov dword [ebp - 0x3b4], edx
mov edx, dword [esi]
mov dword [ebp - 0x3e4], ecx
mov dword [ebp - 0x3e0], edx
mov dword [ebp - 0x39c], edi
cmp ecx, edi
jne 0x4128c6
mov dword [ebp - 0x3d4], edi
jmp 0x413306
cmp dword [0x43cb40], edi
je 0x4132c5
test al, 0x21
je 0x4132c5
lea eax, [ebp - 0x3f0]
push eax
call fcn.0040fcde
jmp 0x4132c5
mov eax, dword [ebp - 0x3ec]
cmp dword [ebp - 0x3f0], eax
jae 0x4132e0
mov eax, dword [ebp - 0x3e4]
cmp eax, dword [ebp - 0x3e0]
jb 0x412946
cmp dword [ebp - 0x39c], edi
je 0x4132e0
mov eax, dword [ebp - 0x3ac]
mov dword [ebp - 0x3e4], eax
mov eax, dword [ebp - 0x3a4]
mov dword [ebp - 0x3e0], eax
mov eax, dword [ebp - 0x3a0]
mov dword [ebp - 0x3b0], eax
mov dword [ebp - 0x39c], edi
jmp 0x4132c5
movzx ebx, byte [eax]
cmp dword [0x43cb40], edi
je 0x41296c
cmp ebx, 0x3d
jne 0x41296c
lea eax, [ebp - 0x3e4]
push eax
call fcn.00411fd9
mov ebx, eax
cmp ebx, edi
je 0x4132c5
cmp dword [ebp - 0x3b0], 2
je 0x412a66
cmp ebx, 0x3a
jne 0x41299d
mov eax, dword [ebp - 0x3e4]
cmp byte [eax + 1], 0x2f
jne 0x412a66
mov dword [ebp - 0x3fc], 1
jmp 0x412a66
cmp ebx, 0x25
jne 0x412a66
cmp dword [ebp - 0x3fc], edi
je 0x412a66
cmp dword [0x43b238], edi
je 0x412a66
mov esi, dword [ebp - 0x3e4]
movzx eax, byte [esi + 1]
test byte [eax + str._AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA], 0xc
je 0x412a66
movzx eax, byte [esi + 2]
test byte [eax + str._AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA], 0xc
je 0x412a66
cmp dword [ebp - 0x39c], edi
jne 0x412a66
lea eax, [ebp - 0x404]
push eax
lea eax, [ebp - 0x394]
push eax
lea eax, [ebp - 0x3e4]
push eax
call fcn.00411287
mov ecx, dword [ebp - 0x3e4]
cmp esi, ecx
jae 0x412a66
movzx ebx, byte [ebp - 0x394]
mov dword [ebp - 0x3ac], ecx
mov ecx, dword [ebp - 0x3e0]
mov dword [ebp - 0x3a4], ecx
mov ecx, dword [ebp - 0x3b0]
mov dword [ebp - 0x3a0], ecx
lea ecx, [ebp - 0x394]
mov dword [ebp - 0x3e4], ecx
mov ecx, dword [ebp - 0x404]
lea ecx, [ebp + ecx - 0x394]
mov dword [ebp - 0x39c], 3
mov dword [ebp - 0x3e0], ecx
mov dword [ebp - 0x3b0], eax
mov eax, dword [ebp - 0x3b0]
cmp eax, 0xc
jne 0x412ab5
cmp ebx, 0x5c
jne 0x412a97
inc dword [ebp - 0x3e4]
lea eax, [ebp - 0x3f0]
push eax
call fcn.0041138b
mov ebx, eax
cmp ebx, edi
je 0x4132c5
jmp 0x412eaf
cmp ebx, 0x20
jl 0x412aaa
cmp ebx, 0x3b
je 0x412aaa
cmp ebx, 0x7b
jne 0x412eaf
inc dword [ebp - 0x3e4]
jmp 0x4132c5
cmp eax, 9
jne 0x412b0e
test bl, bl
jns 0x412ae4
mov eax, dword [0x436038]
cmp dword [eax + 0x10], 9
je 0x412ae4
cmp dword [0x43b53c], edi
jne 0x412ae4
mov dword [0x43b53c], 1
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x3b0], eax
lea eax, [ebx - 0x20]
cmp eax, 0x3f
ja 0x412eaf
xor edx, edx
inc edx
lea ecx, [ebp - 0x3f0]
call fcn.00410b1f
mov eax, dword [ebp - 0x3f0]
sub bl, 0x80
mov byte [eax], bl
jmp 0x412de3
cmp eax, 5
jne 0x412cac
inc dword [ebp - 0x3e4]
mov eax, dword [ebp - 0x3e4]
movzx eax, byte [eax]
shl eax, 8
add ebx, eax
cmp ebx, 0x20
jl 0x412eaf
inc dword [ebp - 0x3e4]
push 2
pop esi
cmp dword [ebp - 0x3d4], esi
jge 0x412b5e
sub dword [ebp - 0x3e4], esi
mov eax, dword [ebp - 0x3d0]
cmp eax, edi
je 0x4132da
jmp 0x4132ad
cmp ebx, 0x3000
jne 0x412bad
cmp dword [0x4368b0], edi
je 0x412bad
lea ecx, [ebp - 0x3f0]
call fcn.00410a14
mov eax, dword [ebp - 0x3f0]
mov dword [ebp - 0x3c4], edi
mov byte [eax], 0xd
inc dword [ebp - 0x3f0]
sub dword [ebp - 0x3d4], esi
jne 0x4132c5
mov eax, dword [ebp - 0x3d0]
cmp eax, edi
je 0x4132c5
jmp 0x4132ad
cmp dword [0x43b238], edi
je 0x412bf6
cmp ebx, 0x3c
jne 0x412c69
mov edx, dword [0x436894]
mov ecx, dword [ebp - 0x3e4]
cmp edx, edi
je 0x412bf6
add ecx, esi
cmp ecx, dword [ebp - 0x3e0]
jae 0x412bf6
movzx eax, word [ecx]
cmp ax, 0x3e
je 0x412bfe
cmp ax, 0xd
je 0x412bf3
cmp ax, 0xa
je 0x412bf3
cmp ax, 0x20
jb 0x412bfc
dec edx
jne 0x412bce
push ebx
jmp 0x412d7d
xor edx, edx
cmp edx, edi
je 0x412bf6
lea ecx, [ebp - 0x3f0]
call fcn.00410a14
mov eax, dword [ebp - 0x3f0]
mov dword [ebp - 0x3c4], edi
mov byte [eax], 0xe
mov eax, dword [ebp - 0x3e4]
inc dword [ebp - 0x3f0]
cmp word [eax + 2], 0x21
jne 0x412c42
cmp word [eax + 4], 0x2d
jne 0x412c42
cmp word [eax + 6], 0x2d
jne 0x412c42
xor eax, eax
inc eax
jmp 0x412c44
xor eax, eax
mov ecx, dword [ebp - 0x3f0]
mov eax, dword [eax*4 + 0x436918]
mov dword [ecx], eax
add dword [ebp - 0x3f0], 4
cmp dword [ebp - 0x3e8], edi
jne 0x412bf6
or dword [ebp - 0x3b4], 4
cmp ebx, 0x3e
jne 0x412bf6
push ebx
lea eax, [ebp - 0x3f0]
push eax
call fcn.00410b50
lea ecx, [ebp - 0x3f0]
call fcn.00410a14
mov eax, dword [ebp - 0x3f0]
mov dword [ebp - 0x3c4], edi
mov byte [eax], 0x10
inc dword [ebp - 0x3f0]
cmp dword [ebp - 0x3e8], edi
jne 0x4132c5
jmp 0x412f67
cmp eax, 6
jne 0x412d18
inc dword [ebp - 0x3e4]
mov eax, dword [ebp - 0x3e4]
movzx eax, byte [eax]
shl ebx, 8
add ebx, eax
cmp ebx, 0x20
jl 0x412eaf
inc dword [ebp - 0x3e4]
cmp dword [ebp - 0x3d4], 2
jl 0x4132d3
cmp ebx, 0x3000
jne 0x412bf6
cmp dword [0x4368b0], edi
je 0x412bf6
lea ecx, [ebp - 0x3f0]
call fcn.00410a14
mov eax, dword [ebp - 0x3f0]
mov dword [ebp - 0x3c4], edi
mov byte [eax], 0xd
jmp 0x413175
cmp eax, 0xa
jne 0x412dfa
test bl, bl
jns 0x412d8e
cmp dword [ebp - 0x3d4], 2
jl 0x412b4b
cmp dword [0x43cb40], edi
jne 0x412d49
push ebx
lea eax, [ebp - 0x3e4]
push eax
call fcn.0040fe4a
jmp 0x412d7c
cmp dword [ebp - 0x39c], 2
jne 0x412d6f
mov eax, dword [ebp - 0x3e0]
sub eax, dword [ebp - 0x3e4]
cmp eax, 4
jge 0x412d6f
lea eax, [ebp - 0x3f0]
push eax
call fcn.0040fcde
push ebx
lea eax, [ebp - 0x3e4]
push eax
call fcn.004111b0
push eax
lea eax, [ebp - 0x3f0]
push eax
call fcn.00410b50
jmp 0x4132c5
cmp ebx, 0x20
jl 0x412eaf
cmp ebx, 0x3c
je 0x412da1
cmp ebx, 0x26
jne 0x412dad
cmp dword [0x43b238], edi
jne 0x412eaf
cmp ebx, 0x3d
jne 0x412dbe
cmp dword [0x43cb40], edi
jne 0x412eaf
push 3
pop edx
lea ecx, [ebp - 0x3f0]
call fcn.00410b1f
mov eax, dword [ebp - 0x3f0]
mov byte [eax], bl
inc dword [ebp - 0x3f0]
mov eax, dword [ebp - 0x3f0]
mov byte [eax], 0
inc dword [ebp - 0x3f0]
inc dword [ebp - 0x3e4]
dec dword [ebp - 0x3d4]
jmp 0x4132c5
cmp eax, 8
jne 0x412eaf
cmp ebx, 0x20
jle 0x412e95
mov eax, dword [ebp - 0x3e4]
movzx eax, byte [eax + 1]
xor edx, edx
inc edx
lea ecx, [ebp - 0x3f0]
mov dword [ebp - 0x3f8], eax
call fcn.00410b1f
mov eax, dword [ebp - 0x3f8]
movzx ecx, al
test byte [ecx + str._AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA], 2
je 0x412e67
cmp dword [ebp - 0x3d4], 2
jl 0x4132da
add dword [ebp - 0x3e4], 2
mov ecx, dword [ebp - 0x3f0]
mov byte [ecx], al
inc dword [ebp - 0x3f0]
sub dword [ebp - 0x3d4], 2
jmp 0x412e82
cmp eax, 0x20
jne 0x412e76
test bl, bl
jns 0x412e76
inc dword [ebp - 0x3e4]
inc dword [ebp - 0x3e4]
dec dword [ebp - 0x3d4]
mov eax, dword [ebp - 0x3f0]
mov byte [eax], bl
inc dword [ebp - 0x3f0]
jmp 0x4132c5
lea eax, [ebx - 1]
cmp eax, 0x1e
ja 0x412eaf
mov eax, dword [ebp - 0x3e4]
inc eax
cmp byte [eax], 0
jne 0x412eaf
mov dword [ebp - 0x3e4], eax
movzx eax, bl
movsx eax, byte [eax + str._AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]
mov dword [ebp - 0x3f8], eax
test al, 0x40
je 0x412ed5
push ebx
lea eax, [ebp - 0x3f0]
push eax
call fcn.00412067
jmp 0x413241
xor edx, edx
inc edx
lea ecx, [ebp - 0x3f0]
call fcn.00410b1f
cmp dword [ebp - 0x3b0], 2
je 0x413022
cmp dword [0x43b238], edi
je 0x412fcb
cmp dword [ebp - 0x3e8], edi
jne 0x412fcb
cmp ebx, 0x3c
jne 0x412f21
lea eax, [ebp - 0x3f0]
push eax
call fcn.00411aea
test eax, eax
jne 0x4132c5
cmp ebx, 0x3e
jne 0x412f73
cmp dword [0x43b238], 1
jle 0x413000
mov eax, dword [ebp - 0x3f0]
mov byte [eax], bl
inc dword [ebp - 0x3f0]
lea ecx, [ebp - 0x3f0]
call fcn.00410a14
mov eax, dword [ebp - 0x3f0]
mov dword [ebp - 0x3c4], edi
mov byte [eax], 0x10
inc dword [ebp - 0x3f0]
inc dword [ebp - 0x3e4]
and dword [ebp - 0x3b4], 0xfffffffb
jmp 0x4132c5
cmp ebx, 0x26
jne 0x412fcb
jmp 0x412fa3
mov eax, dword [ebp - 0x3e4]
cmp eax, dword [ebp - 0x3e0]
jae 0x412fb5
cmp byte [eax], 0x26
jne 0x412fb5
cmp dword [ebp - 0x3d4], edi
jle 0x412fb5
mov eax, dword [ebp - 0x3f0]
cmp eax, dword [ebp - 0x3ec]
jae 0x412fb5
lea eax, [ebp - 0x3f0]
push eax
call fcn.004119ae
mov esi, eax
cmp esi, edi
jne 0x412f7a
xor edx, edx
inc edx
lea ecx, [ebp - 0x3f0]
call fcn.00410b1f
cmp esi, edi
jne 0x4132c5
cmp ebx, 0x3d
jne 0x413000
cmp dword [0x43cb40], edi
je 0x413000
mov eax, dword [ebp - 0x3e4]
cmp byte [eax + 1], 0x3f
jne 0x413000
cmp dword [ebp - 0x39c], edi
jne 0x413000
lea eax, [ebp - 0x3f0]
push eax
call fcn.00410f57
test eax, eax
jne 0x4132c5
cmp dword [ebp - 0x3b0], 0xb
jne 0x413022
cmp ebx, 0x2b
jne 0x41303d
lea eax, [ebp - 0x3f0]
push eax
call fcn.004115e7
test eax, eax
jne 0x4132c5
cmp dword [ebp - 0x3b0], 3
je 0x41304d
cmp dword [ebp - 0x3b0], 7
je 0x41304d
cmp dword [ebp - 0x3b0], 0xc
je 0x41304d
cmp dword [0x438fe4], 0x3a4
jne 0x41320c
test byte [ebp - 0x3f8], 2
je 0x41320c
cmp dword [ebp - 0x3d4], 2
jge 0x4130a8
cmp dword [0x438fd8], edi
je 0x412b4b
cmp dword [ebp - 0x3c4], 1
jne 0x413086
lea eax, [ebp - 0x3f0]
push eax
call fcn.00410982
jmp 0x41309b
cmp dword [ebp - 0x3c4], 3
jne 0x41309b
lea eax, [ebp - 0x3f0]
push eax
call fcn.004109ca
cmp dword [ebp - 0x3d4], 2
jl 0x412b4b
mov eax, dword [ebp - 0x3f0]
mov byte [eax], bl
inc dword [ebp - 0x3f0]
mov eax, dword [ebp - 0x3e4]
inc eax
mov dword [ebp - 0x3e4], eax
mov dl, byte [eax]
test dl, dl
je 0x413191
cmp dword [0x43cb40], edi
je 0x413139
cmp dl, 0x3d
jne 0x413139
mov cl, byte [eax + 1]
cmp cl, 0xd
jne 0x4130ed
cmp byte [eax + 2], 0xa
jne 0x4130ed
add eax, 3
jmp 0x4130f4
cmp cl, 0xa
jne 0x413101
inc eax
inc eax
mov dword [ebp - 0x3e4], eax
mov dl, byte [eax]
cmp dl, 0x3d
jne 0x413139
mov cl, byte [eax + 1]
movzx ecx, cl
test byte [ecx + str._AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA], 0xc
je 0x413139
lea esi, [eax + 2]
mov cl, byte [esi]
movzx ecx, cl
test byte [ecx + str._AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA], 0xc
je 0x413139
mov cl, byte [eax + 1]
call fcn.00410968
mov cl, byte [esi]
mov edx, eax
shl dl, 4
call fcn.00410968
add dl, al
mov eax, esi
inc eax
mov dword [ebp - 0x3e4], eax
cmp ebx, 0x81
jne 0x413187
cmp dl, 0x40
jne 0x413187
cmp dword [0x4368b0], edi
je 0x413187
dec dword [ebp - 0x3f0]
lea ecx, [ebp - 0x3f0]
call fcn.00410a14
mov eax, dword [ebp - 0x3f0]
mov dword [ebp - 0x3c4], edi
mov byte [eax], 0xc
inc dword [ebp - 0x3f0]
sub dword [ebp - 0x3d4], 2
jmp 0x4132c5
mov eax, dword [ebp - 0x3f0]
mov byte [eax], dl
jmp 0x41319a
mov eax, dword [ebp - 0x3f0]
mov byte [eax], 0x20
inc dword [ebp - 0x3f0]
cmp dword [ebp - 0x3b0], 7
jne 0x413200
cmp ebx, 0x85
je 0x4131b9
cmp ebx, 0x86
jne 0x413200
mov eax, dword [ebp - 0x3f0]
mov al, byte [eax - 1]
cmp al, 0x40
jb 0x413200
mov ecx, dword [ebp - 0x3f0]
imul ebx, ebx, 0xc0
movzx eax, al
add ebx, eax
movzx eax, word [ebx*2 + 0x42a470]
mov byte [ecx - 2], al
shr eax, 8
test al, al
jne 0x4131f7
inc dword [ebp - 0x3d4]
dec dword [ebp - 0x3f0]
jmp 0x413200
mov ecx, dword [ebp - 0x3f0]
mov byte [ecx - 1], al
sub dword [ebp - 0x3d4], 2
jmp 0x412b94
cmp dword [ebp - 0x3b0], 4
jne 0x41322b
cmp ebx, 0x80
jl 0x41324b
lea eax, [ebp - 0x3f0]
push eax
call fcn.004116d6
jmp 0x413241
cmp dword [ebp - 0x3b0], 2
jne 0x41324b
push ebx
lea eax, [ebp - 0x3f0]
push eax
call fcn.004117d3
test eax, eax
je 0x4132e0
jmp 0x4132c5
mov eax, dword [ebp - 0x3f0]
mov byte [eax], bl
inc dword [ebp - 0x3f0]
inc dword [ebp - 0x3e4]
dec dword [ebp - 0x3d4]
jne 0x4132c5
cmp dword [0x438fd8], edi
je 0x41329b
cmp dword [ebp - 0x3c4], 1
jne 0x413286
lea eax, [ebp - 0x3f0]
push eax
call fcn.00410982
jmp 0x41329b
cmp dword [ebp - 0x3c4], 3
jne 0x41329b
lea eax, [ebp - 0x3f0]
push eax
call fcn.004109ca
mov eax, dword [ebp - 0x3d0]
cmp eax, edi
je 0x4132c5
cmp dword [ebp - 0x3d4], edi
jne 0x4132cb
mov dword [ebp - 0x3d4], eax
mov eax, dword [ebp - 0x3f0]
mov dword [ebp - 0x3e8], eax
mov dword [ebp - 0x3d0], edi
cmp dword [ebp - 0x3d4], edi
jg 0x4128eb
jmp 0x4132e0
sub dword [ebp - 0x3e4], 2
mov dword [ebp - 0x3d4], edi
mov eax, dword [0x436038]
cmp dword [eax + 0x18], edi
jne 0x413306
mov eax, dword [ebp - 0x400]
mov eax, dword [eax + 8]
sub eax, dword [ebp - 0x3d4]
cmp dword [0x43b888], eax
jge 0x413306
mov dword [0x43b888], eax
lea ecx, [ebp - 0x3f0]
call fcn.00410a14
mov eax, dword [ebp - 0x3f0]
mov byte [eax], 0
inc dword [ebp - 0x3f0]
mov eax, dword [ebp - 0x3f0]
mov byte [eax], 0
cmp dword [ebp - 0x39c], edi
je 0x4133a7
cmp dword [ebp - 0x39c], 2
jne 0x413387
mov eax, dword [ebp - 0x3e4]
cmp eax, dword [ebp - 0x3e0]
jae 0x413387
sub eax, dword [ebp - 0x398]
lea ecx, [ebp - 0x394]
sub eax, ecx
cmp eax, 3
jge 0x41335f
cmp eax, edi
jle 0x413387
cdq
push 3
pop ecx
idiv ecx
mov ecx, dword [ebp - 0x3b4]
shl edx, 6
or ecx, edx
mov edx, dword [ebp - 0x3a8]
lea eax, [edx + eax*4]
mov dword [ebp - 0x3b4], ecx
mov dword [ebp - 0x3ac], eax
jmp 0x41338d
mov ecx, dword [ebp - 0x3b4]
mov eax, dword [ebp - 0x3ac]
mov dword [ebp - 0x3e4], eax
mov eax, dword [ebp - 0x3a0]
mov dword [ebp - 0x3b0], eax
jmp 0x4133ad
mov ecx, dword [ebp - 0x3b4]
mov eax, dword [ebp - 0x400]
cmp dword [eax + 0xc], edi
je 0x4133f0
mov eax, dword [ebp - 0x40c]
mov edx, dword [ebp - 0x3e4]
add eax, 0xc
mov dword [eax], edx
mov dl, byte [ebp - 0x3bc]
mov byte [eax + 4], dl
mov dl, byte [ebp - 0x3b8]
mov byte [eax + 7], cl
and ecx, 1
add ecx, dword [eax - 4]
mov byte [eax + 5], dl
mov dl, byte [ebp - 0x3b0]
mov byte [eax + 6], dl
mov dword [eax + 8], ecx
cmp dword [0x438fd8], edi
pop edi
pop esi
pop ebx
je 0x41341f
push dword [ebp - 0x408]
push dword [ebp - 0x3c8]
call dword [sym.imp.GDI32.dll_SelectObject]
push dword [ebp - 0x3c8]
push dword [0x43b52c]
call dword [sym.imp.USER32.dll_ReleaseDC]
mov ecx, dword [ebp + 0x6c]
mov eax, dword [ebp - 0x3e4]
xor ecx, ebp
call fcn.00422725
add ebp, 0x70
leave
ret 8