Function at 0x577050
Capabilities:
Parse credit card information

Disassembly:
sub esp, 0x14
xor eax, eax
push ebx
mov ebx, dword [esp + 0x20]
push ebp
mov dword [esp + 0x14], eax
mov dword [esp + 8], eax
mov dword [esp + 0xc], eax
mov al, byte [ebx]
push esi
mov esi, dword [esp + 0x24]
mov ebp, ecx
push edi
mov dword [esp + 0x18], ebp
mov dword [esp + 0x20], 0xffffffff
test al, al
je 0x577d71
mov edi, dword [esp + 0x30]
lea esp, [esp]
movsx eax, al
push eax
call fcn.005fa6d1
add esp, 4
test eax, eax
je 0x5770c8
movsx ecx, byte [esi]
push ecx
call fcn.005fa6d1
add esp, 4
test eax, eax
je 0x5770c2
movsx edx, byte [esi + 1]
inc esi
push edx
call fcn.005fa6d1
add esp, 4
test eax, eax
jne 0x5770b0
inc ebx
jmp case.0x5770fd.90
mov al, byte [ebx]
inc ebx
cmp al, 0x25
je 0x5770e6
mov cl, byte [esi]
inc esi
cmp al, cl
je case.0x5770fd.90
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x14
ret 0xc
movsx eax, byte [ebx]
inc ebx
sub eax, 0x25
mov dword [esp + 0x2c], ebx
cmp eax, 0x54
ja case.0x5770fd.38
movzx edx, byte [eax + 0x577dfc]
jmp dword [edx*4 + 0x577d80]
mov al, byte [ebx]
cmp al, 0x63
je 0x5770e6
cmp al, 0x43
je 0x5770e6
cmp al, 0x79
je 0x5770e6
cmp al, 0x59
je 0x5770e6
cmp al, 0x78
je 0x5770e6
cmp al, 0x58
je 0x5770e6
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x14
ret 0xc
mov al, byte [esi]
inc esi
cmp al, 0x25
jne case.0x5770fd.38
jmp case.0x5770fd.90
xor ebp, ebp
mov ebx, 0x686860
mov edi, 0x686818
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x577147
sub eax, edx
push eax
push esi
push edi
call fcn.005ffd4c
add esp, 0xc
test eax, eax
je 0x57718d
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x577164
sub eax, edx
push eax
push esi
push ebx
call fcn.005ffd4c
add esp, 0xc
test eax, eax
je 0x5771a9
add edi, 0xa
inc ebp
add ebx, 4
cmp edi, 0x68685e
jl 0x577142
jmp 0x5771be
lea eax, [ebp + ebp*4]
lea eax, [eax*2 + 0x686818]
lea edx, [eax + 1]
jmp 0x5771a0
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x5771a0
jmp 0x5771ba
lea eax, [ebp*4 + 0x686860]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x5771b3
sub eax, edx
add esi, eax
cmp ebp, 7
je case.0x5770fd.38
mov ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0x2c]
mov dword [ecx + 0x18], ebp
mov ebp, dword [esp + 0x18]
mov edi, ecx
jmp case.0x5770fd.90
xor ebp, ebp
mov ebx, 0x6868f8
mov edi, 0x686880
lea esp, [esp]
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x5771f5
sub eax, edx
push eax
push esi
push edi
call fcn.005ffd4c
add esp, 0xc
test eax, eax
je 0x57723b
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x577212
sub eax, edx
push eax
push esi
push ebx
call fcn.005ffd4c
add esp, 0xc
test eax, eax
je 0x577259
add edi, 0xa
inc ebp
add ebx, 4
cmp edi, 0x6868f8
jl 0x5771f0
jmp 0x57726e
lea eax, [ebp + ebp*4]
lea eax, [eax*2 + 0x686880]
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x577250
jmp 0x57726a
lea eax, [ebp*4 + 0x6868f8]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x577263
sub eax, edx
add esi, eax
cmp ebp, 0xc
je case.0x5770fd.38
mov edx, dword [esp + 0x30]
mov ebx, dword [esp + 0x2c]
mov dword [edx + 0x10], ebp
mov ebp, dword [esp + 0x18]
mov edi, edx
jmp case.0x5770fd.90
push edi
push str._a__b__e__H:_M:_S__Y
push esi
mov ecx, ebp
call fcn.00577050
mov esi, eax
test esi, esi
je case.0x5770fd.38
jmp case.0x5770fd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x5772bc
inc esi
cmp byte [esi], 0x20
je 0x5772b6
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x5770fd.38
cmp cl, 0x39
jg case.0x5770fd.38
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x5772f6
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x63
ja 0x5772f6
mov cl, byte [esi]
cmp cl, 0x30
jl 0x5772f6
cmp cl, 0x39
jle 0x5772d0
cmp eax, 0x63
ja case.0x5770fd.38
mov dword [esp + 0x20], eax
jmp case.0x5770fd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x57731a
inc esi
cmp byte [esi], 0x20
je 0x577314
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x5770fd.38
cmp cl, 0x39
jg case.0x5770fd.38
mov edi, edi
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x577356
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x1f
ja 0x577356
mov cl, byte [esi]
cmp cl, 0x30
jl 0x577356
cmp cl, 0x39
jle 0x577330
lea edx, [eax - 1]
cmp edx, 0x1e
ja case.0x5770fd.38
mov dword [edi + 0xc], eax
jmp case.0x5770fd.90
push edi
push str._Y__m__d
jmp 0x577293
push edi
push str._m__d__y
jmp 0x577293
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x577396
lea esp, [esp]
inc esi
cmp byte [esi], 0x20
je 0x577390
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x5770fd.38
cmp cl, 0x39
jg case.0x5770fd.38
lea ebx, [ebx]
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x577a46
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x17
ja 0x577a46
mov cl, byte [esi]
cmp cl, 0x30
jl 0x577a46
cmp cl, 0x39
jle 0x5773b0
jmp 0x577a46
xor ecx, ecx
cmp byte [esi], 0x20
mov edx, 2
jne 0x5773f9
inc esi
cmp byte [esi], 0x20
je 0x5773f3
mov al, byte [esi]
cmp al, 0x30
jl case.0x5770fd.38
cmp al, 0x39
jg case.0x5770fd.38
jmp 0x577410
movsx eax, al
dec edx
lea ecx, [ecx + ecx*4]
inc esi
lea ecx, [eax + ecx*2 - 0x30]
test edx, edx
jle 0x577434
lea eax, [ecx + ecx*4]
add eax, eax
cmp eax, 0xc
ja 0x577434
mov al, byte [esi]
cmp al, 0x30
jl 0x577434
cmp al, 0x39
jle 0x577410
lea edx, [ecx - 1]
cmp edx, 0xb
ja case.0x5770fd.38
mov eax, 0xaaaaaaab
mul ecx
shr edx, 3
lea eax, [edx + edx*2]
add eax, eax
add eax, eax
sub ecx, eax
mov dword [edi + 8], ecx
mov dword [esp + 0x10], 1
jmp case.0x5770fd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 3
jne 0x577476
nop
inc esi
cmp byte [esi], 0x20
je 0x577470
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x5770fd.38
cmp cl, 0x39
jg case.0x5770fd.38
lea ebx, [ebx]
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x5774b9
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x16e
ja 0x5774b9
mov cl, byte [esi]
cmp cl, 0x30
jl 0x5774b9
cmp cl, 0x39
jle 0x577490
lea edx, [eax - 1]
cmp edx, 0x16d
ja case.0x5770fd.38
dec eax
mov dword [edi + 0x1c], eax
jmp case.0x5770fd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x5774e6
lea ecx, [ecx]
inc esi
cmp byte [esi], 0x20
je 0x5774e0
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x5770fd.38
cmp cl, 0x39
jg case.0x5770fd.38
lea ebx, [ebx]
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x577b26
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0xc
ja 0x577b26
mov cl, byte [esi]
cmp cl, 0x30
jl 0x577b26
cmp cl, 0x39
jle 0x577500
jmp 0x577b26
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x577549
inc esi
cmp byte [esi], 0x20
je 0x577543
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x5770fd.38
cmp cl, 0x39
jg case.0x5770fd.38
lea ecx, [ecx]
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x577586
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x3b
ja 0x577586
mov cl, byte [esi]
cmp cl, 0x30
jl 0x577586
cmp cl, 0x39
jle 0x577560
cmp eax, 0x3b
ja case.0x5770fd.38
mov dword [edi + 4], eax
jmp case.0x5770fd.90
movsx edx, byte [esi]
push edx
call fcn.005fa6d1
add esp, 4
test eax, eax
je case.0x5770fd.90
jmp 0x5775b0
movsx eax, byte [esi + 1]
inc esi
push eax
call fcn.005fa6d1
add esp, 4
test eax, eax
jne 0x5775b0
jmp case.0x5770fd.90
push 2
push esi
push 0x686954
call fcn.005ffd4c
add esp, 0xc
test eax, eax
jne 0x5775e3
add esi, 2
jmp case.0x5770fd.90
push 2
push esi
push 0x686950
call fcn.005ffd4c
add esp, 0xc
test eax, eax
jne case.0x5770fd.38
add esi, 2
mov dword [esp + 0x1c], 1
jmp case.0x5770fd.90
push edi
push str._I:_M:_S__p
jmp 0x577293
push edi
push str._H:_M
jmp 0x577293
mov al, byte [esi]
xor ecx, ecx
cmp al, 0x30
jl case.0x5770fd.38
cmp al, 0x39
jg case.0x5770fd.38
inc esi
movsx edx, al
mov al, byte [esi]
cmp al, 0x30
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*2 - 0x30]
jl 0x57764a
cmp al, 0x39
jle 0x577635
lea eax, [esp + 0x2c]
push edi
push eax
mov dword [esp + 0x34], ecx
call fcn.00577020
add esp, 8
test eax, eax
je case.0x5770fd.38
jmp case.0x5770fd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x57767b
inc esi
cmp byte [esi], 0x20
je 0x577675
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x5770fd.38
cmp cl, 0x39
jg case.0x5770fd.38
nop
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x5776b6
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x3d
ja 0x5776b6
mov cl, byte [esi]
cmp cl, 0x30
jl 0x5776b6
cmp cl, 0x39
jle 0x577690
cmp eax, 0x3d
ja case.0x5770fd.38
mov dword [edi], eax
jmp case.0x5770fd.90
push edi
push str._H:_M:_S
jmp 0x577293
xor ecx, ecx
cmp byte [esi], 0x20
mov edx, 1
jne 0x5776e6
lea ecx, [ecx]
inc esi
cmp byte [esi], 0x20
je 0x5776e0
mov al, byte [esi]
cmp al, 0x30
jl case.0x5770fd.38
cmp al, 0x39
jg case.0x5770fd.38
movsx eax, al
dec edx
lea ecx, [ecx + ecx*4]
inc esi
lea ecx, [eax + ecx*2 - 0x30]
test edx, edx
jle 0x57771c
lea eax, [ecx + ecx*4]
add eax, eax
cmp eax, 7
ja 0x57771c
mov al, byte [esi]
cmp al, 0x30
jl 0x57771c
cmp al, 0x39
jle 0x5776f8
lea edx, [ecx - 1]
cmp edx, 6
ja case.0x5770fd.38
mov eax, 0x24924925
mul ecx
mov eax, ecx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 2
lea edx, [eax*8]
sub edx, eax
sub ecx, edx
mov dword [edi + 0x18], ecx
jmp case.0x5770fd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x577766
lea esp, [esp]
inc esi
cmp byte [esi], 0x20
je 0x577760
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x5770fd.38
cmp cl, 0x39
jg case.0x5770fd.38
lea ebx, [ebx]
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x5777a6
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x63
ja 0x5777a6
mov cl, byte [esi]
cmp cl, 0x30
jl 0x5777a6
cmp cl, 0x39
jle 0x577780
cmp eax, 0x63
ja case.0x5770fd.38
jmp case.0x5770fd.90
mov al, byte [esi]
cmp al, 0x30
jl case.0x5770fd.38
cmp al, 0x39
jg case.0x5770fd.38
mov al, byte [esi + 1]
inc esi
cmp al, 0x30
jl case.0x5770fd.90
cmp al, 0x39
jle 0x5777c6
jmp case.0x5770fd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x5777ed
inc esi
cmp byte [esi], 0x20
je 0x5777e7
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x5770fd.38
cmp cl, 0x39
jg case.0x5770fd.38
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x577827
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x35
ja 0x577827
mov cl, byte [esi]
cmp cl, 0x30
jl 0x577827
cmp cl, 0x39
jle 0x577801
cmp eax, 0x35
ja case.0x5770fd.38
jmp case.0x5770fd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 1
jne 0x577847
inc esi
cmp byte [esi], 0x20
je 0x577841
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x5770fd.38
cmp cl, 0x39
jg case.0x5770fd.38
jmp 0x577860
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x577886
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 6
ja 0x577886
mov cl, byte [esi]
cmp cl, 0x30
jl 0x577886
cmp cl, 0x39
jle 0x577860
cmp eax, 6
ja case.0x5770fd.38
mov dword [edi + 0x18], eax
jmp case.0x5770fd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x5778a9
inc esi
cmp byte [esi], 0x20
je 0x5778a3
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x5770fd.38
cmp cl, 0x39
jg case.0x5770fd.38
lea ecx, [ecx]
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x5778e6
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x63
ja 0x5778e6
mov cl, byte [esi]
cmp cl, 0x30
jl 0x5778e6
cmp cl, 0x39
jle 0x5778c0
cmp eax, 0x63
ja case.0x5770fd.38
cmp eax, 0x45
jae 0x5778f7
add eax, 0x64
mov dword [esp + 0x14], 1
jmp 0x577d17
xor eax, eax
cmp byte [esi], 0x20
mov edx, 4
jne 0x577916
inc esi
cmp byte [esi], 0x20
je 0x577910
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x5770fd.38
cmp cl, 0x39
jg case.0x5770fd.38
lea ebx, [ebx]
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x577959
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x270f
ja 0x577959
mov cl, byte [esi]
cmp cl, 0x30
jl 0x577959
cmp cl, 0x39
jle 0x577930
cmp eax, 0x270f
ja case.0x5770fd.38
add eax, 0xfffff894
mov dword [esp + 0x14], 0
jmp 0x577d17
movsx eax, byte [ebx]
sub eax, 0x48
inc ebx
cmp eax, 0x31
ja case.0x5770fd.38
movzx edx, byte [eax + 0x577e7c]
jmp dword [edx*4 + 0x577e54]
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x5779a6
inc esi
cmp byte [esi], 0x20
je 0x5779a0
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x5770fd.38
cmp cl, 0x39
jg case.0x5770fd.38
lea ebx, [ebx]
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x5779e6
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x1f
ja 0x5779e6
mov cl, byte [esi]
cmp cl, 0x30
jl 0x5779e6
cmp cl, 0x39
jle 0x5779c0
lea edx, [eax - 1]
cmp edx, 0x1e
ja case.0x5770fd.38
mov dword [edi + 0xc], eax
jmp case.0x5770fd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x577a0c
inc esi
cmp byte [esi], 0x20
je 0x577a06
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x5770fd.38
cmp cl, 0x39
jg case.0x5770fd.38
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x577a46
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x17
ja 0x577a46
mov cl, byte [esi]
cmp cl, 0x30
jl 0x577a46
cmp cl, 0x39
jle 0x577a20
cmp eax, 0x17
ja case.0x5770fd.38
mov dword [edi + 8], eax
mov dword [esp + 0x10], 0
jmp case.0x5770fd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x577a76
jmp 0x577a70
inc esi
cmp byte [esi], 0x20
je 0x577a70
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x5770fd.38
cmp cl, 0x39
jg case.0x5770fd.38
lea ebx, [ebx]
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x577ab6
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0xc
ja 0x577ab6
mov cl, byte [esi]
cmp cl, 0x30
jl 0x577ab6
cmp cl, 0x39
jle 0x577a90
lea edx, [eax - 1]
cmp edx, 0xb
ja case.0x5770fd.38
dec eax
mov dword [edi + 8], eax
mov dword [esp + 0x10], 1
jmp case.0x5770fd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x577ae6
nop
inc esi
cmp byte [esi], 0x20
je 0x577ae0
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x5770fd.38
cmp cl, 0x39
jg case.0x5770fd.38
lea ebx, [ebx]
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x577b26
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0xc
ja 0x577b26
mov cl, byte [esi]
cmp cl, 0x30
jl 0x577b26
cmp cl, 0x39
jle 0x577b00
lea edx, [eax - 1]
cmp edx, 0xb
ja case.0x5770fd.38
dec eax
mov dword [edi + 0x10], eax
jmp case.0x5770fd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x577b4d
inc esi
cmp byte [esi], 0x20
je 0x577b47
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x5770fd.38
cmp cl, 0x39
jg case.0x5770fd.38
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x577b87
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x3b
ja 0x577b87
mov cl, byte [esi]
cmp cl, 0x30
jl 0x577b87
cmp cl, 0x39
jle 0x577b61
cmp eax, 0x3b
ja case.0x5770fd.38
mov dword [edi + 4], eax
jmp case.0x5770fd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x577baa
inc esi
cmp byte [esi], 0x20
je 0x577ba4
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x5770fd.38
cmp cl, 0x39
jg case.0x5770fd.38
mov edi, edi
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x577be6
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x3d
ja 0x577be6
mov cl, byte [esi]
cmp cl, 0x30
jl 0x577be6
cmp cl, 0x39
jle 0x577bc0
cmp eax, 0x3d
ja case.0x5770fd.38
mov dword [edi], eax
jmp case.0x5770fd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x577c08
inc esi
cmp byte [esi], 0x20
je 0x577c02
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x5770fd.38
cmp cl, 0x39
jg case.0x5770fd.38
lea esp, [esp]
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x577c46
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x35
ja 0x577c46
mov cl, byte [esi]
cmp cl, 0x30
jl 0x577c46
cmp cl, 0x39
jle 0x577c20
cmp eax, 0x35
ja case.0x5770fd.38
jmp case.0x5770fd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 1
jne 0x577c66
inc esi
cmp byte [esi], 0x20
je 0x577c60
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x5770fd.38
cmp cl, 0x39
jg case.0x5770fd.38
lea ebx, [ebx]
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x577ca6
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 6
ja 0x577ca6
mov cl, byte [esi]
cmp cl, 0x30
jl 0x577ca6
cmp cl, 0x39
jle 0x577c80
cmp eax, 6
ja case.0x5770fd.38
mov dword [edi + 0x18], eax
jmp case.0x5770fd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x577cc6
inc esi
cmp byte [esi], 0x20
je 0x577cc0
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x5770fd.38
cmp cl, 0x39
jg case.0x5770fd.38
lea ebx, [ebx]
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x577d06
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x63
ja 0x577d06
mov cl, byte [esi]
cmp cl, 0x30
jl 0x577d06
cmp cl, 0x39
jle 0x577ce0
cmp eax, 0x63
ja case.0x5770fd.38
cmp eax, 0x45
jae 0x577d17
add eax, 0x64
mov dword [edi + 0x14], eax
mov al, byte [ebx]
test al, al
jne 0x577090
cmp dword [esp + 0x10], 0
je 0x577d36
cmp dword [esp + 0x1c], 0
je 0x577d36
add dword [edi + 8], 0xc
mov eax, dword [esp + 0x20]
cmp eax, 0xffffffff
je 0x577d71
cmp dword [esp + 0x14], 0
je 0x577d68
lea ecx, [eax - 0x13]
mov eax, dword [edi + 0x14]
imul ecx, ecx, 0x64
cdq
mov ebx, 0x64
idiv ebx
mov eax, esi
add ecx, edx
mov dword [edi + 0x14], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 0xc
add eax, 0xffffffed
imul eax, eax, 0x64
mov dword [edi + 0x14], eax
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 0xc