Function at 0x55a150
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 0x55af2e
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x28]
movsx eax, al
push eax
call fcn.005c3311
add esp, 4
test eax, eax
je 0x55a1c2
movsx ecx, byte [esi]
push ecx
call fcn.005c3311
add esp, 4
test eax, eax
je 0x55a1bc
movsx edx, byte [esi + 1]
inc esi
push edx
call fcn.005c3311
add esp, 4
test eax, eax
jne 0x55a1aa
inc ebp
jmp case.0x55a1f8.54
mov al, byte [ebp]
cmp al, 0x25
je 0x55a1da
mov cl, byte [esi]
inc esi
inc ebp
cmp al, cl
jne case.0x55ab39.81
jmp case.0x55a1f8.54
inc ebp
movsx eax, byte [ebp]
sub eax, 0x25
inc ebp
cmp eax, 0x54
mov dword [esp + 0x2c], ebp
ja case.0x55ab39.81
xor edx, edx
mov dl, byte [eax + 0x55afbc]
jmp dword [edx*4 + 0x55af40]
mov al, byte [ebp]
cmp al, 0x63
je 0x55a1db
cmp al, 0x43
je 0x55a1db
cmp al, 0x79
je 0x55a1db
cmp al, 0x59
je 0x55a1db
cmp al, 0x78
je 0x55a1db
cmp al, 0x58
jne case.0x55ab39.81
jmp 0x55a1db
mov al, byte [esi]
inc esi
cmp al, 0x25
jne case.0x55ab39.81
jmp case.0x55a1f8.54
mov dword [esp + 0x28], 0
mov ebp, 0x639870
mov ebx, 0x639828
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.005c6540
add esp, 0xc
test eax, eax
je 0x55a291
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.005c6540
add esp, 0xc
test eax, eax
je 0x55a2a1
mov edi, dword [esp + 0x28]
add ebx, 0xa
inc edi
add ebp, 4
cmp ebx, 0x63986e
mov dword [esp + 0x28], edi
jge 0x55a2b8
jmp 0x55a242
mov eax, dword [esp + 0x28]
lea ecx, [eax + eax*4]
lea edi, [ecx*2 + 0x639828]
jmp 0x55a2ac
mov edx, dword [esp + 0x28]
lea edi, [edx*4 + 0x639870]
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.0x55ab39.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.0x55a1f8.54
mov dword [esp + 0x28], 0
mov ebp, 0x639904
mov ebx, 0x63988c
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.005c6540
add esp, 0xc
test eax, eax
je 0x55a33c
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.005c6540
add esp, 0xc
test eax, eax
je 0x55a34c
mov edi, dword [esp + 0x28]
add ebx, 0xa
inc edi
add ebp, 4
cmp ebx, 0x639904
mov dword [esp + 0x28], edi
jge 0x55a363
jmp 0x55a2ed
mov eax, dword [esp + 0x28]
lea edx, [eax + eax*4]
lea edi, [edx*2 + 0x63988c]
jmp 0x55a357
mov eax, dword [esp + 0x28]
lea edi, [eax*4 + 0x639904]
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.0x55ab39.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.0x55a1f8.54
mov al, byte [str._a__b__e__H:_M:_S__Y]
test al, al
je case.0x55ab39.81
push edi
push str._a__b__e__H:_M:_S__Y
jmp 0x55a868
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x55a3b5
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x55a3ac
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x55ab39.81
cmp cl, 0x39
jg case.0x55ab39.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x55a3ef
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x63
ja 0x55a3ef
mov cl, byte [esi]
cmp cl, 0x30
jl 0x55a3ef
cmp cl, 0x39
jle 0x55a3c9
cmp eax, 0x63
ja case.0x55ab39.81
mov dword [esp + 0x20], eax
jmp case.0x55a1f8.54
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x55a418
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x55a40f
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x55ab39.81
cmp cl, 0x39
jg case.0x55ab39.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x55a452
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x1f
ja 0x55a452
mov cl, byte [esi]
cmp cl, 0x30
jl 0x55a452
cmp cl, 0x39
jle 0x55a42c
cmp eax, 1
jb case.0x55ab39.81
cmp eax, 0x1f
ja case.0x55ab39.81
mov dword [edi + 0xc], eax
jmp case.0x55a1f8.54
mov al, byte [str._Y__m__d]
test al, al
je case.0x55ab39.81
push edi
push str._Y__m__d
jmp 0x55a868
mov al, byte [str._m__d__y]
test al, al
je case.0x55ab39.81
push edi
push str._m__d__y
jmp 0x55a868
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x55a4b3
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x55a4aa
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x55ab39.81
cmp cl, 0x39
jg case.0x55ab39.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x55a4ed
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x17
ja 0x55a4ed
mov cl, byte [esi]
cmp cl, 0x30
jl 0x55a4ed
cmp cl, 0x39
jle 0x55a4c7
cmp eax, 0x17
ja case.0x55ab39.81
mov dword [edi + 8], eax
mov dword [esp + 0x10], 0
jmp case.0x55a1f8.54
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x55a51d
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x55a514
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x55ab39.81
cmp cl, 0x39
jg case.0x55ab39.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x55a557
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0xc
ja 0x55a557
mov cl, byte [esi]
cmp cl, 0x30
jl 0x55a557
cmp cl, 0x39
jle 0x55a531
cmp eax, 1
jb case.0x55ab39.81
cmp eax, 0xc
ja case.0x55ab39.81
xor edx, edx
mov ecx, 0xc
div ecx
mov dword [esp + 0x10], 1
mov dword [edi + 8], edx
jmp case.0x55a1f8.54
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 3
jne 0x55a599
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x55a590
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x55ab39.81
cmp cl, 0x39
jg case.0x55ab39.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x55a5d6
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x16e
ja 0x55a5d6
mov cl, byte [esi]
cmp cl, 0x30
jl 0x55a5d6
cmp cl, 0x39
jle 0x55a5ad
cmp eax, 1
jb case.0x55ab39.81
cmp eax, 0x16e
ja case.0x55ab39.81
dec eax
mov dword [edi + 0x1c], eax
jmp case.0x55a1f8.54
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x55a60a
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x55a601
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x55ab39.81
cmp cl, 0x39
jg case.0x55ab39.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x55a644
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0xc
ja 0x55a644
mov cl, byte [esi]
cmp cl, 0x30
jl 0x55a644
cmp cl, 0x39
jle 0x55a61e
cmp eax, 1
jb case.0x55ab39.81
cmp eax, 0xc
ja case.0x55ab39.81
dec eax
mov dword [edi + 0x10], eax
jmp case.0x55a1f8.54
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x55a676
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x55a66d
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x55ab39.81
cmp cl, 0x39
jg case.0x55ab39.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x55a6b0
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x3b
ja 0x55a6b0
mov cl, byte [esi]
cmp cl, 0x30
jl 0x55a6b0
cmp cl, 0x39
jle 0x55a68a
cmp eax, 0x3b
ja case.0x55ab39.81
mov dword [edi + 4], eax
jmp case.0x55a1f8.54
movsx edx, byte [esi]
push edx
call fcn.005c3311
add esp, 4
test eax, eax
je case.0x55a1f8.54
movsx eax, byte [esi + 1]
inc esi
push eax
call fcn.005c3311
add esp, 4
test eax, eax
jne 0x55a6d5
jmp case.0x55a1f8.54
mov edi, 0x6bda5c
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push esi
push 0x6bda5c
call fcn.005c6540
add esp, 0xc
test eax, eax
jne 0x55a72e
mov edi, 0x6bda5c
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.0x55a1f8.54
mov edi, 0x6bda58
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push esi
push 0x6bda58
call fcn.005c6540
add esp, 0xc
test eax, eax
jne case.0x55ab39.81
mov edi, 0x6bda58
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.0x55a1f8.54
mov al, byte [str._I:_M:_S__p]
test al, al
je case.0x55ab39.81
push edi
push str._I:_M:_S__p
jmp 0x55a868
mov al, byte [str._H:_M]
test al, al
je case.0x55ab39.81
push edi
push str._H:_M
jmp 0x55a868
mov al, byte [esi]
xor ecx, ecx
cmp al, 0x30
jl case.0x55ab39.81
cmp al, 0x39
jg case.0x55ab39.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 0x55a7d5
cmp al, 0x39
jle 0x55a7c0
lea eax, [esp + 0x2c]
push edi
push eax
mov dword [esp + 0x34], ecx
call fcn.0055a120
add esp, 8
test eax, eax
je case.0x55ab39.81
jmp case.0x55a1f8.54
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x55a80b
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x55a802
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x55ab39.81
cmp cl, 0x39
jg case.0x55ab39.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x55a845
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x3d
ja 0x55a845
mov cl, byte [esi]
cmp cl, 0x30
jl 0x55a845
cmp cl, 0x39
jle 0x55a81f
cmp eax, 0x3d
ja case.0x55ab39.81
mov dword [edi], eax
jmp case.0x55a1f8.54
mov al, byte [str._H:_M:_S]
test al, al
je case.0x55ab39.81
push edi
push str._H:_M:_S
push esi
mov ecx, ebx
call fcn.0055a150
mov esi, eax
test esi, esi
je case.0x55ab39.81
jmp case.0x55a1f8.54
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 1
jne 0x55a896
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x55a88d
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x55ab39.81
cmp cl, 0x39
jg case.0x55ab39.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x55a8d0
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 7
ja 0x55a8d0
mov cl, byte [esi]
cmp cl, 0x30
jl 0x55a8d0
cmp cl, 0x39
jle 0x55a8aa
cmp eax, 1
jb case.0x55ab39.81
cmp eax, 7
ja case.0x55ab39.81
xor edx, edx
mov ecx, 7
div ecx
mov dword [edi + 0x18], edx
jmp case.0x55a1f8.54
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x55a90a
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x55a901
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x55ab39.81
cmp cl, 0x39
jg case.0x55ab39.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x55a944
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x63
ja 0x55a944
mov cl, byte [esi]
cmp cl, 0x30
jl 0x55a944
cmp cl, 0x39
jle 0x55a91e
cmp eax, 0x63
ja case.0x55ab39.81
jmp case.0x55a1f8.54
mov al, byte [esi]
cmp al, 0x30
jl case.0x55ab39.81
cmp al, 0x39
jg case.0x55ab39.81
mov al, byte [esi + 1]
inc esi
cmp al, 0x30
jl case.0x55a1f8.54
cmp al, 0x39
jle 0x55a964
jmp case.0x55a1f8.54
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x55a990
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x55a987
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x55ab39.81
cmp cl, 0x39
jg case.0x55ab39.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x55a9ca
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x35
ja 0x55a9ca
mov cl, byte [esi]
cmp cl, 0x30
jl 0x55a9ca
cmp cl, 0x39
jle 0x55a9a4
cmp eax, 0x35
ja case.0x55ab39.81
jmp case.0x55a1f8.54
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 1
jne 0x55a9ef
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x55a9e6
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x55ab39.81
cmp cl, 0x39
jg case.0x55ab39.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x55aa29
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 6
ja 0x55aa29
mov cl, byte [esi]
cmp cl, 0x30
jl 0x55aa29
cmp cl, 0x39
jle 0x55aa03
cmp eax, 6
ja case.0x55ab39.81
mov dword [edi + 0x18], eax
jmp case.0x55a1f8.54
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x55aa51
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x55aa48
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x55ab39.81
cmp cl, 0x39
jg case.0x55ab39.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x55aa8b
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x63
ja 0x55aa8b
mov cl, byte [esi]
cmp cl, 0x30
jl 0x55aa8b
cmp cl, 0x39
jle 0x55aa65
cmp eax, 0x63
ja case.0x55ab39.81
cmp eax, 0x45
jae 0x55aa9c
add eax, 0x64
mov dword [edi + 0x14], eax
mov dword [esp + 0x18], 1
jmp case.0x55a1f8.54
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 4
jne 0x55aac3
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x55aaba
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x55ab39.81
cmp cl, 0x39
jg case.0x55ab39.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x55ab00
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x270f
ja 0x55ab00
mov cl, byte [esi]
cmp cl, 0x30
jl 0x55ab00
cmp cl, 0x39
jle 0x55aad7
cmp eax, 0x270f
ja case.0x55ab39.81
add eax, 0xfffff894
mov dword [esp + 0x18], 0
mov dword [edi + 0x14], eax
jmp case.0x55a1f8.54
movsx eax, byte [ebp]
sub eax, 0x48
inc ebp
cmp eax, 0x31
ja case.0x55ab39.81
xor edx, edx
mov dl, byte [eax + 0x55b03c]
jmp dword [edx*4 + 0x55b014]
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x55ab57
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x55ab4e
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x55ab39.81
cmp cl, 0x39
jg case.0x55ab39.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x55a452
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x1f
ja 0x55a452
mov cl, byte [esi]
cmp cl, 0x30
jl 0x55a452
cmp cl, 0x39
jle 0x55ab6b
jmp 0x55a452
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x55abb9
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x55abb0
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x55ab39.81
cmp cl, 0x39
jg case.0x55ab39.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x55abf3
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x17
ja 0x55abf3
mov cl, byte [esi]
cmp cl, 0x30
jl 0x55abf3
cmp cl, 0x39
jle 0x55abcd
cmp eax, 0x17
ja case.0x55ab39.81
mov dword [edi + 8], eax
mov dword [esp + 0x10], 0
jmp case.0x55a1f8.54
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x55ac23
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x55ac1a
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x55ab39.81
cmp cl, 0x39
jg case.0x55ab39.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x55ac5d
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0xc
ja 0x55ac5d
mov cl, byte [esi]
cmp cl, 0x30
jl 0x55ac5d
cmp cl, 0x39
jle 0x55ac37
cmp eax, 1
jb case.0x55ab39.81
cmp eax, 0xc
ja case.0x55ab39.81
dec eax
mov dword [esp + 0x10], 1
mov dword [edi + 8], eax
jmp case.0x55a1f8.54
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x55ac97
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x55ac8e
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x55ab39.81
cmp cl, 0x39
jg case.0x55ab39.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x55a644
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0xc
ja 0x55a644
mov cl, byte [esi]
cmp cl, 0x30
jl 0x55a644
cmp cl, 0x39
jle 0x55acab
jmp 0x55a644
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x55acf9
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x55acf0
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x55ab39.81
cmp cl, 0x39
jg case.0x55ab39.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x55ad33
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x3b
ja 0x55ad33
mov cl, byte [esi]
cmp cl, 0x30
jl 0x55ad33
cmp cl, 0x39
jle 0x55ad0d
cmp eax, 0x3b
ja case.0x55ab39.81
mov dword [edi + 4], eax
jmp case.0x55a1f8.54
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x55ad5b
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x55ad52
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x55ab39.81
cmp cl, 0x39
jg case.0x55ab39.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x55ad95
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x3d
ja 0x55ad95
mov cl, byte [esi]
cmp cl, 0x30
jl 0x55ad95
cmp cl, 0x39
jle 0x55ad6f
cmp eax, 0x3d
ja case.0x55ab39.81
mov dword [edi], eax
jmp case.0x55a1f8.54
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x55adbc
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x55adb3
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x55ab39.81
cmp cl, 0x39
jg case.0x55ab39.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x55adf6
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x35
ja 0x55adf6
mov cl, byte [esi]
cmp cl, 0x30
jl 0x55adf6
cmp cl, 0x39
jle 0x55add0
cmp eax, 0x35
ja case.0x55ab39.81
jmp case.0x55a1f8.54
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 1
jne 0x55ae1b
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x55ae12
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x55ab39.81
cmp cl, 0x39
jg case.0x55ab39.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x55ae55
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 6
ja 0x55ae55
mov cl, byte [esi]
cmp cl, 0x30
jl 0x55ae55
cmp cl, 0x39
jle 0x55ae2f
cmp eax, 6
ja case.0x55ab39.81
mov dword [edi + 0x18], eax
jmp case.0x55a1f8.54
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x55ae76
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x55ae6d
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x55ab39.81
cmp cl, 0x39
jg case.0x55ab39.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x55aea8
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x63
ja 0x55aea8
mov cl, byte [esi]
cmp cl, 0x30
jl 0x55aea8
cmp cl, 0x39
jle 0x55ae82
cmp eax, 0x63
ja case.0x55ab39.81
cmp eax, 0x45
jae 0x55aeb5
add eax, 0x64
mov dword [edi + 0x14], eax
mov al, byte [ebp]
test al, al
je 0x55aed0
jmp 0x55a18a
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 0x55aee4
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x55aee4
add dword [edi + 8], 0xc
mov eax, dword [esp + 0x20]
cmp eax, 0xffffffff
je 0x55af32
mov ecx, dword [esp + 0x18]
lea eax, [eax + eax*4 - 0x5f]
test ecx, ecx
je 0x55af19
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