Function at 0x577b00
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 0x5788de
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x28]
movsx eax, al
push eax
call fcn.005e6a7c
add esp, 4
test eax, eax
je 0x577b72
movsx ecx, byte [esi]
push ecx
call fcn.005e6a7c
add esp, 4
test eax, eax
je 0x577b6c
movsx edx, byte [esi + 1]
inc esi
push edx
call fcn.005e6a7c
add esp, 4
test eax, eax
jne 0x577b5a
inc ebp
jmp case.0x577ba8.54
mov al, byte [ebp]
cmp al, 0x25
je 0x577b8a
mov cl, byte [esi]
inc esi
inc ebp
cmp al, cl
jne case.0x5784e9.81
jmp case.0x577ba8.54
inc ebp
movsx eax, byte [ebp]
sub eax, 0x25
inc ebp
cmp eax, 0x54
mov dword [esp + 0x2c], ebp
ja case.0x5784e9.81
xor edx, edx
mov dl, byte [eax + 0x57896c]
jmp dword [edx*4 + 0x5788f0]
mov al, byte [ebp]
cmp al, 0x63
je 0x577b8b
cmp al, 0x43
je 0x577b8b
cmp al, 0x79
je 0x577b8b
cmp al, 0x59
je 0x577b8b
cmp al, 0x78
je 0x577b8b
cmp al, 0x58
jne case.0x5784e9.81
jmp 0x577b8b
mov al, byte [esi]
inc esi
cmp al, 0x25
jne case.0x5784e9.81
jmp case.0x577ba8.54
mov dword [esp + 0x28], 0
mov ebp, 0x63e068
mov ebx, 0x63e020
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.005e9bc0
add esp, 0xc
test eax, eax
je 0x577c41
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.005e9bc0
add esp, 0xc
test eax, eax
je 0x577c51
mov edi, dword [esp + 0x28]
add ebx, 0xa
inc edi
add ebp, 4
cmp ebx, 0x63e066
mov dword [esp + 0x28], edi
jge 0x577c68
jmp 0x577bf2
mov eax, dword [esp + 0x28]
lea ecx, [eax + eax*4]
lea edi, [ecx*2 + 0x63e020]
jmp 0x577c5c
mov edx, dword [esp + 0x28]
lea edi, [edx*4 + 0x63e068]
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.0x5784e9.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.0x577ba8.54
mov dword [esp + 0x28], 0
mov ebp, 0x63e0fc
mov ebx, 0x63e084
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.005e9bc0
add esp, 0xc
test eax, eax
je 0x577cec
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.005e9bc0
add esp, 0xc
test eax, eax
je 0x577cfc
mov edi, dword [esp + 0x28]
add ebx, 0xa
inc edi
add ebp, 4
cmp ebx, 0x63e0fc
mov dword [esp + 0x28], edi
jge 0x577d13
jmp 0x577c9d
mov eax, dword [esp + 0x28]
lea edx, [eax + eax*4]
lea edi, [edx*2 + 0x63e084]
jmp 0x577d07
mov eax, dword [esp + 0x28]
lea edi, [eax*4 + 0x63e0fc]
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.0x5784e9.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.0x577ba8.54
mov al, byte [str._a__b__e__H:_M:_S__Y]
test al, al
je case.0x5784e9.81
push edi
push str._a__b__e__H:_M:_S__Y
jmp 0x578218
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x577d65
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x577d5c
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x5784e9.81
cmp cl, 0x39
jg case.0x5784e9.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x577d9f
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x63
ja 0x577d9f
mov cl, byte [esi]
cmp cl, 0x30
jl 0x577d9f
cmp cl, 0x39
jle 0x577d79
cmp eax, 0x63
ja case.0x5784e9.81
mov dword [esp + 0x20], eax
jmp case.0x577ba8.54
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x577dc8
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x577dbf
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x5784e9.81
cmp cl, 0x39
jg case.0x5784e9.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x577e02
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x1f
ja 0x577e02
mov cl, byte [esi]
cmp cl, 0x30
jl 0x577e02
cmp cl, 0x39
jle 0x577ddc
cmp eax, 1
jb case.0x5784e9.81
cmp eax, 0x1f
ja case.0x5784e9.81
mov dword [edi + 0xc], eax
jmp case.0x577ba8.54
mov al, byte [str._Y__m__d]
test al, al
je case.0x5784e9.81
push edi
push str._Y__m__d
jmp 0x578218
mov al, byte [str._m__d__y]
test al, al
je case.0x5784e9.81
push edi
push str._m__d__y
jmp 0x578218
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x577e63
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x577e5a
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x5784e9.81
cmp cl, 0x39
jg case.0x5784e9.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x577e9d
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x17
ja 0x577e9d
mov cl, byte [esi]
cmp cl, 0x30
jl 0x577e9d
cmp cl, 0x39
jle 0x577e77
cmp eax, 0x17
ja case.0x5784e9.81
mov dword [edi + 8], eax
mov dword [esp + 0x10], 0
jmp case.0x577ba8.54
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x577ecd
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x577ec4
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x5784e9.81
cmp cl, 0x39
jg case.0x5784e9.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x577f07
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0xc
ja 0x577f07
mov cl, byte [esi]
cmp cl, 0x30
jl 0x577f07
cmp cl, 0x39
jle 0x577ee1
cmp eax, 1
jb case.0x5784e9.81
cmp eax, 0xc
ja case.0x5784e9.81
xor edx, edx
mov ecx, 0xc
div ecx
mov dword [esp + 0x10], 1
mov dword [edi + 8], edx
jmp case.0x577ba8.54
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 3
jne 0x577f49
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x577f40
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x5784e9.81
cmp cl, 0x39
jg case.0x5784e9.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x577f86
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x16e
ja 0x577f86
mov cl, byte [esi]
cmp cl, 0x30
jl 0x577f86
cmp cl, 0x39
jle 0x577f5d
cmp eax, 1
jb case.0x5784e9.81
cmp eax, 0x16e
ja case.0x5784e9.81
dec eax
mov dword [edi + 0x1c], eax
jmp case.0x577ba8.54
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x577fba
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x577fb1
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x5784e9.81
cmp cl, 0x39
jg case.0x5784e9.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x577ff4
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0xc
ja 0x577ff4
mov cl, byte [esi]
cmp cl, 0x30
jl 0x577ff4
cmp cl, 0x39
jle 0x577fce
cmp eax, 1
jb case.0x5784e9.81
cmp eax, 0xc
ja case.0x5784e9.81
dec eax
mov dword [edi + 0x10], eax
jmp case.0x577ba8.54
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x578026
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x57801d
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x5784e9.81
cmp cl, 0x39
jg case.0x5784e9.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x578060
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x3b
ja 0x578060
mov cl, byte [esi]
cmp cl, 0x30
jl 0x578060
cmp cl, 0x39
jle 0x57803a
cmp eax, 0x3b
ja case.0x5784e9.81
mov dword [edi + 4], eax
jmp case.0x577ba8.54
movsx edx, byte [esi]
push edx
call fcn.005e6a7c
add esp, 4
test eax, eax
je case.0x577ba8.54
movsx eax, byte [esi + 1]
inc esi
push eax
call fcn.005e6a7c
add esp, 4
test eax, eax
jne 0x578085
jmp case.0x577ba8.54
mov edi, 0x6c1ba0
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push esi
push 0x6c1ba0
call fcn.005e9bc0
add esp, 0xc
test eax, eax
jne 0x5780de
mov edi, 0x6c1ba0
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.0x577ba8.54
mov edi, 0x6c1b9c
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push esi
push 0x6c1b9c
call fcn.005e9bc0
add esp, 0xc
test eax, eax
jne case.0x5784e9.81
mov edi, 0x6c1b9c
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.0x577ba8.54
mov al, byte [str._I:_M:_S__p]
test al, al
je case.0x5784e9.81
push edi
push str._I:_M:_S__p
jmp 0x578218
mov al, byte [str._H:_M]
test al, al
je case.0x5784e9.81
push edi
push str._H:_M
jmp 0x578218
mov al, byte [esi]
xor ecx, ecx
cmp al, 0x30
jl case.0x5784e9.81
cmp al, 0x39
jg case.0x5784e9.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 0x578185
cmp al, 0x39
jle 0x578170
lea eax, [esp + 0x2c]
push edi
push eax
mov dword [esp + 0x34], ecx
call fcn.00577ad0
add esp, 8
test eax, eax
je case.0x5784e9.81
jmp case.0x577ba8.54
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x5781bb
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x5781b2
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x5784e9.81
cmp cl, 0x39
jg case.0x5784e9.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x5781f5
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x3d
ja 0x5781f5
mov cl, byte [esi]
cmp cl, 0x30
jl 0x5781f5
cmp cl, 0x39
jle 0x5781cf
cmp eax, 0x3d
ja case.0x5784e9.81
mov dword [edi], eax
jmp case.0x577ba8.54
mov al, byte [str._H:_M:_S]
test al, al
je case.0x5784e9.81
push edi
push str._H:_M:_S
push esi
mov ecx, ebx
call fcn.00577b00
mov esi, eax
test esi, esi
je case.0x5784e9.81
jmp case.0x577ba8.54
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 1
jne 0x578246
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x57823d
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x5784e9.81
cmp cl, 0x39
jg case.0x5784e9.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x578280
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 7
ja 0x578280
mov cl, byte [esi]
cmp cl, 0x30
jl 0x578280
cmp cl, 0x39
jle 0x57825a
cmp eax, 1
jb case.0x5784e9.81
cmp eax, 7
ja case.0x5784e9.81
xor edx, edx
mov ecx, 7
div ecx
mov dword [edi + 0x18], edx
jmp case.0x577ba8.54
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x5782ba
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x5782b1
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x5784e9.81
cmp cl, 0x39
jg case.0x5784e9.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x5782f4
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x63
ja 0x5782f4
mov cl, byte [esi]
cmp cl, 0x30
jl 0x5782f4
cmp cl, 0x39
jle 0x5782ce
cmp eax, 0x63
ja case.0x5784e9.81
jmp case.0x577ba8.54
mov al, byte [esi]
cmp al, 0x30
jl case.0x5784e9.81
cmp al, 0x39
jg case.0x5784e9.81
mov al, byte [esi + 1]
inc esi
cmp al, 0x30
jl case.0x577ba8.54
cmp al, 0x39
jle 0x578314
jmp case.0x577ba8.54
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x578340
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x578337
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x5784e9.81
cmp cl, 0x39
jg case.0x5784e9.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x57837a
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x35
ja 0x57837a
mov cl, byte [esi]
cmp cl, 0x30
jl 0x57837a
cmp cl, 0x39
jle 0x578354
cmp eax, 0x35
ja case.0x5784e9.81
jmp case.0x577ba8.54
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 1
jne 0x57839f
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x578396
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x5784e9.81
cmp cl, 0x39
jg case.0x5784e9.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x5783d9
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 6
ja 0x5783d9
mov cl, byte [esi]
cmp cl, 0x30
jl 0x5783d9
cmp cl, 0x39
jle 0x5783b3
cmp eax, 6
ja case.0x5784e9.81
mov dword [edi + 0x18], eax
jmp case.0x577ba8.54
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x578401
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x5783f8
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x5784e9.81
cmp cl, 0x39
jg case.0x5784e9.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x57843b
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x63
ja 0x57843b
mov cl, byte [esi]
cmp cl, 0x30
jl 0x57843b
cmp cl, 0x39
jle 0x578415
cmp eax, 0x63
ja case.0x5784e9.81
cmp eax, 0x45
jae 0x57844c
add eax, 0x64
mov dword [edi + 0x14], eax
mov dword [esp + 0x18], 1
jmp case.0x577ba8.54
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 4
jne 0x578473
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x57846a
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x5784e9.81
cmp cl, 0x39
jg case.0x5784e9.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x5784b0
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x270f
ja 0x5784b0
mov cl, byte [esi]
cmp cl, 0x30
jl 0x5784b0
cmp cl, 0x39
jle 0x578487
cmp eax, 0x270f
ja case.0x5784e9.81
add eax, 0xfffff894
mov dword [esp + 0x18], 0
mov dword [edi + 0x14], eax
jmp case.0x577ba8.54
movsx eax, byte [ebp]
sub eax, 0x48
inc ebp
cmp eax, 0x31
ja case.0x5784e9.81
xor edx, edx
mov dl, byte [eax + 0x5789ec]
jmp dword [edx*4 + 0x5789c4]
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x578507
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x5784fe
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x5784e9.81
cmp cl, 0x39
jg case.0x5784e9.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x577e02
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x1f
ja 0x577e02
mov cl, byte [esi]
cmp cl, 0x30
jl 0x577e02
cmp cl, 0x39
jle 0x57851b
jmp 0x577e02
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x578569
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x578560
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x5784e9.81
cmp cl, 0x39
jg case.0x5784e9.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x5785a3
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x17
ja 0x5785a3
mov cl, byte [esi]
cmp cl, 0x30
jl 0x5785a3
cmp cl, 0x39
jle 0x57857d
cmp eax, 0x17
ja case.0x5784e9.81
mov dword [edi + 8], eax
mov dword [esp + 0x10], 0
jmp case.0x577ba8.54
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x5785d3
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x5785ca
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x5784e9.81
cmp cl, 0x39
jg case.0x5784e9.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x57860d
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0xc
ja 0x57860d
mov cl, byte [esi]
cmp cl, 0x30
jl 0x57860d
cmp cl, 0x39
jle 0x5785e7
cmp eax, 1
jb case.0x5784e9.81
cmp eax, 0xc
ja case.0x5784e9.81
dec eax
mov dword [esp + 0x10], 1
mov dword [edi + 8], eax
jmp case.0x577ba8.54
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x578647
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x57863e
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x5784e9.81
cmp cl, 0x39
jg case.0x5784e9.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x577ff4
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0xc
ja 0x577ff4
mov cl, byte [esi]
cmp cl, 0x30
jl 0x577ff4
cmp cl, 0x39
jle 0x57865b
jmp 0x577ff4
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x5786a9
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x5786a0
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x5784e9.81
cmp cl, 0x39
jg case.0x5784e9.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x5786e3
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x3b
ja 0x5786e3
mov cl, byte [esi]
cmp cl, 0x30
jl 0x5786e3
cmp cl, 0x39
jle 0x5786bd
cmp eax, 0x3b
ja case.0x5784e9.81
mov dword [edi + 4], eax
jmp case.0x577ba8.54
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x57870b
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x578702
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x5784e9.81
cmp cl, 0x39
jg case.0x5784e9.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x578745
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x3d
ja 0x578745
mov cl, byte [esi]
cmp cl, 0x30
jl 0x578745
cmp cl, 0x39
jle 0x57871f
cmp eax, 0x3d
ja case.0x5784e9.81
mov dword [edi], eax
jmp case.0x577ba8.54
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x57876c
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x578763
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x5784e9.81
cmp cl, 0x39
jg case.0x5784e9.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x5787a6
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x35
ja 0x5787a6
mov cl, byte [esi]
cmp cl, 0x30
jl 0x5787a6
cmp cl, 0x39
jle 0x578780
cmp eax, 0x35
ja case.0x5784e9.81
jmp case.0x577ba8.54
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 1
jne 0x5787cb
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x5787c2
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x5784e9.81
cmp cl, 0x39
jg case.0x5784e9.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x578805
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 6
ja 0x578805
mov cl, byte [esi]
cmp cl, 0x30
jl 0x578805
cmp cl, 0x39
jle 0x5787df
cmp eax, 6
ja case.0x5784e9.81
mov dword [edi + 0x18], eax
jmp case.0x577ba8.54
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x578826
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x57881d
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x5784e9.81
cmp cl, 0x39
jg case.0x5784e9.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x578858
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x63
ja 0x578858
mov cl, byte [esi]
cmp cl, 0x30
jl 0x578858
cmp cl, 0x39
jle 0x578832
cmp eax, 0x63
ja case.0x5784e9.81
cmp eax, 0x45
jae 0x578865
add eax, 0x64
mov dword [edi + 0x14], eax
mov al, byte [ebp]
test al, al
je 0x578880
jmp 0x577b3a
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 0x578894
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x578894
add dword [edi + 8], 0xc
mov eax, dword [esp + 0x20]
cmp eax, 0xffffffff
je 0x5788e2
mov ecx, dword [esp + 0x18]
lea eax, [eax + eax*4 - 0x5f]
test ecx, ecx
je 0x5788c9
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