Function at 0x43acb0
Capabilities:
Parse credit card information

Disassembly:
push 0xffffffffffffffff
push 0x4d4af8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x28
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 4]
mov eax, dword [eax]
test eax, eax
push ebx
push ebp
push esi
push edi
mov dword [esp + 0x10], ecx
mov dword [esp + 0x1c], eax
je 0x43b666
mov ecx, dword [esp + 0x1c]
mov ebx, dword [ecx + 8]
cmp dword [ebx + 8], 0x4a
mov dword [ebx + 0x118], 1
jne 0x43ae07
push 1
mov ecx, ebx
call fcn.00418090
mov edx, dword [esp + 0x10]
mov ecx, dword [edx + 0xc]
push ebx
mov esi, eax
call fcn.0042e840
fld dword [ebx + 0x10c]
fcomp dword [0x4f911c]
fld dword [esi + 0x148]
fnstsw ax
test ah, 5
jp 0x43ad37
fabs
fchs
jmp 0x43ad39
fabs
fstp dword [esi + 0x148]
xor esi, esi
push esi
push 2
mov ecx, ebx
call fcn.00419230
mov ebp, eax
cmp dword [ebp + 0x20], esi
jne 0x43ae07
push 0x54
call fcn.004c3f1a
add esp, 4
mov dword [esp + 0x48], eax
cmp eax, esi
mov dword [esp + 0x40], esi
je 0x43ad75
mov ecx, eax
call fcn.00407010
mov esi, eax
mov edi, 0x3e99999a
mov ecx, esi
mov dword [esp + 0x40], 0xffffffff
mov dword [esi + 0x4c], edi
mov dword [esi + 0x44], 0x3f060a92
mov dword [esi + 0x48], 0x3ff47645
call fcn.00407520
mov ecx, esi
mov dword [esi + 0x2c], edi
call fcn.00407520
fld dword [esi + 0x30]
fadd dword [0x4d7b20]
lea eax, [ebp + 0x30]
push eax
mov ecx, esi
fst dword [esi + 0x34]
fld st(0)
fmulp st(1)
fst dword [esi + 0x3c]
fsub dword [esi + 0x38]
fdivr qword [0x4d7388]
fstp dword [esi + 0x40]
call fcn.00438070
fld dword [ebp + 0x2c]
fsub dword [esi + 0x18]
fld dword [ebp + 0x28]
fsub dword [esi + 0x14]
fld dword [ebp + 0x24]
fsub dword [esi + 0x10]
fadd dword [esi + 4]
fstp dword [esi + 4]
fadd dword [esi + 8]
fstp dword [esi + 8]
fadd dword [esi + 0xc]
fstp dword [esi + 0xc]
mov ecx, dword [ebp + 0x24]
mov dword [esi + 0x10], ecx
mov edx, dword [ebp + 0x28]
mov dword [esi + 0x14], edx
mov eax, dword [ebp + 0x2c]
mov dword [esi + 0x18], eax
mov dword [ebp + 0x20], esi
cmp dword [ebx + 8], 0x49
jne 0x43b039
push 0
push 2
mov ecx, ebx
call fcn.00419230
mov ecx, dword [eax + 0x1c]
test ecx, ecx
mov dword [esp + 0x48], eax
jne 0x43afc9
push 0x54
call fcn.004c3f1a
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
mov dword [esp + 0x40], 1
je 0x43ae50
mov ecx, eax
call fcn.00407010
mov esi, eax
jmp 0x43ae52
xor esi, esi
mov edi, 0x3e99999a
mov ecx, esi
mov dword [esp + 0x40], 0xffffffff
mov dword [esi + 0x4c], edi
mov dword [esi + 0x44], 0x3f060a92
mov dword [esi + 0x48], 0x3ff47645
call fcn.00407520
mov ecx, esi
mov dword [esi + 0x2c], edi
call fcn.00407520
fld dword [esi + 0x30]
fadd dword [0x4d7b20]
mov edi, dword [esp + 0x48]
lea ebp, [edi + 0x30]
lea ecx, [esp + 0x20]
fst dword [esi + 0x34]
push ecx
fld st(0)
mov ecx, esi
fmulp st(1)
fst dword [esi + 0x3c]
fsub dword [esi + 0x38]
fdivr qword [0x4d7388]
fstp dword [esi + 0x40]
fld dword [ebp + 8]
fchs
fld dword [ebp + 4]
fchs
fld dword [ebp]
fchs
fstp dword [esp + 0x24]
fstp dword [esp + 0x28]
fstp dword [esp + 0x2c]
call fcn.00438070
fld dword [edi + 0x2c]
add edi, 0x24
fsub dword [esi + 0x18]
mov edx, edi
fld dword [edi + 4]
push 0x54
fsub dword [esi + 0x14]
fld dword [edi]
fsub dword [esi + 0x10]
fadd dword [esi + 4]
fstp dword [esi + 4]
fadd dword [esi + 8]
fstp dword [esi + 8]
fadd dword [esi + 0xc]
fstp dword [esi + 0xc]
mov eax, dword [edx]
mov dword [esi + 0x10], eax
mov ecx, dword [edx + 4]
mov eax, dword [esp + 0x4c]
mov dword [esi + 0x14], ecx
mov edx, dword [edx + 8]
mov dword [esi + 0x18], edx
mov dword [eax + 0x1c], esi
call fcn.004c3f1a
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
mov dword [esp + 0x40], 2
je 0x43af33
mov ecx, eax
call fcn.00407010
mov esi, eax
jmp 0x43af35
xor esi, esi
mov ecx, esi
mov dword [esp + 0x40], 0xffffffff
mov dword [esi + 0x4c], 0x3e99999a
mov dword [esi + 0x44], 0x3f060a92
mov dword [esi + 0x48], 0x3ff47645
call fcn.00407520
mov ecx, esi
mov dword [esi + 0x2c], 0x3e99999a
call fcn.00407520
fld dword [esi + 0x30]
fadd dword [0x4d7b20]
push ebp
mov ecx, esi
fst dword [esi + 0x34]
fld st(0)
fmulp st(1)
fst dword [esi + 0x3c]
fsub dword [esi + 0x38]
fdivr qword [0x4d7388]
fstp dword [esi + 0x40]
call fcn.00438070
fld dword [edi + 8]
fsub dword [esi + 0x18]
fld dword [edi + 4]
fsub dword [esi + 0x14]
fld dword [edi]
fsub dword [esi + 0x10]
fadd dword [esi + 4]
fstp dword [esi + 4]
fadd dword [esi + 8]
fstp dword [esi + 8]
fadd dword [esi + 0xc]
fstp dword [esi + 0xc]
mov ecx, dword [edi]
mov dword [esi + 0x10], ecx
mov edx, dword [edi + 4]
mov ecx, dword [esp + 0x48]
mov dword [esi + 0x14], edx
mov eax, dword [edi + 8]
mov dword [esi + 0x18], eax
mov dword [ecx + 0x20], esi
push 2
mov ecx, ebx
call fcn.00418090
mov ecx, eax
call fcn.00401580
push 3
mov ecx, ebx
call fcn.00418090
mov ecx, eax
call fcn.00401580
push 2
mov ecx, ebx
call fcn.00418090
mov eax, dword [eax + 0xa8]
mov eax, dword [eax]
mov edi, 0x3e4ccccd
mov dword [eax + 0x128], edi
mov esi, 0x3d4ccccd
mov dword [eax + 0x13c], esi
push 3
mov ecx, ebx
mov dword [eax + 0x150], esi
call fcn.00418090
mov eax, dword [eax + 0xa8]
mov eax, dword [eax]
mov dword [eax + 0x128], edi
mov dword [eax + 0x13c], esi
mov dword [eax + 0x150], esi
cmp dword [ebx + 8], 0x25
jne 0x43b06e
push 0
mov ecx, ebx
call fcn.00417e50
mov esi, eax
test esi, esi
je 0x43b06e
push 0
mov ecx, esi
call fcn.00418090
mov ecx, eax
call fcn.00401580
push 1
mov ecx, esi
call fcn.00418090
mov ecx, eax
call fcn.00401580
cmp dword [ebx + 8], 0x13
jne 0x43b091
push 2
mov ecx, ebx
call fcn.00418090
test eax, eax
je 0x43b59b
mov ecx, eax
call fcn.00401580
jmp 0x43b59b
lea edx, [ebx + 0x24]
push 0x5051cc
push edx
call fcn.004c4d20
add esp, 8
test eax, eax
je 0x43b101
push 0
push 3
mov ecx, ebx
call fcn.00419230
mov esi, eax
mov eax, dword [esi + 0x1c]
test eax, eax
jne 0x43b59b
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0xc]
push 1
push esi
call fcn.004274f0
mov ecx, dword [esi + 0x18]
mov edx, dword [ecx + 0x11c]
fld dword [edx + 0xf4]
mov ebp, eax
call fcn.004c4770
mov ecx, dword [ebp + 4]
mov dword [ecx + 0x1034], eax
push 1
mov ecx, ebx
call fcn.00418090
mov ecx, eax
call fcn.00401580
jmp 0x43b59b
mov eax, dword [ebx + 8]
cmp eax, 0x34
jne 0x43b14c
push 0
push 3
mov ecx, ebx
call fcn.00419230
mov esi, eax
mov eax, dword [esi + 0x1c]
test eax, eax
jne 0x43b59b
mov edx, dword [esp + 0x10]
mov ecx, dword [edx + 0xc]
push esi
call fcn.00427d30
mov ebp, eax
mov eax, dword [esi + 0x18]
mov ecx, dword [eax + 0x11c]
fld dword [ecx + 0xf4]
call fcn.004c4770
mov edx, dword [ebp + 4]
jmp 0x43b595
cmp eax, 0x31
je 0x43b566
cmp eax, 0x33
je 0x43b566
cmp eax, 0x30
je 0x43b566
cmp eax, 0x4c
je 0x43b566
cmp eax, 0x4d
je 0x43b566
cmp eax, 0x4e
je 0x43b566
cmp eax, 0x3a
jne 0x43b229
push 0
push 4
mov ecx, ebx
call fcn.00419230
mov ebp, eax
mov eax, dword [ebp + 0x20]
test eax, eax
jne 0x43b59b
push 8
call fcn.004c3f1a
add esp, 4
mov dword [esp + 0x48], eax
test eax, eax
mov dword [esp + 0x40], 3
je 0x43b1c8
mov ecx, eax
call fcn.00444640
mov edi, eax
jmp 0x43b1ca
xor edi, edi
mov esi, dword [edi]
push 0x41700000
mov ecx, esi
mov dword [esp + 0x44], 0xffffffff
mov dword [esi + 0x4c], 0x3e99999a
call fcn.00438110
mov ecx, esi
mov dword [esi + 0x2c], 0x3fc00000
call fcn.00407520
push 0
mov ecx, esi
call fcn.004078a0
lea eax, [ebp + 0x30]
push eax
mov ecx, esi
call fcn.00438070
lea ecx, [ebp + 0x24]
push ecx
mov ecx, esi
call fcn.00437fb0
mov edx, dword [esp + 0x10]
mov dword [ebp + 0x20], edi
mov ecx, dword [edx + 0xc]
push ebp
call fcn.004280a0
jmp 0x43b59b
cmp eax, 0x3d
jne 0x43b3aa
push 0
push 4
mov ecx, ebx
call fcn.00419230
mov ebp, eax
mov eax, dword [ebp + 0x20]
test eax, eax
jne 0x43b309
push 8
call fcn.004c3f1a
add esp, 4
mov dword [esp + 0x48], eax
test eax, eax
mov dword [esp + 0x40], 4
je 0x43b271
mov ecx, eax
call fcn.00444640
mov dword [esp + 0x48], eax
jmp 0x43b279
mov dword [esp + 0x48], 0
mov eax, dword [esp + 0x48]
mov esi, dword [eax]
push 0x41700000
mov ecx, esi
mov dword [esp + 0x44], 0xffffffff
mov dword [esi + 0x4c], 0x3e99999a
call fcn.00438110
mov ecx, esi
mov dword [esi + 0x2c], 0x3e4ccccd
call fcn.00407520
push 0x40000000
mov ecx, esi
call fcn.004078a0
lea ecx, [ebp + 0x30]
push ecx
mov ecx, esi
call fcn.00438070
lea edi, [ebp + 0x24]
push edi
mov ecx, esi
call fcn.00437fb0
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x10]
mov dword [ebp + 0x20], edx
mov ecx, dword [eax + 0xc]
push ebp
call fcn.004280a0
mov edx, dword [edi + 4]
mov eax, dword [eax]
mov ecx, dword [edi]
mov edi, dword [edi + 8]
mov dword [esp + 0x30], edx
fld dword [esp + 0x30]
fadd dword [0x4d72fc]
add eax, 4
mov dword [eax], ecx
fstp dword [esp + 0x30]
mov ecx, dword [esp + 0x30]
mov dword [eax + 4], ecx
mov dword [eax + 8], edi
push 1
push 4
mov ecx, ebx
call fcn.00419230
mov ebp, eax
mov eax, dword [ebp + 0x20]
test eax, eax
jne 0x43b59b
push 8
call fcn.004c3f1a
add esp, 4
mov dword [esp + 0x48], eax
test eax, eax
mov dword [esp + 0x40], 5
je 0x43b346
mov ecx, eax
call fcn.00444640
mov edi, eax
jmp 0x43b348
xor edi, edi
mov esi, dword [edi]
push 0x41700000
mov ecx, esi
mov dword [esp + 0x44], 0xffffffff
mov dword [esi + 0x4c], 0x3e99999a
call fcn.00438110
mov ecx, esi
mov dword [esi + 0x2c], 0x3e4ccccd
call fcn.00407520
push 0x40000000
mov ecx, esi
call fcn.004078a0
lea edx, [ebp + 0x30]
push edx
mov ecx, esi
call fcn.00438070
lea eax, [ebp + 0x24]
push eax
mov ecx, esi
call fcn.00437fb0
mov ecx, dword [esp + 0x10]
mov dword [ebp + 0x20], edi
mov ecx, dword [ecx + 0xc]
push ebp
call fcn.004280a0
jmp 0x43b59b
cmp eax, 0x3c
jne 0x43b42d
push str.Flag
mov ecx, ebx
call fcn.004188d0
mov edi, eax
mov eax, dword [edi + 0x1c]
test eax, eax
jne 0x43b59b
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 0xc]
mov edx, dword [eax + 0x103c]
mov eax, dword [eax]
mov ecx, dword [eax + 0x288]
add edx, 0x2c
push edx
mov edx, dword [ecx + 8]
mov eax, dword [edx + 0xc]
mov ecx, dword [eax + 0xc]
push str.flag
call fcn.00460e50
mov edx, dword [esi + 0xc]
push eax
lea ecx, [edi + 0x24]
push ecx
mov ecx, dword [edx + 0x1020]
call fcn.00424310
mov esi, eax
mov ebp, 0xc8
mov edi, edi
mov ecx, dword [esi + 4]
push 0x3f847ae1
push 0x40000000
call fcn.00412330
dec ebp
jne 0x43b410
mov dword [edi + 0x1c], esi
jmp 0x43b59b
cmp eax, 0x3b
jne 0x43b4c7
push 0
push 4
mov ecx, ebx
call fcn.00419230
mov ebp, eax
mov eax, dword [ebp + 0x20]
test eax, eax
jne 0x43b59b
push 8
call fcn.004c3f1a
add esp, 4
mov dword [esp + 0x48], eax
test eax, eax
mov dword [esp + 0x40], 6
je 0x43b473
mov ecx, eax
call fcn.00444640
mov edi, eax
jmp 0x43b475
xor edi, edi
mov esi, dword [edi]
push 0x41700000
mov ecx, esi
mov dword [esp + 0x44], 0xffffffff
mov dword [esi + 0x4c], 0x3e99999a
call fcn.00438110
mov ecx, esi
mov dword [esi + 0x2c], 0x3f000000
call fcn.00407520
push 0
mov ecx, esi
call fcn.004078a0
lea eax, [ebp + 0x30]
push eax
mov ecx, esi
call fcn.00438070
lea ecx, [ebp + 0x24]
push ecx
mov ecx, esi
call fcn.00437fb0
mov dword [ebp + 0x20], edi
jmp 0x43b59b
cmp eax, 7
jne 0x43b59b
xor edi, edi
push edi
push 0xb
mov ecx, ebx
call fcn.00419230
mov ebp, eax
mov eax, dword [ebp + 0x20]
test eax, eax
jne 0x43b55a
push 0x54
call fcn.004c3f1a
add esp, 4
mov dword [esp + 0x48], eax
test eax, eax
mov dword [esp + 0x40], 7
je 0x43b50a
mov ecx, eax
call fcn.00407010
mov esi, eax
jmp 0x43b50c
xor esi, esi
push 0x41c80000
mov ecx, esi
mov dword [esp + 0x44], 0xffffffff
mov dword [esi + 0x4c], 0x3e19999a
call fcn.00438110
mov ecx, esi
mov dword [esi + 0x2c], 0x3f000000
call fcn.00407520
push 0x40000000
mov ecx, esi
call fcn.004078a0
lea edx, [ebp + 0x30]
push edx
mov ecx, esi
call fcn.00438070
lea eax, [ebp + 0x24]
push eax
mov ecx, esi
call fcn.00437fb0
mov dword [ebp + 0x20], esi
inc edi
cmp edi, 2
jb 0x43b4d2
jmp 0x43b59b
push 0
push 3
mov ecx, ebx
call fcn.00419230
mov ecx, dword [eax + 0x1c]
test ecx, ecx
jne 0x43b59b
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx + 0xc]
push eax
call fcn.00427d00
fld dword [ebx + 0xf4]
mov esi, eax
call fcn.004c4770
mov edx, dword [esi + 4]
mov dword [edx + 0x1034], eax
xor eax, eax
mov dword [0x50df60], eax
mov cl, byte [ebx + 0x24]
test cl, cl
je 0x43b5ce
lea esp, [esp]
mov cl, byte [eax + 0x5051e8]
test cl, cl
je 0x43b5ce
cmp byte [ebx + eax + 0x24], cl
jne 0x43b5ce
inc eax
mov dword [0x50df60], eax
mov cl, byte [ebx + eax + 0x24]
test cl, cl
jne 0x43b5b0
cmp dword [ebx + 8], 0x35
jne 0x43b613
push 0x5051f4
mov ecx, ebx
call fcn.004188d0
mov esi, eax
mov eax, dword [esi + 0x1c]
test eax, eax
jne 0x43b613
mov edi, dword [esp + 0x10]
mov ecx, dword [edi + 0xc]
push esi
call fcn.00427bf0
mov ebp, eax
mov ecx, dword [ebp + 4]
add esi, 0x30
push esi
call fcn.00437e90
mov eax, dword [ebp + 4]
mov dword [eax + 0x1034], 1
jmp 0x43b617
mov edi, dword [esp + 0x10]
mov eax, dword [ebx + 8]
cmp eax, 0xc
jne 0x43b62a
mov ecx, dword [edi + 0xc]
push ebx
call fcn.00426760
jmp 0x43b654
cmp eax, 0x3e
jne 0x43b63a
mov ecx, dword [edi + 0xc]
push ebx
call fcn.00426830
jmp 0x43b654
cmp eax, 0x2c
jne 0x43b654
fld dword [ebx + 0xf4]
call fcn.004c4770
mov ecx, dword [edi + 0xc]
push eax
push ebx
call fcn.00426890
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx]
test eax, eax
mov dword [esp + 0x1c], eax
jne 0x43ace5
mov edi, dword [esp + 0x10]
xor eax, eax
mov dword [esp + 0x48], eax
jmp 0x43b676
mov eax, dword [esp + 0x48]
xor ebx, ebx
test eax, eax
jne 0x43b683
mov ebx, 0xff
jmp 0x43b699
cmp eax, 1
jne 0x43b68f
mov ebx, 0xfe
jmp 0x43b699
cmp eax, 2
jne 0x43b699
mov ebx, 0xfd
mov ecx, dword [edi + 0x1c]
push ebx
call fcn.00418720
mov ebp, eax
xor esi, esi
test ebp, ebp
jbe 0x43b6c6
lea ebx, [ebx]
mov ecx, dword [edi + 0x1c]
push esi
push ebx
call fcn.00419230
inc esi
cmp esi, ebp
mov dword [eax + 0x40], 0
jb 0x43b6b0
mov eax, dword [esp + 0x48]
inc eax
cmp eax, 3
mov dword [esp + 0x48], eax
jb 0x43b672
mov ecx, dword [esp + 0x38]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x34
ret 4