Function at 0x44e2f0
Capabilities:
Parse credit card information

Disassembly:
mov al, byte [0x884ef8]
sub esp, 0x2c
test al, al
je 0x44e317
push 0xb07
push str.D:descent3mainLoadLevel.cpp
push 0x8000
call fcn.004cb090
add esp, 0xc
mov dword [esp + 0x14], eax
push ebp
mov ebp, dword [esp + 0x34]
push ebp
call fcn.004ca5d0
mov ecx, eax
add esp, 4
test ecx, ecx
mov dword [esp + 0x14], ecx
mov dword [0x8b5cb4], ecx
mov dword [esp + 4], 0
jle 0x44e68e
push ebx
push esi
push edi
mov dword [esp + 0x14], 0x895cb8
jmp 0x44e352
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x10]
mov esi, 0xa
cdq
idiv esi
test edx, edx
jne 0x44e3a9
mov eax, dword [0x8941a4]
test eax, eax
je 0x44e38d
mov eax, dword [0x8856d0]
cdq
idiv ecx
mov dword [esp + 0x40], eax
fild dword [esp + 0x40]
fidiv dword [0x8941a4]
fiadd dword [0x894138]
fstp dword [esp + 0x18]
jmp 0x44e395
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x18]
push str.LMAP
push eax
push 2
call fcn.0043d930
add esp, 0xc
push ebp
call fcn.004ca5d0
mov ebx, eax
push ebp
mov dword [esp + 0x48], ebx
call fcn.004ca5d0
mov esi, eax
push ebp
mov dword [esp + 0x28], esi
call fcn.004ca610
mov byte [esp + 0x34], al
mov al, byte [0x884ef8]
add esp, 0xc
test al, al
jne 0x44e3fd
mov ecx, dword [esp + 0x28]
push 1
and ecx, 0xff
push ecx
push esi
push ebx
call fcn.0044b6e0
mov edx, dword [esp + 0x24]
mov esi, eax
add esp, 0x10
mov dword [esp + 0x2c], esi
mov word [edx], si
jmp 0x44e401
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x44]
cmp eax, 0x26
jg 0x44e434
lea edi, [esi + esi*4]
push ebp
shl edi, 3
call fcn.004ca610
mov ecx, dword [0x8856c4]
push ebp
mov byte [edi + ecx], al
call fcn.004ca610
mov edx, dword [0x8856c4]
add esp, 8
mov byte [edi + edx + 1], al
jmp 0x44e4a8
cmp eax, 0x42
jge 0x44e46d
lea edi, [esi + esi*4]
push ebp
shl edi, 3
call fcn.004ca670
call fcn.004b6898
mov ecx, dword [0x8856c4]
push ebp
mov byte [edi + ecx], al
call fcn.004ca670
add esp, 8
call fcn.004b6898
mov edx, dword [0x8856c4]
mov byte [edi + edx + 1], al
jmp 0x44e4a8
push ebp
call fcn.004ca610
push ebp
movsx ebx, al
call fcn.004ca610
movsx ecx, al
mov al, byte [0x884ef8]
add esp, 8
test al, al
jne 0x44e4a4
mov edx, dword [0x8856c4]
lea eax, [esi + esi*4]
shl eax, 3
mov byte [eax + edx], bl
mov edx, dword [0x8856c4]
mov byte [eax + edx + 1], cl
mov ebx, dword [esp + 0x40]
push ebp
call fcn.004ca670
fstp dword [esp + 0x34]
push ebp
call fcn.004ca670
fstp dword [esp + 0x3c]
push ebp
call fcn.004ca670
mov al, byte [0x884ef8]
add esp, 0xc
fstp dword [esp + 0x38]
test al, al
jne 0x44e4f3
mov ecx, dword [0x8856c4]
lea eax, [esi + esi*4]
lea edx, [ecx + eax*8 + 4]
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
mov dword [edx], eax
mov eax, dword [esp + 0x38]
mov dword [edx + 4], ecx
mov dword [edx + 8], eax
mov edi, dword [esp + 0x44]
cmp edi, 0x3a
jge 0x44e52f
push ebp
call fcn.004ca670
fstp st(0)
push ebp
call fcn.004ca670
fstp st(0)
push ebp
call fcn.004ca670
fstp st(0)
push ebp
call fcn.004ca670
fstp st(0)
push ebp
call fcn.004ca670
fstp st(0)
push ebp
call fcn.004ca670
fstp st(0)
add esp, 0x18
cmp edi, 0x3b
jl 0x44e584
push ebp
call fcn.004ca670
fstp dword [esp + 0x34]
push ebp
call fcn.004ca670
fstp dword [esp + 0x3c]
push ebp
call fcn.004ca670
mov al, byte [0x884ef8]
add esp, 0xc
fstp dword [esp + 0x38]
test al, al
jne 0x44e5b8
mov ecx, dword [0x8856c4]
lea eax, [esi + esi*4]
shl eax, 3
lea edx, [eax + ecx + 0x10]
mov ecx, dword [esp + 0x30]
mov dword [edx], ecx
mov ecx, dword [esp + 0x34]
mov dword [edx + 4], ecx
mov ecx, dword [esp + 0x38]
mov dword [edx + 8], ecx
jmp 0x44e5ae
mov edx, dword [0x8856c4]
lea eax, [esi + esi*4]
shl eax, 3
xor ecx, ecx
mov dword [eax + edx + 0x10], ecx
mov edx, dword [0x8856c4]
mov dword [eax + edx + 0x14], ecx
mov ecx, dword [0x8856c4]
mov dword [eax + ecx + 0x18], 0x3f800000
mov cl, byte [0x884ef8]
test cl, cl
je 0x44e5c2
mov edi, dword [esp + 0x24]
mov dword [esp + 0x40], edi
jmp 0x44e5de
mov ecx, dword [0x8856c4]
xor edx, edx
mov dx, word [eax + ecx + 2]
push edx
call fcn.004c4d80
add esp, 4
mov dword [esp + 0x40], eax
mov edi, eax
mov eax, dword [esp + 0x44]
mov esi, dword [esp + 0x1c]
cmp eax, 0x25
jg 0x44e60c
imul esi, ebx
test esi, esi
jle 0x44e61a
mov ebx, esi
push ebp
call fcn.004ca5f0
mov word [edi], ax
add esp, 4
add edi, 2
dec ebx
jne 0x44e5f4
mov edi, dword [esp + 0x40]
jmp 0x44e61a
imul esi, ebx
push esi
push edi
push ebp
call fcn.0044d8f0
add esp, 0xc
cmp dword [esp + 0x44], 0x40
jge 0x44e66b
test esi, esi
jle 0x44e66b
mov ecx, edi
mov ax, word [ecx]
cmp ax, 0x7e0
jne 0x44e634
xor eax, eax
jmp 0x44e662
xor edx, edx
mov edi, eax
mov dl, ah
and eax, 0xffff
and edx, 0xf8
shr edi, 3
shl eax, 3
shl edx, 5
and edi, 0xf8
sar eax, 3
add edx, edi
and eax, 0x1f
lea eax, [eax + edx*4]
or ah, 0x80
mov word [ecx], ax
add ecx, 2
dec esi
jne 0x44e627
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x20]
inc eax
add edx, 2
cmp eax, ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
jl 0x44e34e
pop edi
pop esi
pop ebx
mov al, byte [0x884ef8]
pop ebp
test al, al
je 0x44e6a5
mov eax, dword [esp + 0x14]
push eax
call fcn.004cb110
add esp, 4
add esp, 0x2c
ret