Function at 0x5788b0
Capabilities:
Parse credit card information

Disassembly:
sub esp, 0x14
push ebx
push ebp
mov ebp, dword [esp + 0x24]
xor eax, eax
mov dword [esp + 0x14], eax
mov dword [esp + 8], eax
mov dword [esp + 0x10], eax
mov al, byte [ebp]
mov ebx, ecx
push esi
test al, al
push edi
mov dword [esp + 0x14], ebx
mov dword [esp + 0x20], 0xffffffff
je 0x57968e
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x28]
movsx eax, al
push eax
call fcn.005e789c
add esp, 4
test eax, eax
je 0x578922
movsx ecx, byte [esi]
push ecx
call fcn.005e789c
add esp, 4
test eax, eax
je 0x57891c
movsx edx, byte [esi + 1]
inc esi
push edx
call fcn.005e789c
add esp, 4
test eax, eax
jne 0x57890a
inc ebp
jmp case.0x578958.54
mov al, byte [ebp]
cmp al, 0x25
je 0x57893a
mov cl, byte [esi]
inc esi
inc ebp
cmp al, cl
jne case.0x579299.81
jmp case.0x578958.54
inc ebp
movsx eax, byte [ebp]
sub eax, 0x25
inc ebp
cmp eax, 0x54
mov dword [esp + 0x2c], ebp
ja case.0x579299.81
xor edx, edx
mov dl, byte [eax + 0x57971c]
jmp dword [edx*4 + 0x5796a0]
mov al, byte [ebp]
cmp al, 0x63
je 0x57893b
cmp al, 0x43
je 0x57893b
cmp al, 0x79
je 0x57893b
cmp al, 0x59
je 0x57893b
cmp al, 0x78
je 0x57893b
cmp al, 0x58
jne case.0x579299.81
jmp 0x57893b
mov al, byte [esi]
inc esi
cmp al, 0x25
jne case.0x579299.81
jmp case.0x578958.54
mov dword [esp + 0x28], 0
mov ebp, 0x63f080
mov ebx, 0x63f038
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push esi
push ebx
call fcn.005ea9e0
add esp, 0xc
test eax, eax
je 0x5789f1
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push esi
push ebp
call fcn.005ea9e0
add esp, 0xc
test eax, eax
je 0x578a01
mov edi, dword [esp + 0x28]
add ebx, 0xa
inc edi
add ebp, 4
cmp ebx, 0x63f07e
mov dword [esp + 0x28], edi
jge 0x578a18
jmp 0x5789a2
mov eax, dword [esp + 0x28]
lea ecx, [eax + eax*4]
lea edi, [ecx*2 + 0x63f038]
jmp 0x578a0c
mov edx, dword [esp + 0x28]
lea edi, [edx*4 + 0x63f080]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
add esi, ecx
mov eax, dword [esp + 0x28]
cmp eax, 7
je case.0x579299.81
mov ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x2c]
mov edi, ecx
mov dword [ecx + 0x18], eax
jmp case.0x578958.54
mov dword [esp + 0x28], 0
mov ebp, 0x63f114
mov ebx, 0x63f09c
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push esi
push ebx
call fcn.005ea9e0
add esp, 0xc
test eax, eax
je 0x578a9c
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push esi
push ebp
call fcn.005ea9e0
add esp, 0xc
test eax, eax
je 0x578aac
mov edi, dword [esp + 0x28]
add ebx, 0xa
inc edi
add ebp, 4
cmp ebx, 0x63f114
mov dword [esp + 0x28], edi
jge 0x578ac3
jmp 0x578a4d
mov eax, dword [esp + 0x28]
lea edx, [eax + eax*4]
lea edi, [edx*2 + 0x63f09c]
jmp 0x578ab7
mov eax, dword [esp + 0x28]
lea edi, [eax*4 + 0x63f114]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
add esi, ecx
mov eax, dword [esp + 0x28]
cmp eax, 0xc
je case.0x579299.81
mov ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x2c]
mov edi, ecx
mov dword [ecx + 0x10], eax
jmp case.0x578958.54
mov al, byte [str._a__b__e__H:_M:_S__Y]
test al, al
je case.0x579299.81
push edi
push str._a__b__e__H:_M:_S__Y
jmp 0x578fc8
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x578b15
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x578b0c
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x579299.81
cmp cl, 0x39
jg case.0x579299.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x578b4f
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x63
ja 0x578b4f
mov cl, byte [esi]
cmp cl, 0x30
jl 0x578b4f
cmp cl, 0x39
jle 0x578b29
cmp eax, 0x63
ja case.0x579299.81
mov dword [esp + 0x20], eax
jmp case.0x578958.54
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x578b78
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x578b6f
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x579299.81
cmp cl, 0x39
jg case.0x579299.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x578bb2
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x1f
ja 0x578bb2
mov cl, byte [esi]
cmp cl, 0x30
jl 0x578bb2
cmp cl, 0x39
jle 0x578b8c
cmp eax, 1
jb case.0x579299.81
cmp eax, 0x1f
ja case.0x579299.81
mov dword [edi + 0xc], eax
jmp case.0x578958.54
mov al, byte [str._Y__m__d]
test al, al
je case.0x579299.81
push edi
push str._Y__m__d
jmp 0x578fc8
mov al, byte [str._m__d__y]
test al, al
je case.0x579299.81
push edi
push str._m__d__y
jmp 0x578fc8
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x578c13
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x578c0a
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x579299.81
cmp cl, 0x39
jg case.0x579299.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x578c4d
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x17
ja 0x578c4d
mov cl, byte [esi]
cmp cl, 0x30
jl 0x578c4d
cmp cl, 0x39
jle 0x578c27
cmp eax, 0x17
ja case.0x579299.81
mov dword [edi + 8], eax
mov dword [esp + 0x10], 0
jmp case.0x578958.54
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x578c7d
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x578c74
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x579299.81
cmp cl, 0x39
jg case.0x579299.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x578cb7
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0xc
ja 0x578cb7
mov cl, byte [esi]
cmp cl, 0x30
jl 0x578cb7
cmp cl, 0x39
jle 0x578c91
cmp eax, 1
jb case.0x579299.81
cmp eax, 0xc
ja case.0x579299.81
xor edx, edx
mov ecx, 0xc
div ecx
mov dword [esp + 0x10], 1
mov dword [edi + 8], edx
jmp case.0x578958.54
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 3
jne 0x578cf9
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x578cf0
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x579299.81
cmp cl, 0x39
jg case.0x579299.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x578d36
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x16e
ja 0x578d36
mov cl, byte [esi]
cmp cl, 0x30
jl 0x578d36
cmp cl, 0x39
jle 0x578d0d
cmp eax, 1
jb case.0x579299.81
cmp eax, 0x16e
ja case.0x579299.81
dec eax
mov dword [edi + 0x1c], eax
jmp case.0x578958.54
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x578d6a
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x578d61
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x579299.81
cmp cl, 0x39
jg case.0x579299.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x578da4
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0xc
ja 0x578da4
mov cl, byte [esi]
cmp cl, 0x30
jl 0x578da4
cmp cl, 0x39
jle 0x578d7e
cmp eax, 1
jb case.0x579299.81
cmp eax, 0xc
ja case.0x579299.81
dec eax
mov dword [edi + 0x10], eax
jmp case.0x578958.54
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x578dd6
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x578dcd
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x579299.81
cmp cl, 0x39
jg case.0x579299.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x578e10
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x3b
ja 0x578e10
mov cl, byte [esi]
cmp cl, 0x30
jl 0x578e10
cmp cl, 0x39
jle 0x578dea
cmp eax, 0x3b
ja case.0x579299.81
mov dword [edi + 4], eax
jmp case.0x578958.54
movsx edx, byte [esi]
push edx
call fcn.005e789c
add esp, 4
test eax, eax
je case.0x578958.54
movsx eax, byte [esi + 1]
inc esi
push eax
call fcn.005e789c
add esp, 4
test eax, eax
jne 0x578e35
jmp case.0x578958.54
mov edi, 0x6c2c40
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push esi
push 0x6c2c40
call fcn.005ea9e0
add esp, 0xc
test eax, eax
jne 0x578e8e
mov edi, 0x6c2c40
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x30]
mov ebp, dword [esp + 0x2c]
not ecx
dec ecx
add esi, ecx
jmp case.0x578958.54
mov edi, 0x6c2c3c
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push esi
push 0x6c2c3c
call fcn.005ea9e0
add esp, 0xc
test eax, eax
jne case.0x579299.81
mov edi, 0x6c2c3c
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x30]
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x1c], 1
not ecx
dec ecx
add esi, ecx
jmp case.0x578958.54
mov al, byte [str._I:_M:_S__p]
test al, al
je case.0x579299.81
push edi
push str._I:_M:_S__p
jmp 0x578fc8
mov al, byte [str._H:_M]
test al, al
je case.0x579299.81
push edi
push str._H:_M
jmp 0x578fc8
mov al, byte [esi]
xor ecx, ecx
cmp al, 0x30
jl case.0x579299.81
cmp al, 0x39
jg case.0x579299.81
inc esi
lea ecx, [ecx + ecx*4]
movsx edx, al
mov al, byte [esi]
cmp al, 0x30
lea ecx, [edx + ecx*2 - 0x30]
jl 0x578f35
cmp al, 0x39
jle 0x578f20
lea eax, [esp + 0x2c]
push edi
push eax
mov dword [esp + 0x34], ecx
call fcn.00578880
add esp, 8
test eax, eax
je case.0x579299.81
jmp case.0x578958.54
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x578f6b
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x578f62
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x579299.81
cmp cl, 0x39
jg case.0x579299.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x578fa5
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x3d
ja 0x578fa5
mov cl, byte [esi]
cmp cl, 0x30
jl 0x578fa5
cmp cl, 0x39
jle 0x578f7f
cmp eax, 0x3d
ja case.0x579299.81
mov dword [edi], eax
jmp case.0x578958.54
mov al, byte [str._H:_M:_S]
test al, al
je case.0x579299.81
push edi
push str._H:_M:_S
push esi
mov ecx, ebx
call fcn.005788b0
mov esi, eax
test esi, esi
je case.0x579299.81
jmp case.0x578958.54
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 1
jne 0x578ff6
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x578fed
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x579299.81
cmp cl, 0x39
jg case.0x579299.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x579030
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 7
ja 0x579030
mov cl, byte [esi]
cmp cl, 0x30
jl 0x579030
cmp cl, 0x39
jle 0x57900a
cmp eax, 1
jb case.0x579299.81
cmp eax, 7
ja case.0x579299.81
xor edx, edx
mov ecx, 7
div ecx
mov dword [edi + 0x18], edx
jmp case.0x578958.54
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x57906a
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x579061
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x579299.81
cmp cl, 0x39
jg case.0x579299.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x5790a4
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x63
ja 0x5790a4
mov cl, byte [esi]
cmp cl, 0x30
jl 0x5790a4
cmp cl, 0x39
jle 0x57907e
cmp eax, 0x63
ja case.0x579299.81
jmp case.0x578958.54
mov al, byte [esi]
cmp al, 0x30
jl case.0x579299.81
cmp al, 0x39
jg case.0x579299.81
mov al, byte [esi + 1]
inc esi
cmp al, 0x30
jl case.0x578958.54
cmp al, 0x39
jle 0x5790c4
jmp case.0x578958.54
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x5790f0
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x5790e7
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x579299.81
cmp cl, 0x39
jg case.0x579299.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x57912a
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x35
ja 0x57912a
mov cl, byte [esi]
cmp cl, 0x30
jl 0x57912a
cmp cl, 0x39
jle 0x579104
cmp eax, 0x35
ja case.0x579299.81
jmp case.0x578958.54
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 1
jne 0x57914f
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x579146
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x579299.81
cmp cl, 0x39
jg case.0x579299.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x579189
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 6
ja 0x579189
mov cl, byte [esi]
cmp cl, 0x30
jl 0x579189
cmp cl, 0x39
jle 0x579163
cmp eax, 6
ja case.0x579299.81
mov dword [edi + 0x18], eax
jmp case.0x578958.54
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x5791b1
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x5791a8
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x579299.81
cmp cl, 0x39
jg case.0x579299.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x5791eb
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x63
ja 0x5791eb
mov cl, byte [esi]
cmp cl, 0x30
jl 0x5791eb
cmp cl, 0x39
jle 0x5791c5
cmp eax, 0x63
ja case.0x579299.81
cmp eax, 0x45
jae 0x5791fc
add eax, 0x64
mov dword [edi + 0x14], eax
mov dword [esp + 0x18], 1
jmp case.0x578958.54
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 4
jne 0x579223
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x57921a
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x579299.81
cmp cl, 0x39
jg case.0x579299.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x579260
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x270f
ja 0x579260
mov cl, byte [esi]
cmp cl, 0x30
jl 0x579260
cmp cl, 0x39
jle 0x579237
cmp eax, 0x270f
ja case.0x579299.81
add eax, 0xfffff894
mov dword [esp + 0x18], 0
mov dword [edi + 0x14], eax
jmp case.0x578958.54
movsx eax, byte [ebp]
sub eax, 0x48
inc ebp
cmp eax, 0x31
ja case.0x579299.81
xor edx, edx
mov dl, byte [eax + 0x57979c]
jmp dword [edx*4 + 0x579774]
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x5792b7
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x5792ae
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x579299.81
cmp cl, 0x39
jg case.0x579299.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x578bb2
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x1f
ja 0x578bb2
mov cl, byte [esi]
cmp cl, 0x30
jl 0x578bb2
cmp cl, 0x39
jle 0x5792cb
jmp 0x578bb2
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x579319
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x579310
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x579299.81
cmp cl, 0x39
jg case.0x579299.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x579353
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x17
ja 0x579353
mov cl, byte [esi]
cmp cl, 0x30
jl 0x579353
cmp cl, 0x39
jle 0x57932d
cmp eax, 0x17
ja case.0x579299.81
mov dword [edi + 8], eax
mov dword [esp + 0x10], 0
jmp case.0x578958.54
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x579383
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x57937a
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x579299.81
cmp cl, 0x39
jg case.0x579299.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x5793bd
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0xc
ja 0x5793bd
mov cl, byte [esi]
cmp cl, 0x30
jl 0x5793bd
cmp cl, 0x39
jle 0x579397
cmp eax, 1
jb case.0x579299.81
cmp eax, 0xc
ja case.0x579299.81
dec eax
mov dword [esp + 0x10], 1
mov dword [edi + 8], eax
jmp case.0x578958.54
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x5793f7
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x5793ee
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x579299.81
cmp cl, 0x39
jg case.0x579299.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x578da4
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0xc
ja 0x578da4
mov cl, byte [esi]
cmp cl, 0x30
jl 0x578da4
cmp cl, 0x39
jle 0x57940b
jmp 0x578da4
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x579459
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x579450
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x579299.81
cmp cl, 0x39
jg case.0x579299.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x579493
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x3b
ja 0x579493
mov cl, byte [esi]
cmp cl, 0x30
jl 0x579493
cmp cl, 0x39
jle 0x57946d
cmp eax, 0x3b
ja case.0x579299.81
mov dword [edi + 4], eax
jmp case.0x578958.54
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x5794bb
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x5794b2
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x579299.81
cmp cl, 0x39
jg case.0x579299.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x5794f5
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x3d
ja 0x5794f5
mov cl, byte [esi]
cmp cl, 0x30
jl 0x5794f5
cmp cl, 0x39
jle 0x5794cf
cmp eax, 0x3d
ja case.0x579299.81
mov dword [edi], eax
jmp case.0x578958.54
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x57951c
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x579513
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x579299.81
cmp cl, 0x39
jg case.0x579299.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x579556
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x35
ja 0x579556
mov cl, byte [esi]
cmp cl, 0x30
jl 0x579556
cmp cl, 0x39
jle 0x579530
cmp eax, 0x35
ja case.0x579299.81
jmp case.0x578958.54
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 1
jne 0x57957b
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x579572
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x579299.81
cmp cl, 0x39
jg case.0x579299.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x5795b5
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 6
ja 0x5795b5
mov cl, byte [esi]
cmp cl, 0x30
jl 0x5795b5
cmp cl, 0x39
jle 0x57958f
cmp eax, 6
ja case.0x579299.81
mov dword [edi + 0x18], eax
jmp case.0x578958.54
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x5795d6
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x5795cd
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x579299.81
cmp cl, 0x39
jg case.0x579299.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x579608
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x63
ja 0x579608
mov cl, byte [esi]
cmp cl, 0x30
jl 0x579608
cmp cl, 0x39
jle 0x5795e2
cmp eax, 0x63
ja case.0x579299.81
cmp eax, 0x45
jae 0x579615
add eax, 0x64
mov dword [edi + 0x14], eax
mov al, byte [ebp]
test al, al
je 0x579630
jmp 0x5788ea
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x14
ret 0xc
mov eax, dword [esp + 0x10]
test eax, eax
je 0x579644
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x579644
add dword [edi + 8], 0xc
mov eax, dword [esp + 0x20]
cmp eax, 0xffffffff
je 0x579692
mov ecx, dword [esp + 0x18]
lea eax, [eax + eax*4 - 0x5f]
test ecx, ecx
je 0x579679
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x14]
cdq
mov ebx, 0x64
idiv ebx
mov eax, esi
lea edx, [edx + ecx*4]
mov dword [edi + 0x14], edx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 0xc
lea eax, [eax + eax*4]
shl eax, 2
mov dword [edi + 0x14], eax
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 0xc
mov esi, dword [esp + 0x28]
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 0xc