Function at 0x444071
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1940
call fcn.0044ff40
push ebx
push esi
push edi
xor edi, edi
cmp dword [ebp + 0x10], edi
jne 0x444098
cmp byte [ebp + 0x14], 0xff
jne 0x444098
mov byte [ebp + 0x14], 0
mov byte [ebp - 0x19], 0
jmp 0x4440a2
cmp byte [ebp + 0x14], 0
mov byte [ebp - 0x19], 1
jne 0x4440d8
mov dword [ebp - 0x24], edi
push 0x20
pop eax
call fcn.004474b9
test eax, eax
mov edi, dword [ebp + 8]
mov esi, dword [ebp - 0x24]
je 0x4447ce
push dword [ebp + 0x14]
xor ecx, ecx
mov cx, word [edi + 0x48]
push esi
push dword [edi + 0x4c]
push ecx
mov cl, byte [ebp + 0xc]
call fcn.00448632
mov ebx, eax
jmp 0x4447d0
movzx esi, byte [ebp + 0x14]
mov eax, esi
shl eax, 4
mov dword [ebp - 0x28], esi
call fcn.004474b9
cmp eax, edi
mov dword [ebp - 0x24], eax
jne 0x444102
push 0x45282f
push str.Out_of_memory.
mov ecx, dword [ebp + 8]
jmp 0x444e83
cmp esi, edi
mov dword [ebp - 0x14], edi
jle 0x4440a5
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x14]
mov esi, dword [eax + ecx*4]
mov eax, dword [ebp + 0x18]
test eax, eax
je 0x444121
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x18], eax
jmp 0x444125
and dword [ebp - 0x18], 0
mov ebx, ecx
shl ebx, 4
add ebx, dword [ebp - 0x24]
cmp byte [ebp + 0xc], 0x2b
mov byte [ebx + 1], 0
jne 0x44418b
cmp ecx, 1
jne 0x444168
mov edi, esi
call fcn.00416a42
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x14]
mov al, byte [ebp + 0xc]
call fcn.0043fede
test al, al
mov byte [ebx], al
je 0x44422c
mov cl, byte [esi]
test cl, cl
jne 0x4441b7
mov byte [ebx], cl
jmp 0x444266
jle 0x444146
mov eax, dword [ebp - 0x2c]
test eax, eax
jl 0x444180
cmp eax, 1
jle 0x444146
cmp eax, 2
jle 0x444180
cmp eax, 5
jle 0x444146
mov edi, dword [ebp - 0x18]
call fcn.00445bcc
mov byte [ebx + 1], al
cmp byte [ebp + 0xc], 0x68
jne 0x444146
cmp dword [ebp - 0x14], 1
jne 0x444146
mov eax, dword [ebp + 0x10]
mov eax, dword [eax]
test eax, eax
je 0x444146
push str.Parse
push eax
call dword [sym.imp.MSVCR71.dll__stricmp]
test eax, eax
pop ecx
pop ecx
jne 0x444146
mov byte [ebx], 1
jmp 0x44415b
mov edi, dword [ebp - 0x18]
and dword [ebp - 0x10], 0
mov eax, esi
sub edi, esi
cmp cl, byte [0x45b0f9]
jne 0x4441d6
cmp dword [ebp - 0x18], 0
je 0x4441e0
cmp byte [edi + eax], 0
je 0x4441e0
inc dword [ebp - 0x10]
inc eax
mov cl, byte [eax]
test cl, cl
jne 0x4441c2
mov eax, dword [ebp - 0x10]
cmp byte [eax + esi], 0
jne 0x444266
xor edi, edi
push edi
push edi
push edi
push dword [ebp + 8]
call fcn.0040bcf1
cmp eax, edi
je 0x444da7
cmp byte [ebx], 2
jne 0x444219
mov cl, byte [eax + 0x17]
test cl, cl
jne 0x444210
mov ecx, dword [eax + 0xc]
mov cl, byte [ecx + 0x17]
cmp cl, 2
ja 0x44478a
mov dword [ebx + 4], 0x45282f
mov word [ebx + 2], di
mov dword [ebx + 8], eax
jmp 0x444776
mov al, byte [0x45b0f9]
cmp byte [esi], al
jne 0x444266
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x444241
cmp byte [eax], 0
jne 0x444266
mov al, byte [esi + 1]
cmp al, 0x20
je 0x44424c
cmp al, 9
jne 0x444266
inc esi
inc esi
cmp dword [ebp - 0x18], 0
mov byte [ebx + 1], 1
je 0x44425c
add dword [ebp - 0x18], 2
cmp byte [ebp + 0xc], 1
jne 0x444266
mov byte [ebp + 0xc], 2
push esi
call sub.MSVCR71.dll_strlen
mov word [ebx + 2], ax
movzx eax, ax
pop ecx
push eax
push esi
call fcn.00447520
mov edi, eax
test edi, edi
pop ecx
pop ecx
mov dword [ebx + 4], edi
je 0x444da7
movzx ecx, byte [ebp + 0xc]
and dword [ebp - 0x10], 0
imul ecx, ecx, 0xe
add ecx, 0x45b18f
je 0x44430a
mov eax, dword [ebp - 0x14]
lea esi, [eax + 1]
jmp 0x4442ad
movzx edx, dl
cmp edx, esi
je 0x4442b5
inc ecx
mov dl, byte [ecx]
test dl, dl
jne 0x4442a5
jmp 0x44430a
cmp byte [ebp + 0xc], 0x7d
jne 0x4442da
cmp eax, 1
jle 0x4442d4
push str.default
push edi
call dword [sym.imp.MSVCR71.dll__stricmp]
test eax, eax
pop ecx
pop ecx
je 0x44430a
jmp 0x4442e6
cmp byte [ebp + 0x14], 2
ja 0x44430a
cmp byte [ebp + 0xc], 2
je 0x444306
cmp byte [ebp + 0xc], 0x69
je 0x444306
mov esi, dword [ebx + 4]
mov edi, str.__t____:____
mov eax, esi
call fcn.00438cc6
test eax, eax
jne 0x444306
mov edi, dword [ebp - 0x18]
call fcn.00445bcc
mov byte [ebx + 1], al
jmp 0x44430a
mov byte [ebx + 1], 1
cmp byte [ebx + 1], 0
je 0x444715
mov eax, dword [ebx + 4]
push 0
push 1
push 1
push 1
call fcn.00401cdc
add esp, 0x10
test eax, eax
je 0x44432f
mov byte [ebx + 1], 0
cmp byte [ebx + 1], 0
je 0x444715
mov esi, dword [ebx + 4]
mov ecx, esi
mov al, byte [ecx]
xor dl, dl
xor edi, edi
test al, al
je 0x444382
movsx eax, al
sub eax, 0x22
je 0x44436e
sub eax, 6
je 0x444367
dec eax
jne 0x444373
test dl, dl
jne 0x444373
test edi, edi
je 0x444795
dec edi
jmp 0x444373
test dl, dl
jne 0x444373
inc edi
jmp 0x444373
test dl, dl
sete dl
inc ecx
mov al, byte [ecx]
test al, al
jne 0x444348
test edi, edi
jne 0x4447a0
cmp byte [esi], 0
je 0x444772
cmp byte [esi], 0x2e
jne 0x444398
cmp byte [esi + 1], 0x3d
jne 0x444398
inc esi
inc esi
cmp byte [esi], 0
je 0x4446af
mov edi, dword [sym.imp.MSVCR71.dll_strchr]
movsx eax, byte [esi]
push eax
push 0x45586c
call edi
test eax, eax
pop ecx
pop ecx
je 0x4443be
inc esi
cmp byte [esi], 0
jne 0x4443a7
mov al, byte [esi]
test al, al
je 0x4446af
cmp al, 0x22
lea eax, [esi + 1]
jne 0x4443ed
mov cl, byte [eax]
test cl, cl
je 0x4447ad
cmp cl, 0x22
jne 0x4443ea
inc eax
cmp byte [eax], cl
mov dword [ebp - 0xc], eax
jne 0x4446a3
inc eax
jmp 0x4443cf
mov dword [ebp - 0xc], eax
jmp 0x4443f8
inc dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
movsx eax, byte [eax]
push eax
push 0x45586c
call edi
test eax, eax
pop ecx
pop ecx
je 0x4443f2
mov eax, dword [ebp - 0xc]
cmp byte [eax], 0x3d
jne 0x44441a
dec eax
cmp byte [eax], 0x2e
jne 0x44441a
mov dword [ebp - 0xc], eax
cmp byte [esi], 0x2e
jne 0x444435
movsx eax, byte [esi + 1]
push eax
push 0x455868
call edi
test eax, eax
pop ecx
pop ecx
jne 0x4446a3
mov eax, dword [ebp - 0xc]
sub eax, esi
cmp eax, 4
mov dword [ebp - 0x20], eax
jae 0x4444a6
cmp eax, 1
jbe 0x4444a6
cmp eax, 2
mov al, byte [esi]
jne 0x444470
cmp al, 0x6f
je 0x444456
cmp al, 0x4f
jne 0x4444a6
lea eax, [esi + 1]
mov cl, byte [eax]
cmp cl, 0x72
je 0x444465
cmp cl, 0x52
jne 0x4444a6
mov byte [esi], 0x7c
mov byte [eax], 0x7c
jmp 0x4446a3
cmp al, 0x41
je 0x444523
cmp al, 0x4e
je 0x444488
cmp al, 0x61
je 0x444523
cmp al, 0x6e
jne 0x4444a6
mov al, byte [esi + 1]
cmp al, 0x6f
je 0x444493
cmp al, 0x4f
jne 0x4444a6
mov al, byte [esi + 2]
cmp al, 0x74
je 0x4446a3
cmp al, 0x54
je 0x4446a3
mov eax, dword [ebp - 0xc]
mov cl, byte [eax]
mov byte [eax], 0
mov edi, 0x455860
mov eax, esi
mov byte [ebp - 5], cl
call fcn.00438cc6
test eax, eax
jne 0x4447b8
xor edi, edi
push edi
push 1
push edi
push 1
mov eax, esi
call fcn.00401cdc
add esp, 0x10
test eax, eax
jne 0x44469b
cmp byte [esi], 0x3f
jne 0x4444ed
cmp byte [esi + 1], al
je 0x44469b
movsx eax, byte [0x45b0f9]
cmp byte [ebp - 5], 0x28
push eax
push esi
sete byte [ebp - 0x1a]
call dword [sym.imp.MSVCR71.dll_strchr]
test eax, eax
pop ecx
pop ecx
je 0x4445f0
cmp dword [ebp - 0x18], edi
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x30], eax
je 0x444551
mov eax, esi
sub eax, dword [ebx + 4]
add eax, dword [ebp - 0x18]
jmp 0x444553
mov al, byte [esi + 1]
cmp al, 0x6e
je 0x444532
cmp al, 0x4e
jne 0x4444a6
mov al, byte [esi + 2]
cmp al, 0x64
je 0x444541
cmp al, 0x44
jne 0x4444a6
mov byte [esi], 0x26
mov byte [esi + 1], 0x26
mov byte [esi + 2], 0x20
jmp 0x4446a3
xor eax, eax
lea ecx, [ebp - 0x10]
push ecx
lea ecx, [ebp - 0x193c]
push ecx
push eax
push esi
push dword [ebp + 8]
call fcn.00445cf2
test eax, eax
je 0x444da7
cmp byte [ebp - 0x1a], 0
je 0x44469b
mov eax, dword [ebp - 0xc]
xor edx, edx
inc eax
mov cl, byte [eax]
cmp cl, 0x20
je 0x44457f
cmp cl, 9
je 0x44457f
mov esi, eax
mov al, cl
cmp al, 0x29
je 0x4445de
xor edi, edi
xor dl, dl
inc edi
test al, al
mov dword [ebp - 0x20], 1
je 0x4445db
test edi, edi
je 0x4445db
mov al, byte [esi]
cmp al, 0x22
jne 0x4445b3
test dl, dl
sete dl
test dl, dl
jne 0x4445d5
movsx ecx, al
sub ecx, 0x28
je 0x4445d4
dec ecx
je 0x4445d1
sub ecx, 3
jne 0x4445d5
cmp edi, 1
jne 0x4445d5
inc dword [ebp - 0x20]
jmp 0x4445d5
dec edi
jmp 0x4445d5
inc edi
inc esi
cmp byte [esi], 0
jne 0x4445a4
mov dl, byte [ebp - 0x20]
mov eax, dword [ebp - 0x30]
lea eax, [eax + eax*2]
mov byte [ebp + eax*4 - 0x1933], dl
jmp 0x44469b
cmp dword [ebp - 0x10], 0x200
jge 0x4447c3
mov edi, dword [ebp - 0x10]
mov ax, word [ebp - 0x20]
lea edi, [edi + edi*2]
shl edi, 2
mov dword [ebp + edi - 0x193c], esi
mov word [ebp + edi - 0x1932], ax
mov al, byte [ebp - 0x1a]
test al, al
mov byte [ebp + edi - 0x1934], al
je 0x444631
and dword [ebp + edi - 0x1938], 0
jmp 0x444698
mov eax, dword [ebp - 0xc]
movsx eax, byte [eax - 1]
push eax
call dword [sym.imp.MSVCR71.dll_toupper]
cmp eax, 0x45
pop ecx
jne 0x44467a
cmp byte [ebp - 5], 0x2b
je 0x444651
cmp byte [ebp - 5], 0x2d
jne 0x44467a
push 0x2e
push esi
call dword [sym.imp.MSVCR71.dll_strchr]
test eax, eax
pop ecx
pop ecx
je 0x44467a
mov al, byte [ebp - 5]
mov ecx, dword [ebp - 0xc]
mov byte [ecx], al
inc dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
mov al, byte [eax]
cmp al, 0x30
jl 0x4446a3
cmp al, 0x39
jle 0x444668
jmp 0x4446a3
push 0
push 0
push dword [ebp - 0x20]
push dword [ebp + 8]
call fcn.0040bcf1
test eax, eax
mov dword [ebp + edi - 0x1938], eax
je 0x444da7
inc dword [ebp - 0x10]
mov al, byte [ebp - 5]
mov ecx, dword [ebp - 0xc]
mov byte [ecx], al
mov esi, dword [ebp - 0xc]
cmp byte [esi], 0
jne 0x44438b
mov esi, dword [ebp - 0x10]
cmp esi, 1
jne 0x4446d5
mov eax, dword [ebx + 4]
push 0
push 0
call fcn.00448fe6
test eax, eax
pop ecx
pop ecx
je 0x4446dd
cmp byte [ebp + 0xc], 0x69
je 0x44473f
mov byte [ebx + 1], 0
jmp 0x44473f
test esi, esi
je 0x444772
mov eax, dword [ebx + 4]
mov edi, 0x45586c
call fcn.00438cc6
test eax, eax
jne 0x444736
cmp byte [ebp - 0x1934], al
jne 0x444736
mov eax, dword [ebp - 0x193c]
mov al, byte [eax]
cmp al, byte [0x45b0f9]
jne 0x444736
cmp byte [ebp + 0xc], 0x69
je 0x444736
mov byte [ebx + 1], 0
mov byte [ebx], 1
jmp 0x444736
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x193c]
push eax
push dword [ebp - 0x18]
push dword [ebx + 4]
push dword [ebp + 8]
call fcn.00445cf2
test eax, eax
je 0x444da7
cmp dword [ebp - 0x10], 0
je 0x444772
mov esi, dword [ebp - 0x10]
lea esi, [esi + esi*2]
shl esi, 2
lea eax, [esi + 0xc]
call fcn.004474b9
test eax, eax
mov dword [ebx + 8], eax
je 0x4440f0
push esi
lea ecx, [ebp - 0x193c]
push ecx
push eax
call sub.MSVCR71.dll_memcpy
mov eax, dword [ebx + 8]
add esp, 0xc
and dword [esi + eax], 0
jmp 0x444776
and dword [ebx + 8], 0
inc dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x28]
jl 0x444109
jmp 0x4440a5
push esi
push str.Not_allowed_as_an_output_variable.
jmp 0x4440fa
push ecx
push 0x4559e4
jmp 0x4440fa
push dword [ebx + 4]
push str.Missing____
jmp 0x4440fa
push esi
push str.Missing_close_quote
jmp 0x4440fa
push eax
push str.The_leftmost_character_above_is_illegal_in_an_expression.
jmp 0x4440fa
push esi
push str.Too_many_var_func_refs.
jmp 0x4440fa
xor ebx, ebx
test ebx, ebx
jne 0x4447e3
push 0x45282f
push str.Out_of_memory.
jmp 0x444e81
mov eax, dword [edi + 4]
mov dword [ebx + 0x10], eax
cmp dword [edi], 0
jne 0x4447f2
mov dword [edi], ebx
jmp 0x4447f8
mov eax, dword [edi + 4]
mov dword [eax + 0x14], ebx
mov dl, byte [ebp + 0x14]
test dl, dl
mov dword [edi + 4], ebx
mov dword [edi + 0x23c], ebx
jbe 0x444815
mov eax, dword [esi + 4]
mov dword [ebp + 0x18], eax
mov eax, 0x45282f
jmp 0x44481d
mov eax, 0x45282f
mov dword [ebp + 0x18], eax
cmp dl, 1
jbe 0x44482a
mov ecx, dword [esi + 0x14]
mov dword [ebp + 0x10], ecx
jmp 0x44482d
mov dword [ebp + 0x10], eax
cmp dl, 2
jbe 0x44483a
mov ecx, dword [esi + 0x24]
mov dword [ebp - 0x14], ecx
jmp 0x44483d
mov dword [ebp - 0x14], eax
cmp dl, 3
jbe 0x444845
mov eax, dword [esi + 0x34]
mov dword [ebp - 0x28], eax
movzx eax, byte [ebp + 0xc]
cmp eax, 0x18
jg 0x444940
cmp eax, 0x13
jge case.0x44486b.1
dec eax
cmp eax, 0x10
ja case.0x44486b.3
movzx eax, byte [eax + 0x444e9a]
jmp dword [eax*4 + 0x444e8a]
cmp dl, 2
jae case.0x44486b.1
push 0x45282f
push str.Parameter_2_required
jmp 0x444e81
xor ecx, ecx
movzx eax, dl
inc ecx
cmp eax, ecx
mov dword [ebp + 0x14], ecx
mov dword [ebp - 0x28], eax
jle case.0x44486b.3
mov esi, dword [ebp - 0x24]
add esi, 0x14
mov dword [ebp + 8], esi
mov eax, dword [esi]
cmp byte [eax], 0
je 0x444922
mov eax, dword [ebp + 0x14]
mov ecx, ebx
call fcn.0043d1e3
test al, al
jne 0x444922
cmp byte [esi - 3], al
jne 0x444922
xor eax, eax
push eax
push eax
push eax
mov eax, dword [esi]
push 1
call fcn.00401cdc
add esp, 0x10
test eax, eax
je 0x444922
cmp byte [ebp + 0xc], 1
je 0x4448de
cmp byte [ebp + 0xc], 2
jne 0x4448f5
mov eax, dword [ebp + 0x10]
mov al, byte [eax]
cmp al, 0x30
je 0x444922
cmp al, 0x2b
je 0x444922
mov eax, dword [ebp - 0x24]
cmp word [eax + 0x12], 0x12
ja 0x444922
push 8
pop eax
call fcn.004474b9
test eax, eax
mov dword [esi + 8], eax
je 0x4447d4
mov eax, dword [ebp + 8]
mov esi, dword [eax]
call fcn.00401ca2
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 8]
mov esi, dword [ebp + 8]
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x444926
and dword [esi + 8], 0
inc dword [ebp + 0x14]
mov eax, dword [ebp + 0x14]
add esi, 0x10
cmp eax, dword [ebp - 0x28]
mov dword [ebp + 8], esi
jl 0x4448a3
jmp case.0x44486b.3
cmp eax, 0x36
je 0x444d5e
cmp eax, 0x68
je 0x444baf
cmp eax, 0x69
je 0x444ba3
cmp eax, 0x8c
jle case.0x44486b.3
cmp eax, 0x90
jle 0x444acf
cmp eax, 0xbf
je 0x44498f
cmp eax, 0xd3
jne case.0x44486b.3
mov byte [0x45db14], 1
jmp case.0x44486b.3
cmp dl, 1
jb case.0x44486b.3
xor eax, eax
mov ecx, ebx
call fcn.0043d1e3
test al, al
je 0x4449b7
xor eax, eax
inc eax
mov dword [0x45db20], eax
mov dword [0x45db24], eax
jmp case.0x44486b.3
mov esi, dword [sym.imp.MSVCR71.dll__strnicmp]
push 5
push str.Float
push dword [ebp + 0x18]
call esi
add esp, 0xc
test eax, eax
jne 0x444a40
mov eax, dword [ebp + 0x18]
add eax, 5
push str.Fast
push eax
call dword [sym.imp.MSVCR71.dll__stricmp]
test eax, eax
pop ecx
pop ecx
je 0x4449f2
mov dword [0x45db24], 1
cmp byte [ebp + 0x14], 1
jbe case.0x44486b.3
xor eax, eax
inc eax
mov ecx, ebx
call fcn.0043d1e3
test al, al
jne case.0x44486b.3
mov eax, dword [ebp + 0x10]
push 1
push 1
push 0
push 1
call fcn.00401cdc
add esp, 0x10
test eax, eax
je 0x444c50
push dword [ebp + 0x10]
call sub.MSVCR71.dll_strlen
cmp eax, 0x1e
pop ecx
jb case.0x44486b.3
jmp 0x444c50
push 7
push str.Integer
push dword [ebp + 0x18]
call esi
add esp, 0xc
test eax, eax
jne 0x444ac2
mov eax, dword [ebp + 0x18]
add eax, 7
push str.Fast
push eax
call dword [sym.imp.MSVCR71.dll__stricmp]
test eax, eax
pop ecx
pop ecx
je 0x444a75
mov dword [0x45db20], 1
cmp byte [ebp + 0x14], 1
jbe case.0x44486b.3
xor eax, eax
inc eax
mov ecx, ebx
call fcn.0043d1e3
test al, al
jne case.0x44486b.3
mov eax, dword [ebp + 0x10]
movsx eax, byte [eax]
mov esi, dword [sym.imp.MSVCR71.dll_toupper]
push eax
call esi
cmp eax, 0x48
pop ecx
je case.0x44486b.3
mov eax, dword [ebp + 0x10]
movsx eax, byte [eax]
push eax
call esi
cmp eax, 0x44
pop ecx
je case.0x44486b.3
jmp 0x444c50
push dword [ebp + 0x18]
push str.Parameter_1_invalid
jmp 0x444e81
xor eax, eax
mov ecx, ebx
call fcn.0043d1e3
test al, al
jne 0x444af3
push 1
push dword [ebp + 0x18]
mov ecx, edi
call fcn.00448743
test eax, eax
mov dword [ebx + 0xc], eax
je 0x444da7
cmp byte [ebp + 0xc], 0x8e
je 0x444b60
cmp byte [ebp + 0xc], 0x8f
je 0x444b60
cmp byte [ebp + 0xc], 0x90
jne case.0x44486b.3
mov eax, dword [ebp + 0x10]
cmp byte [eax], 0
je case.0x44486b.3
xor eax, eax
inc eax
mov ecx, ebx
call fcn.0043d1e3
test al, al
jne case.0x44486b.3
mov esi, dword [ebp + 0x10]
push esi
call sub.MSVCR71.dll_strlen
cmp eax, 1
pop ecx
ja 0x444c50
movsx eax, byte [esi]
push eax
call dword [sym.imp.MSVCR71.dll_toupper]
pop ecx
push eax
push 0x4557a0
call dword [sym.imp.MSVCR71.dll_strchr]
test eax, eax
pop ecx
pop ecx
jne case.0x44486b.3
jmp 0x444c50
mov eax, dword [ebp + 0x10]
cmp byte [eax], 0
je case.0x44486b.3
xor eax, eax
inc eax
mov ecx, ebx
call fcn.0043d1e3
test al, al
jne case.0x44486b.3
mov esi, dword [ebp + 0x10]
push esi
call sub.MSVCR71.dll_strlen
cmp eax, 1
pop ecx
ja 0x444c50
movsx eax, byte [esi]
push eax
call dword [sym.imp.MSVCR71.dll_toupper]
cmp eax, 0x52
jmp 0x444ab6
mov dword [ebx + 0xc], 7
jmp case.0x44486b.3
movzx eax, dl
sub eax, 0
je case.0x44486b.8
dec eax
mov ecx, ebx
je 0x444d0e
xor eax, eax
call fcn.0043d1e3
test al, al
je 0x444bdb
mov dword [ebx + 0xc], 1
jmp case.0x44486b.3
mov esi, dword [sym.imp.MSVCR71.dll__stricmp]
push str.Read
push dword [ebp + 0x18]
call esi
test eax, eax
pop ecx
pop ecx
jne 0x444bfd
mov dword [ebx + 0xc], 5
jmp case.0x44486b.3
push str.Parse
push dword [ebp + 0x18]
call esi
test eax, eax
pop ecx
pop ecx
jne 0x444c19
mov dword [ebx + 0xc], 6
jmp case.0x44486b.3
push 0
push dword [ebp + 0x18]
call fcn.00419859
neg eax
sbb eax, eax
neg eax
add eax, 3
cmp eax, 3
pop ecx
pop ecx
mov dword [ebx + 0xc], eax
jne 0x444ca4
xor eax, eax
inc eax
mov ecx, ebx
call fcn.0043d1e3
test al, al
jne 0x444c5d
mov esi, dword [ebp + 0x10]
call fcn.0041653d
test eax, eax
jne 0x444c5d
push dword [ebp + 0x10]
push str.Parameter_2_invalid
jmp 0x444e81
mov esi, dword [ebp - 0x14]
cmp byte [esi], 0
je case.0x44486b.3
push 2
pop eax
mov ecx, ebx
call fcn.0043d1e3
test al, al
jne case.0x44486b.3
push esi
call sub.MSVCR71.dll_strlen
cmp eax, 1
pop ecx
ja 0x444c99
mov al, byte [esi]
cmp al, 0x30
je case.0x44486b.3
cmp al, 0x31
je case.0x44486b.3
push esi
push str.Parameter_3_invalid
jmp 0x444e81
cmp byte [ebp + 0x14], 2
jbe 0x444cc7
push 2
pop eax
mov ecx, ebx
call fcn.0043d1e3
test al, al
jne 0x444cc7
mov esi, dword [ebp - 0x14]
call fcn.0041653d
test eax, eax
jne 0x444cc7
push esi
jmp 0x444c9a
mov esi, dword [ebp - 0x28]
cmp byte [esi], 0
je case.0x44486b.3
push 3
pop eax
mov ecx, ebx
call fcn.0043d1e3
test al, al
jne case.0x44486b.3
push esi
call sub.MSVCR71.dll_strlen
cmp eax, 1
pop ecx
ja 0x444d03
mov al, byte [esi]
cmp al, 0x30
je case.0x44486b.3
cmp al, 0x31
je case.0x44486b.3
push esi
push str.Parameter_4_invalid
jmp 0x444e81
xor eax, eax
call fcn.0043d1e3
test al, al
jne 0x444bcf
cmp byte [esi + 1], al
jne 0x444bcf
mov eax, dword [ebp + 0x18]
xor esi, esi
push esi
push esi
push 1
push esi
call fcn.00401cdc
add esp, 0x10
test eax, eax
je 0x444d45
mov dword [ebx + 0xc], 2
jmp case.0x44486b.3
push esi
push dword [ebp + 0x18]
call fcn.00419859
neg eax
sbb eax, eax
neg eax
pop ecx
add eax, 3
pop ecx
mov dword [ebx + 0xc], eax
jmp case.0x44486b.3
mov eax, dword [ebp + 0x18]
cmp byte [eax], 0
je case.0x44486b.3
xor eax, eax
mov ecx, ebx
call fcn.0043d1e3
test al, al
jne case.0x44486b.3
push dword [ebp + 0x18]
mov esi, 0x107
push 0x455794
lea edi, [ebp - 0x13c]
call fcn.0040a3cc
pop ecx
pop ecx
xor edi, edi
push edi
push edi
push edi
push dword [ebp + 8]
lea esi, [ebp - 0x13c]
call fcn.0040bcf1
cmp eax, edi
mov dword [ebx + 0xc], eax
jne 0x444dae
xor eax, eax
jmp 0x444e58
mov edi, dword [ebp + 8]
cmp byte [edi + 0x3c], 0
mov eax, dword [0x45b170]
je 0x444dd6
mov ecx, dword [edi + 0x18]
mov dword [ecx + 4], ebx
mov byte [edi + 0x3c], 0
mov ecx, dword [eax + 0x94]
cmp byte [ecx + 0x30], 0
jne 0x444dd6
mov byte [ecx + 0x30], 2
cmp byte [ebp + 0xc], 0x6c
jne 0x444df9
mov eax, dword [edi + 0x18]
inc dword [edi + 0x38]
test eax, eax
je 0x444e20
cmp dword [eax + 4], 0
jne 0x444e20
mov dword [ebx + 0xc], 1
mov byte [edi + 0x3c], 1
jmp 0x444e20
cmp byte [ebp + 0xc], 0x6d
jne 0x444e20
dec dword [edi + 0x38]
mov ecx, dword [edi + 0x38]
add eax, 0x94
xor edx, edx
cmp dword [eax], edx
je 0x444e20
cmp ecx, edx
jne 0x444e20
mov dword [ebx + 0xc], 1
mov dword [eax], edx
mov dword [edi + 0x40], edx
cmp byte [ebp - 0x19], 0
je 0x444e52
mov eax, dword [edi + 0x10]
jmp 0x444e4e
cmp dword [eax + 4], 0
jne 0x444e52
mov cl, byte [ebx]
cmp cl, 0x6c
jne 0x444e3e
cmp dword [ebx + 0xc], 1
je 0x444e5f
cmp cl, 9
je 0x444e6b
cmp cl, 0x6d
je 0x444e77
mov dword [eax + 4], ebx
mov eax, dword [eax + 8]
test eax, eax
jne 0x444e2b
inc dword [edi + 8]
xor eax, eax
inc eax
pop edi
pop esi
pop ebx
leave
ret 0x14
push 0x45282f
push str.A_label_must_not_point_to_a_function.
jmp 0x444e81
push 0x45282f
push str.A_label_must_not_point_to_an_ELSE.
jmp 0x444e81
push 0x45282f
push str.A_label_must_not_point_to_the_end_of_a_block._For_loops__use_Continue_vs._Goto.
mov ecx, edi
call fcn.0044506b
jmp 0x444e58