Function at 0x401180
Capabilities:
Parse credit card information

Disassembly:
sub esp, 0x28
mov ecx, dword [esp + 0x30]
xor eax, eax
push ebx
push ebp
mov ebp, dword [esp + 0x34]
mov dword [esp + 0x28], eax
mov dword [esp + 0xc], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], eax
mov dword [esp + 8], eax
mov dword [esp + 0x10], eax
mov al, byte [ecx]
test al, al
push esi
push edi
mov dword [esp + 0x34], 0xffffffff
je 0x402165
movzx edx, al
test byte [edx*2 + 0x42e3d8], 0x40
je 0x4011fa
movzx eax, byte [ebp]
test byte [eax*2 + 0x42e3d8], 0x40
je 0x4011f0
mov edi, edi
movzx edx, byte [ebp + 1]
mov al, byte [edx*2 + 0x42e3d8]
inc ebp
test al, 0x40
jne 0x4011e0
inc ecx
mov dword [esp + 0x40], ecx
jmp case.0x401237.90
cmp al, 0x25
je 0x401219
mov dl, byte [ebp]
inc ebp
inc ecx
cmp al, dl
mov dword [esp + 0x40], ecx
je case.0x401237.90
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x28
ret
inc ecx
lea ebx, [ebx]
movsx eax, byte [ecx]
inc ecx
sub eax, 0x25
cmp eax, 0x54
mov dword [esp + 0x40], ecx
ja case.0x401237.38
movzx eax, byte [eax + 0x4021ec]
jmp dword [eax*4 + 0x402170]
mov ecx, dword [esp + 0x40]
mov al, byte [ecx]
cmp al, 0x63
je 0x401220
cmp al, 0x43
je 0x401220
cmp al, 0x79
je 0x401220
cmp al, 0x59
je 0x401220
cmp al, 0x78
je 0x401220
cmp al, 0x58
je 0x401220
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x28
ret
mov cl, byte [ebp]
inc ebp
cmp cl, 0x25
jne case.0x401237.38
jmp case.0x401237.90
mov edx, dword [esp + 0x48]
mov eax, dword [edx]
xor ebx, ebx
mov dword [esp + 0x2c], eax
mov edi, 0x42e250
mov esi, 0x42e208
lea ebx, [ebx]
cmp dword [esp + 0x2c], 1
je 0x4012d8
mov eax, esi
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4012a0
sub eax, edx
push eax
push ebp
push esi
call fcn.00401040
add esp, 0xc
test eax, eax
je 0x4012e9
mov eax, edi
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4012c0
sub eax, edx
push eax
push ebp
push edi
call fcn.00401040
add esp, 0xc
test eax, eax
je 0x4012ff
add esi, 0xa
inc ebx
add edi, 4
cmp esi, 0x42e24e
jl 0x401290
jmp 0x401325
lea eax, [ebx + ebx*4]
lea eax, [eax*2 + 0x42e208]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4012f6
jmp 0x401317
lea eax, [ebx*4 + 0x42e250]
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x401310
mov ecx, dword [esp + 0x48]
sub eax, edx
add ebp, eax
mov dword [ecx], 2
cmp ebx, 7
je case.0x401237.38
mov edx, dword [esp + 0x44]
mov dword [edx + 0x18], ebx
mov dword [esp + 0x18], 1
jmp case.0x401237.90
xor ebx, ebx
mov edi, 0x42e2e8
mov esi, 0x42e270
mov edi, edi
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x401355
sub eax, edx
push eax
push ebp
push esi
call fcn.00401040
add esp, 0xc
test eax, eax
je 0x40139b
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x401372
sub eax, edx
push eax
push ebp
push edi
call fcn.00401040
add esp, 0xc
test eax, eax
je 0x4013b1
add esi, 0xa
inc ebx
add edi, 4
cmp esi, 0x42e2e8
jl 0x401350
jmp 0x4013d5
lea eax, [ebx + ebx*4]
lea eax, [eax*2 + 0x42e270]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4013a8
jmp 0x4013c7
lea eax, [ebx*4 + 0x42e2e8]
lea edx, [eax + 1]
jmp 0x4013c0
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4013c0
sub eax, edx
add ebp, eax
mov eax, dword [esp + 0x48]
mov dword [eax], 2
cmp ebx, 0xc
je case.0x401237.38
mov ecx, dword [esp + 0x44]
mov dword [ecx + 0x10], ebx
jmp 0x401fdf
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x44]
push edx
push eax
push str._a__b__e__H:_M:_S__Y
jmp 0x401507
mov cl, byte [ebp]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x401419
lea ecx, [ecx]
mov cl, byte [ebp + 1]
inc ebp
cmp cl, 0x20
je 0x401410
mov cl, byte [ebp]
cmp cl, 0x30
jl case.0x401237.38
cmp cl, 0x39
jg case.0x401237.38
mov edi, edi
inc ebp
movsx ecx, cl
dec edx
test edx, edx
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2 - 0x30]
jle 0x401457
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x63
ja 0x401457
mov cl, byte [ebp]
cmp cl, 0x30
jl 0x401457
cmp cl, 0x39
jle 0x401430
cmp eax, 0x63
ja case.0x401237.38
mov dword [esp + 0x34], eax
jmp 0x401fdf
mov cl, byte [ebp]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x401481
mov cl, byte [ebp + 1]
inc ebp
cmp cl, 0x20
je 0x401478
mov cl, byte [ebp]
cmp cl, 0x30
jl case.0x401237.38
cmp cl, 0x39
jg case.0x401237.38
inc ebp
movsx ecx, cl
dec edx
test edx, edx
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2 - 0x30]
jle 0x4014bd
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x1f
ja 0x4014bd
mov cl, byte [ebp]
cmp cl, 0x30
jl 0x4014bd
cmp cl, 0x39
jle 0x401496
mov ecx, 1
cmp eax, ecx
jb case.0x401237.38
cmp eax, 0x1f
ja case.0x401237.38
mov edx, dword [esp + 0x44]
mov dword [edx + 0xc], eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x10], ecx
jmp case.0x401237.90
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x44]
push eax
push ecx
push str._Y__m__d
jmp 0x401507
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x44]
push edx
push eax
push str._m__d__y
push ebp
call fcn.00401180
mov ebp, eax
add esp, 0x10
test ebp, ebp
je case.0x401237.38
jmp 0x401fdf
mov cl, byte [ebp]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x401539
mov edi, edi
mov cl, byte [ebp + 1]
inc ebp
cmp cl, 0x20
je 0x401530
mov cl, byte [ebp]
cmp cl, 0x30
jl case.0x401237.38
cmp cl, 0x39
jg case.0x401237.38
mov edi, edi
inc ebp
movsx ecx, cl
dec edx
test edx, edx
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2 - 0x30]
jle 0x401577
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x17
ja 0x401577
mov cl, byte [ebp]
cmp cl, 0x30
jl 0x401577
cmp cl, 0x39
jle 0x401550
cmp eax, 0x17
ja case.0x401237.38
mov edx, dword [esp + 0x44]
mov dword [edx + 8], eax
mov dword [esp + 0x14], 0
jmp case.0x401237.90
mov cl, byte [ebp]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x4015ac
mov cl, byte [ebp + 1]
inc ebp
cmp cl, 0x20
je 0x4015a3
mov cl, byte [ebp]
cmp cl, 0x30
jl case.0x401237.38
cmp cl, 0x39
jg case.0x401237.38
inc ebp
movsx ecx, cl
dec edx
test edx, edx
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2 - 0x30]
jle 0x4015e8
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0xc
ja 0x4015e8
mov cl, byte [ebp]
cmp cl, 0x30
jl 0x4015e8
cmp cl, 0x39
jle 0x4015c1
cmp eax, 1
jb case.0x401237.38
cmp eax, 0xc
ja case.0x401237.38
xor edx, edx
mov ecx, 0xc
div ecx
mov eax, dword [esp + 0x44]
mov dword [esp + 0x14], 1
mov dword [eax + 8], edx
jmp case.0x401237.90
mov cl, byte [ebp]
xor eax, eax
cmp cl, 0x20
mov edx, 3
jne 0x40162f
mov cl, byte [ebp + 1]
inc ebp
cmp cl, 0x20
je 0x401626
mov cl, byte [ebp]
cmp cl, 0x30
jl case.0x401237.38
cmp cl, 0x39
jg case.0x401237.38
inc ebp
movsx ecx, cl
dec edx
test edx, edx
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2 - 0x30]
jle 0x40166e
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x16e
ja 0x40166e
mov cl, byte [ebp]
cmp cl, 0x30
jl 0x40166e
cmp cl, 0x39
jle 0x401644
cmp eax, 1
jb case.0x401237.38
cmp eax, 0x16e
ja case.0x401237.38
mov edx, dword [esp + 0x44]
dec eax
mov dword [edx + 0x1c], eax
mov dword [esp + 0x28], 1
jmp case.0x401237.90
mov cl, byte [ebp]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x4016af
mov cl, byte [ebp + 1]
inc ebp
cmp cl, 0x20
je 0x4016a6
mov cl, byte [ebp]
cmp cl, 0x30
jl case.0x401237.38
cmp cl, 0x39
jg case.0x401237.38
inc ebp
movsx ecx, cl
dec edx
test edx, edx
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2 - 0x30]
jle 0x4016eb
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0xc
ja 0x4016eb
mov cl, byte [ebp]
cmp cl, 0x30
jl 0x4016eb
cmp cl, 0x39
jle 0x4016c4
mov ecx, 1
cmp eax, ecx
jb case.0x401237.38
cmp eax, 0xc
ja case.0x401237.38
mov edx, dword [esp + 0x44]
dec eax
mov dword [edx + 0x10], eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x10], ecx
jmp case.0x401237.90
mov cl, byte [ebp]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x40172e
mov cl, byte [ebp + 1]
inc ebp
cmp cl, 0x20
je 0x401725
mov cl, byte [ebp]
cmp cl, 0x30
jl case.0x401237.38
cmp cl, 0x39
jg case.0x401237.38
inc ebp
movsx ecx, cl
dec edx
test edx, edx
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2 - 0x30]
jle 0x40176a
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x3b
ja 0x40176a
mov cl, byte [ebp]
cmp cl, 0x30
jl 0x40176a
cmp cl, 0x39
jle 0x401743
cmp eax, 0x3b
ja case.0x401237.38
mov edx, dword [esp + 0x44]
mov dword [edx + 4], eax
jmp case.0x401237.90
movzx eax, byte [ebp]
test byte [eax*2 + 0x42e3d8], 0x40
je case.0x401237.90
movzx ecx, byte [ebp + 1]
mov al, byte [ecx*2 + 0x42e3d8]
inc ebp
test al, 0x40
jne 0x401791
jmp case.0x401237.90
push 2
push ebp
push 0x42e3a4
call fcn.00401040
add esp, 0xc
test eax, eax
jne 0x4017c2
add ebp, 2
jmp case.0x401237.90
push 2
push ebp
push 0x42e3a0
call fcn.00401040
add esp, 0xc
test eax, eax
jne case.0x401237.38
add ebp, 2
mov dword [esp + 0x30], 1
jmp case.0x401237.90
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x44]
push edx
push eax
push str._I:_M:_S__p
jmp 0x4018df
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x44]
push ecx
push edx
push str._H:_M
jmp 0x4018df
mov al, byte [ebp]
xor ecx, ecx
cmp al, 0x30
jl case.0x401237.38
cmp al, 0x39
jg case.0x401237.38
inc ebp
movsx edx, al
mov al, byte [ebp]
cmp al, 0x30
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*2 - 0x30]
jl 0x40183d
cmp al, 0x39
jle 0x401827
lea eax, [esp + 0x2c]
push eax
mov dword [esp + 0x30], ecx
call fcn.0041e186
add esp, 4
test eax, eax
je case.0x401237.38
mov edi, dword [esp + 0x44]
mov ecx, 9
mov esi, eax
rep movsd dword es:[edi], dword [esi]
jmp case.0x401237.90
mov cl, byte [ebp]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x401880
mov cl, byte [ebp + 1]
inc ebp
cmp cl, 0x20
je 0x401877
mov cl, byte [ebp]
cmp cl, 0x30
jl case.0x401237.38
cmp cl, 0x39
jg case.0x401237.38
inc ebp
movsx ecx, cl
dec edx
test edx, edx
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2 - 0x30]
jle 0x4018bc
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x3d
ja 0x4018bc
mov cl, byte [ebp]
cmp cl, 0x30
jl 0x4018bc
cmp cl, 0x39
jle 0x401895
cmp eax, 0x3d
ja case.0x401237.38
mov edx, dword [esp + 0x44]
mov dword [edx], eax
jmp case.0x401237.90
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x44]
push eax
push ecx
push str._H:_M:_S
push ebp
call fcn.00401180
mov ebp, eax
add esp, 0x10
test ebp, ebp
je case.0x401237.38
jmp case.0x401237.90
mov cl, byte [ebp]
xor eax, eax
cmp cl, 0x20
mov edx, 1
jne 0x40190f
mov cl, byte [ebp + 1]
inc ebp
cmp cl, 0x20
je 0x401906
mov cl, byte [ebp]
cmp cl, 0x30
jl case.0x401237.38
cmp cl, 0x39
jg case.0x401237.38
inc ebp
movsx ecx, cl
dec edx
test edx, edx
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2 - 0x30]
jle 0x40194b
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 7
ja 0x40194b
mov cl, byte [ebp]
cmp cl, 0x30
jl 0x40194b
cmp cl, 0x39
jle 0x401924
cmp eax, 1
jb case.0x401237.38
cmp eax, 7
ja case.0x401237.38
xor edx, edx
mov ecx, 7
div ecx
mov eax, dword [esp + 0x44]
mov dword [esp + 0x18], 1
mov dword [eax + 0x18], edx
jmp case.0x401237.90
mov cl, byte [ebp]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x401999
lea esp, [esp]
mov cl, byte [ebp + 1]
inc ebp
cmp cl, 0x20
je 0x401990
mov cl, byte [ebp]
cmp cl, 0x30
jl case.0x401237.38
cmp cl, 0x39
jg case.0x401237.38
mov edi, edi
inc ebp
movsx ecx, cl
dec edx
test edx, edx
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2 - 0x30]
jle 0x4019d7
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x63
ja 0x4019d7
mov cl, byte [ebp]
cmp cl, 0x30
jl 0x4019d7
cmp cl, 0x39
jle 0x4019b0
cmp eax, 0x63
ja case.0x401237.38
jmp case.0x401237.90
mov al, byte [ebp]
cmp al, 0x30
jl case.0x401237.38
cmp al, 0x39
jg case.0x401237.38
mov al, byte [ebp + 1]
inc ebp
cmp al, 0x30
jl case.0x401237.90
cmp al, 0x39
jle 0x4019f8
jmp case.0x401237.90
mov cl, byte [ebp]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x401a29
lea esp, [esp]
mov cl, byte [ebp + 1]
inc ebp
cmp cl, 0x20
je 0x401a20
mov cl, byte [ebp]
cmp cl, 0x30
jl case.0x401237.38
cmp cl, 0x39
jg case.0x401237.38
mov edi, edi
inc ebp
movsx ecx, cl
dec edx
test edx, edx
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2 - 0x30]
jle 0x401a67
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x35
ja 0x401a67
mov cl, byte [ebp]
cmp cl, 0x30
jl 0x401a67
cmp cl, 0x39
jle 0x401a40
cmp eax, 0x35
ja case.0x401237.38
jmp case.0x401237.90
mov cl, byte [ebp]
xor eax, eax
cmp cl, 0x20
mov edx, 1
jne 0x401a8d
mov cl, byte [ebp + 1]
inc ebp
cmp cl, 0x20
je 0x401a84
mov cl, byte [ebp]
cmp cl, 0x30
jl case.0x401237.38
cmp cl, 0x39
jg case.0x401237.38
inc ebp
movsx ecx, cl
dec edx
test edx, edx
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2 - 0x30]
jle 0x401ac9
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 6
ja 0x401ac9
mov cl, byte [ebp]
cmp cl, 0x30
jl 0x401ac9
cmp cl, 0x39
jle 0x401aa2
cmp eax, 6
ja case.0x401237.38
mov edx, dword [esp + 0x44]
mov dword [edx + 0x18], eax
mov dword [esp + 0x18], 1
jmp case.0x401237.90
mov cl, byte [ebp]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x401afe
mov cl, byte [ebp + 1]
inc ebp
cmp cl, 0x20
je 0x401af5
mov cl, byte [ebp]
cmp cl, 0x30
jl case.0x401237.38
cmp cl, 0x39
jg case.0x401237.38
inc ebp
movsx ecx, cl
dec edx
test edx, edx
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2 - 0x30]
jle 0x401b3a
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x63
ja 0x401b3a
mov cl, byte [ebp]
cmp cl, 0x30
jl 0x401b3a
cmp cl, 0x39
jle 0x401b13
cmp eax, 0x63
ja case.0x401237.38
cmp eax, 0x45
jae 0x401b4b
add eax, 0x64
mov edx, dword [esp + 0x44]
mov dword [edx + 0x14], eax
mov eax, 1
mov dword [esp + 0x24], eax
mov dword [esp + 0x10], eax
jmp case.0x401237.90
mov cl, byte [ebp]
xor eax, eax
cmp cl, 0x20
mov edx, 4
jne 0x401b7c
mov cl, byte [ebp + 1]
inc ebp
cmp cl, 0x20
je 0x401b73
mov cl, byte [ebp]
cmp cl, 0x30
jl case.0x401237.38
cmp cl, 0x39
jg case.0x401237.38
inc ebp
movsx ecx, cl
dec edx
test edx, edx
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2 - 0x30]
jle 0x401bbb
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x270f
ja 0x401bbb
mov cl, byte [ebp]
cmp cl, 0x30
jl 0x401bbb
cmp cl, 0x39
jle 0x401b91
cmp eax, 0x270f
ja case.0x401237.38
add eax, 0xfffff894
mov dword [esp + 0x24], 0
jmp 0x401fd8
mov ecx, dword [esp + 0x40]
movsx eax, byte [ecx]
inc ecx
sub eax, 0x48
cmp eax, 0x31
mov dword [esp + 0x40], ecx
ja case.0x401237.38
movzx eax, byte [eax + 0x40226c]
jmp dword [eax*4 + 0x402244]
mov cl, byte [ebp]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x401c19
lea ecx, [ecx]
mov cl, byte [ebp + 1]
inc ebp
cmp cl, 0x20
je 0x401c10
mov cl, byte [ebp]
cmp cl, 0x30
jl case.0x401237.38
cmp cl, 0x39
jg case.0x401237.38
mov edi, edi
inc ebp
movsx ecx, cl
dec edx
test edx, edx
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2 - 0x30]
jle 0x401c57
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x1f
ja 0x401c57
mov cl, byte [ebp]
cmp cl, 0x30
jl 0x401c57
cmp cl, 0x39
jle 0x401c30
mov ecx, 1
cmp eax, ecx
jb case.0x401237.38
cmp eax, 0x1f
ja case.0x401237.38
mov edx, dword [esp + 0x44]
mov dword [edx + 0xc], eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x10], ecx
jmp case.0x401237.90
mov cl, byte [ebp]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x401c99
mov cl, byte [ebp + 1]
inc ebp
cmp cl, 0x20
je 0x401c90
mov cl, byte [ebp]
cmp cl, 0x30
jl case.0x401237.38
cmp cl, 0x39
jg case.0x401237.38
mov edi, edi
inc ebp
movsx ecx, cl
dec edx
test edx, edx
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2 - 0x30]
jle 0x401577
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x17
ja 0x401577
mov cl, byte [ebp]
cmp cl, 0x30
jl 0x401577
cmp cl, 0x39
jle 0x401cb0
jmp 0x401577
mov cl, byte [ebp]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x401d00
mov cl, byte [ebp + 1]
inc ebp
cmp cl, 0x20
je 0x401cf7
mov cl, byte [ebp]
cmp cl, 0x30
jl case.0x401237.38
cmp cl, 0x39
jg case.0x401237.38
inc ebp
movsx ecx, cl
dec edx
test edx, edx
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2 - 0x30]
jle 0x401d3c
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0xc
ja 0x401d3c
mov cl, byte [ebp]
cmp cl, 0x30
jl 0x401d3c
cmp cl, 0x39
jle 0x401d15
cmp eax, 1
jb case.0x401237.38
cmp eax, 0xc
ja case.0x401237.38
mov edx, dword [esp + 0x44]
dec eax
mov dword [edx + 8], eax
mov dword [esp + 0x14], 1
jmp case.0x401237.90
mov cl, byte [ebp]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x401d7b
mov cl, byte [ebp + 1]
inc ebp
cmp cl, 0x20
je 0x401d72
mov cl, byte [ebp]
cmp cl, 0x30
jl case.0x401237.38
cmp cl, 0x39
jg case.0x401237.38
inc ebp
movsx ecx, cl
dec edx
test edx, edx
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2 - 0x30]
jle 0x4016eb
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0xc
ja 0x4016eb
mov cl, byte [ebp]
cmp cl, 0x30
jl 0x4016eb
cmp cl, 0x39
jle 0x401d90
jmp 0x4016eb
mov cl, byte [ebp]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x401de0
mov cl, byte [ebp + 1]
inc ebp
cmp cl, 0x20
je 0x401dd7
mov cl, byte [ebp]
cmp cl, 0x30
jl case.0x401237.38
cmp cl, 0x39
jg case.0x401237.38
inc ebp
movsx ecx, cl
dec edx
test edx, edx
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2 - 0x30]
jle 0x401e1c
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x3b
ja 0x401e1c
mov cl, byte [ebp]
cmp cl, 0x30
jl 0x401e1c
cmp cl, 0x39
jle 0x401df5
cmp eax, 0x3b
ja case.0x401237.38
mov edx, dword [esp + 0x44]
mov dword [edx + 4], eax
jmp case.0x401237.90
mov cl, byte [ebp]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x401e49
mov cl, byte [ebp + 1]
inc ebp
cmp cl, 0x20
je 0x401e40
mov cl, byte [ebp]
cmp cl, 0x30
jl case.0x401237.38
cmp cl, 0x39
jg case.0x401237.38
mov edi, edi
inc ebp
movsx ecx, cl
dec edx
test edx, edx
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2 - 0x30]
jle 0x401e87
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x3d
ja 0x401e87
mov cl, byte [ebp]
cmp cl, 0x30
jl 0x401e87
cmp cl, 0x39
jle 0x401e60
cmp eax, 0x3d
ja case.0x401237.38
mov edx, dword [esp + 0x44]
mov dword [edx], eax
jmp case.0x401237.90
mov cl, byte [ebp]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x401eb9
lea ebx, [ebx]
mov cl, byte [ebp + 1]
inc ebp
cmp cl, 0x20
je 0x401eb0
mov cl, byte [ebp]
cmp cl, 0x30
jl case.0x401237.38
cmp cl, 0x39
jg case.0x401237.38
mov edi, edi
inc ebp
movsx ecx, cl
dec edx
test edx, edx
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2 - 0x30]
jle 0x401ef7
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x35
ja 0x401ef7
mov cl, byte [ebp]
cmp cl, 0x30
jl 0x401ef7
cmp cl, 0x39
jle 0x401ed0
cmp eax, 0x35
ja case.0x401237.38
jmp case.0x401237.90
mov cl, byte [ebp]
xor eax, eax
cmp cl, 0x20
mov edx, 1
jne 0x401f1d
mov cl, byte [ebp + 1]
inc ebp
cmp cl, 0x20
je 0x401f14
mov cl, byte [ebp]
cmp cl, 0x30
jl case.0x401237.38
cmp cl, 0x39
jg case.0x401237.38
inc ebp
movsx ecx, cl
dec edx
test edx, edx
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2 - 0x30]
jle 0x401ac9
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 6
ja 0x401ac9
mov cl, byte [ebp]
cmp cl, 0x30
jl 0x401ac9
cmp cl, 0x39
jle 0x401f32
jmp 0x401ac9
mov cl, byte [ebp]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x401f89
lea esp, [esp]
mov cl, byte [ebp + 1]
inc ebp
cmp cl, 0x20
je 0x401f80
mov cl, byte [ebp]
cmp cl, 0x30
jl case.0x401237.38
cmp cl, 0x39
jg case.0x401237.38
mov edi, edi
inc ebp
movsx ecx, cl
dec edx
test edx, edx
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2 - 0x30]
jle 0x401fc7
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x63
ja 0x401fc7
mov cl, byte [ebp]
cmp cl, 0x30
jl 0x401fc7
cmp cl, 0x39
jle 0x401fa0
cmp eax, 0x63
ja case.0x401237.38
cmp eax, 0x45
jae 0x401fd8
add eax, 0x64
mov edx, dword [esp + 0x44]
mov dword [edx + 0x14], eax
mov dword [esp + 0x10], 1
mov eax, dword [esp + 0x40]
mov al, byte [eax]
test al, al
je 0x401ffa
mov ecx, dword [esp + 0x40]
jmp 0x4011c3
mov eax, dword [esp + 0x14]
test eax, eax
je 0x402014
mov eax, dword [esp + 0x30]
test eax, eax
je 0x402014
mov esi, dword [esp + 0x44]
add dword [esi + 8], 0xc
jmp 0x402018
mov esi, dword [esp + 0x44]
mov eax, dword [esp + 0x34]
cmp eax, 0xffffffff
je 0x40204a
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x402041
lea ecx, [eax - 0x13]
mov eax, dword [esi + 0x14]
imul ecx, ecx, 0x64
cdq
mov edi, 0x64
idiv edi
add ecx, edx
mov dword [esi + 0x14], ecx
jmp 0x40204a
add eax, 0xffffffed
imul eax, eax, 0x64
mov dword [esi + 0x14], eax
mov eax, dword [esp + 0x10]
test eax, eax
je 0x402165
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x402158
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x402076
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x40214f
mov eax, dword [esp + 0x28]
test eax, eax
je 0x40214f
mov edx, dword [esp + 0x44]
mov eax, dword [edx + 0x14]
lea ecx, [eax + 0x76c]
mov esi, ecx
and esi, reloc.WSOCK32.dll_closesocket
mov dword [esp + 0x40], 0
jns 0x4020a6
dec esi
or esi, 0xfffffffc
inc esi
mov edi, dword [edx + 0x1c]
lea esp, [esp]
test esi, esi
jne 0x4020d7
mov eax, ecx
cdq
mov ebx, 0x64
idiv ebx
test edx, edx
jne 0x4020d0
mov eax, ecx
cdq
mov ebx, 0x190
idiv ebx
test edx, edx
jne 0x4020d7
mov eax, 1
jmp 0x4020d9
xor eax, eax
mov ebx, dword [esp + 0x40]
imul eax, eax, 0xd
add eax, ebx
movzx edx, word [eax*2 + 0x42e318]
cmp edx, edi
jg 0x4020f5
inc ebx
mov dword [esp + 0x40], ebx
jmp 0x4020b0
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x402107
mov edx, dword [esp + 0x44]
lea eax, [ebx - 1]
mov dword [edx + 0x10], eax
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x40214f
test esi, esi
jne 0x402136
mov eax, ecx
cdq
mov esi, 0x64
idiv esi
test edx, edx
jne 0x40212f
mov eax, ecx
cdq
mov ecx, 0x190
idiv ecx
test edx, edx
jne 0x402136
mov eax, 1
jmp 0x402138
xor eax, eax
imul eax, eax, 0xd
add eax, ebx
movzx edx, word [eax*2 + 0x42e316]
mov eax, dword [esp + 0x44]
sub edi, edx
inc edi
mov dword [eax + 0xc], edi
mov esi, dword [esp + 0x44]
call fcn.004010a0
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x402165
call fcn.00401120
pop edi
pop esi
mov eax, ebp
pop ebp
pop ebx
add esp, 0x28
ret