Function at 0x436fca
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
mov eax, dword [ebp + 8]
xor ecx, ecx
cmp dword [eax + 0xc], ecx
push ebx
push esi
mov esi, dword [ebp + 0xc]
push edi
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], ecx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x14], ecx
jne 0x437003
mov dword [eax + 0xc], 0x44f62c
mov dword [eax + 0x10], 0x44f632
push 0x5c
lea eax, [ebp + 0xc]
push eax
mov eax, dword [ebp + 8]
push 0
lea ecx, [eax + 4]
push ecx
push eax
call fcn.0042d3bf
mov edi, dword [ebp + 0xc]
xor ebx, ebx
add esp, 0x14
inc ebx
test eax, eax
jne 0x437064
cmp word [esi], 0x5e
jne 0x43703e
mov eax, dword [ebp + 8]
test byte [eax + 8], 2
je 0x43703a
or dword [edi + 0x50], 6
jmp 0x437042
inc esi
inc esi
jmp 0x437042
or dword [edi + 0x50], 2
or dword [edi + 0x50], ebx
and dword [edi + 8], 0
mov eax, dword [ebp + 0x10]
mov dword [edi + 0x14], esi
mov dword [edi + 0x18], eax
mov dword [edi + 0x1c], esi
mov dword [edi + 0x20], eax
and dword [edi + 0x54], 0
mov dword [edi + 0x48], ebx
mov dword [edi + 0x4c], ebx
jmp 0x437067
mov eax, dword [ebp + 0x10]
cmp esi, eax
jae 0x437509
xor edx, edx
cmp dword [ebp - 0x10], edx
je 0x4370da
mov ax, word [esi]
cmp ax, 0x7c
je 0x4370da
cmp ax, 0x29
je 0x4370da
cmp ax, 0x2a
je 0x4370da
cmp ax, 0x2b
je 0x4370da
cmp ax, 0x3f
je 0x4370da
cmp ax, 0x7b
je 0x4370da
push 0x5c
lea eax, [ebp - 4]
push eax
push edx
lea eax, [edi + 0x10]
push eax
lea eax, [edi + 0xc]
push eax
call fcn.0042d3bf
add esp, 0x14
test eax, eax
jne 0x4370d4
mov eax, dword [ebp - 4]
mov dword [eax + 8], edi
mov dword [eax + 0x1c], esi
mov dword [eax + 0x14], esi
mov dword [eax + 0x48], ebx
mov dword [eax + 0x4c], ebx
or dword [eax + 0x54], 0xffffffff
or dword [eax + 0x50], 0x10
mov edi, eax
and dword [ebp - 0x10], 0
xor edx, edx
mov ax, word [esi]
cmp ax, 0x5c
jne 0x437138
mov dword [ebp - 0xc], esi
inc esi
inc esi
mov ax, word [esi]
cmp ax, 0x78
mov dword [ebp + 0xc], esi
jne 0x4370fc
add esi, 4
jmp 0x4374ef
cmp ax, 0x75
jne 0x43710a
add esi, 8
jmp 0x4374ef
cmp ax, 0x30
jb 0x437163
cmp ax, 0x39
ja 0x437163
lea eax, [ebp + 0xc]
push eax
call fcn.004331d9
cmp eax, dword [ebp - 8]
pop ecx
jg 0x437504
mov eax, dword [ebp + 8]
or byte [eax + 9], 1
mov esi, dword [ebp + 0xc]
jmp 0x4374ef
cmp ax, 0x5d
jne 0x437154
cmp dword [ebp - 0x14], edx
je 0x43752a
inc esi
inc esi
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x18], esi
jmp 0x4374ef
cmp dword [ebp - 0x14], edx
je 0x43716a
cmp ax, 0x5b
je 0x43752a
inc esi
inc esi
jmp 0x4374ef
cmp ax, 0x5b
jne 0x437187
mov dword [ebp - 0x1c], esi
inc esi
inc esi
cmp word [esi], 0x2d
mov dword [ebp - 0x14], ebx
je 0x43752a
jmp 0x4374ef
cmp ax, 0x7c
jne 0x437261
lea eax, [ebp - 0x10]
push eax
push esi
push edi
call fcn.0043322e
mov edi, eax
add esp, 0xc
test byte [edi + 0x50], 0x20
je 0x4371b5
mov dword [edi + 0x18], esi
lea eax, [esi + 2]
mov dword [edi + 0x20], eax
mov edi, dword [edi + 8]
jmp 0x43721e
mov eax, dword [edi + 0xc]
test eax, eax
je 0x4371c2
test byte [eax + 0x50], 0x20
jne 0x43721e
push 0x5c
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
test eax, eax
je 0x43721e
mov dword [eax + 8], edi
mov ecx, dword [edi + 0x14]
mov dword [eax + 0x1c], ecx
mov ecx, dword [edi + 0x14]
or dword [eax + 0x54], 0xffffffff
or dword [eax + 0x50], 0x20
mov dword [eax + 0x14], ecx
lea ecx, [esi + 2]
mov dword [eax + 0x18], esi
mov dword [eax + 0x20], ecx
mov dword [eax + 0x48], ebx
mov dword [eax + 0x4c], ebx
mov ecx, dword [edi + 0xc]
test ecx, ecx
mov dword [ebp - 4], ecx
je 0x43720c
mov dword [ecx + 8], eax
mov ecx, dword [ecx]
test ecx, ecx
jne 0x437200
mov dword [ebp - 4], ecx
mov ecx, dword [edi + 0xc]
mov dword [eax + 0xc], ecx
mov ecx, dword [edi + 0x10]
mov dword [eax + 0x10], ecx
mov dword [edi + 0xc], eax
mov dword [edi + 0x10], eax
push 0x5c
lea eax, [ebp - 4]
push eax
push 0
lea eax, [edi + 0x10]
push eax
lea eax, [edi + 0xc]
push eax
call fcn.0042d3bf
add esp, 0x14
test eax, eax
jne 0x4374ef
mov eax, dword [ebp - 4]
mov dword [eax + 8], edi
inc esi
inc esi
mov dword [eax + 0x1c], esi
mov dword [eax + 0x14], esi
mov dword [eax + 0x48], ebx
mov dword [eax + 0x4c], ebx
or dword [eax + 0x54], 0xffffffff
or dword [eax + 0x50], 0x20
mov edi, eax
jmp 0x4374ef
cmp ax, 0x29
jne 0x4372ac
cmp dword [edi + 8], edx
je 0x43752a
cmp dword [edi + 0x18], edx
jne 0x43752a
lea eax, [ebp - 0x10]
push eax
push esi
push edi
call fcn.0043322e
add esp, 0xc
test byte [eax + 0x50], 0x20
je 0x437296
mov dword [eax + 0x18], esi
mov dword [eax + 0x20], esi
mov eax, dword [eax + 8]
mov dword [eax + 0x18], esi
inc esi
inc esi
mov dword [eax + 0x20], esi
mov dword [eax + 0x48], ebx
mov dword [eax + 0x4c], ebx
mov edi, dword [eax + 8]
jmp 0x4374ef
cmp ax, 0x2a
je 0x437359
cmp ax, 0x2b
je 0x437359
cmp ax, 0x3f
je 0x437359
cmp ax, 0x7b
je 0x437359
cmp ax, 0x28
jne 0x437351
push 0x5c
lea eax, [ebp - 4]
push eax
push 0
lea eax, [edi + 0x10]
push eax
lea eax, [edi + 0xc]
push eax
call fcn.0042d3bf
add esp, 0x14
test eax, eax
jne 0x437163
mov eax, dword [ebp - 4]
mov dword [eax + 8], edi
mov dword [eax + 0x1c], esi
inc esi
inc esi
inc dword [ebp - 8]
mov ecx, dword [ebp - 8]
mov dword [eax + 0x14], esi
mov dword [eax + 0x54], ecx
cmp word [esi], 0x3f
jne 0x43725a
inc esi
inc esi
mov cx, word [esi]
cmp cx, 0x3a
je 0x437340
cmp cx, 0x3d
jne 0x437332
or dword [eax + 0x50], 0x40
jmp 0x437340
cmp cx, 0x21
jne 0x43752a
or byte [eax + 0x51], 1
or dword [eax + 0x54], 0xffffffff
dec dword [ebp - 8]
inc esi
inc esi
mov dword [eax + 0x14], esi
jmp 0x43725a
mov dword [ebp - 0xc], esi
jmp 0x437163
lea ecx, [edi + 0x10]
mov ebx, dword [ecx]
cmp ebx, edx
je 0x43737c
mov eax, dword [ebx + 0x18]
lea edx, [eax + 2]
cmp esi, edx
jne 0x43737a
cmp word [eax], 0x29
jne 0x43737a
mov dword [ebp - 4], ebx
jmp 0x43740d
xor edx, edx
cmp esi, dword [ebp - 0x18]
jne 0x4373b5
push 0x5c
lea eax, [ebp - 4]
push eax
push 0
push ecx
lea eax, [edi + 0xc]
push eax
call fcn.0042d3bf
add esp, 0x14
test eax, eax
jne 0x43740a
mov ebx, dword [ebp - 4]
mov eax, dword [ebp - 0x1c]
mov dword [ebx + 8], edi
mov dword [ebx + 0x1c], eax
mov dword [ebx + 0x14], eax
mov eax, dword [ebp - 0x18]
mov dword [ebx + 0x18], eax
or dword [ebx + 0x54], 0xffffffff
jmp 0x43740d
cmp dword [ebp - 0xc], edx
je 0x43752a
push 0x5c
lea eax, [ebp - 4]
push eax
push 0
push ecx
lea eax, [edi + 0xc]
push eax
call fcn.0042d3bf
add esp, 0x14
test eax, eax
jne 0x43740a
mov ebx, dword [ebp - 4]
mov eax, dword [ebp - 0xc]
mov dword [ebx + 8], edi
mov dword [ebx + 0x1c], eax
mov dword [ebx + 0x14], eax
mov dword [ebx + 0x18], esi
or dword [ebx + 0x54], 0xffffffff
mov eax, dword [ebx + 0x18]
sub eax, dword [ebx + 0x14]
and eax, 0xfffffffe
cmp eax, 2
jne 0x43740d
mov eax, dword [ebx + 0x14]
cmp word [eax], 0x2e
jne 0x43740d
or dword [ebx + 0x50], 8
jmp 0x43740d
mov ebx, dword [ebp - 4]
mov ax, word [esi]
cmp ax, 0x2a
jne 0x437420
and dword [ebx + 0x48], 0
or dword [ebx + 0x4c], 0xffffffff
jmp 0x43748f
cmp ax, 0x2b
jne 0x43742f
mov dword [ebx + 0x48], 1
jmp 0x43741a
cmp ax, 0x3f
jne 0x437442
and dword [ebx + 0x48], 0
mov dword [ebx + 0x4c], 1
jmp 0x43748f
cmp ax, 0x7b
jne 0x43748f
lea eax, [ebp + 0xc]
inc esi
inc esi
push eax
push esi
mov dword [ebp + 0xc], esi
call fcn.0042e714
mov esi, dword [ebp + 0xc]
pop ecx
pop ecx
mov dword [ebx + 0x48], eax
mov cx, word [esi]
cmp cx, 0x7d
je 0x43748c
cmp cx, 0x2c
jne 0x43752a
inc esi
inc esi
cmp word [esi], 0x7d
mov dword [ebp + 0xc], esi
je 0x43741a
lea eax, [ebp + 0xc]
push eax
push esi
call fcn.0042e714
mov esi, dword [ebp + 0xc]
pop ecx
pop ecx
mov dword [ebx + 0x4c], eax
mov eax, dword [ebx + 0x4c]
cmp eax, 1
jbe 0x4374c9
mov eax, dword [ebx + 0x18]
mov edx, dword [ebx + 0x14]
lea ecx, [eax - 2]
cmp ecx, edx
jb 0x4374b4
mov cx, word [eax - 2]
cmp cx, 0x24
je 0x43752a
cmp cx, 0x5e
je 0x43752a
lea ecx, [eax - 4]
cmp ecx, edx
jb 0x4374c9
cmp word [eax - 4], 0x5c
jne 0x4374c9
cmp word [eax - 2], 0x62
je 0x43752a
mov eax, dword [ebx + 0x4c]
xor ecx, ecx
inc ecx
cmp eax, ecx
jbe 0x4374db
cmp dword [ebx + 0x48], eax
jae 0x4374db
mov dword [ebp - 0x10], ecx
and dword [ebp - 0xc], 0
inc esi
inc esi
cmp word [esi], 0x3f
jne 0x4374e9
inc esi
inc esi
mov dword [ebx + 0x20], esi
xor ebx, ebx
inc ebx
cmp esi, dword [ebp + 0x10]
jb 0x43706f
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x18]
jbe 0x437509
mov esi, eax
jmp 0x43752a
mov esi, dword [ebp - 0xc]
jmp 0x43752a
push 0
push esi
push edi
call fcn.0043322e
add esp, 0xc
test byte [eax + 0x50], 0x20
je 0x437524
mov dword [eax + 0x18], esi
mov dword [eax + 0x20], esi
mov eax, dword [eax + 8]
cmp dword [eax + 0x18], 0
jne 0x43753d
push dword [ebp + 8]
call fcn.0043338f
mov eax, esi
sub eax, dword [ebp - 0x20]
pop ecx
sar eax, 1
inc eax
jmp 0x437548
mov eax, dword [ebp - 8]
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x14], eax
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret