Function at 0x4010a0
Capabilities:
Parse credit card information

Disassembly:
push 0xffffffffffffffff
push 0x4ad810
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x50
push ebx
push ebp
push esi
mov esi, dword [esp + 0x6c]
mov ebx, ecx
push edi
mov ecx, esi
mov dword [esp + 0x1c], ebx
call fcn.00493a6c
mov eax, dword [esi]
xor ebp, ebp
xor edi, edi
mov ecx, dword [eax - 8]
cmp ecx, ebp
jle 0x401110
mov al, byte [eax + edi]
cmp al, 0x30
jl 0x4010e9
cmp al, 0x39
jg 0x4010e9
xor cl, cl
jmp 0x4010eb
mov cl, 1
cmp al, 0x20
je 0x4010ff
cmp al, 9
je 0x4010ff
cmp cl, 1
jne 0x4010fc
cmp al, 0x30
je 0x4010ff
inc edi
jmp 0x401109
push 1
push edi
mov ecx, esi
call fcn.00490915
mov eax, dword [esi]
cmp edi, dword [eax - 8]
jl 0x4010da
push esi
lea ecx, [esp + 0x18]
call fcn.004932bf
mov eax, dword [esp + 0x14]
mov dword [esp + 0x68], ebp
cmp dword [eax - 8], ebp
jne 0x40114f
push 0x4d3724
lea ecx, [ebx + 0xac]
call fcn.004936d3
lea ecx, [esp + 0x14]
mov dword [esp + 0x68], 0xffffffff
call fcn.0049354a
xor eax, eax
jmp 0x403682
mov esi, dword [esi]
mov ecx, dword [ebx + 4]
push ebp
push esi
add ecx, 0x1e84
call fcn.0049296b
test eax, eax
je 0x40116c
push 0x4d3714
jmp 0x40112c
lea ecx, [esp + 0x70]
push 2
push ecx
lea ecx, [esp + 0x1c]
call fcn.00490a26
mov eax, dword [eax]
mov esi, 0x4d3710
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x4011ab
test cl, cl
je 0x4011a7
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x4011ab
add eax, 2
add esi, 2
test cl, cl
jne 0x401183
xor eax, eax
jmp 0x4011b0
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebp
lea ecx, [esp + 0x70]
sete bl
call fcn.0049354a
test bl, bl
je 0x4012df
push 2
push ebp
lea ecx, [esp + 0x1c]
call fcn.00490915
mov eax, dword [esp + 0x14]
cmp dword [eax - 8], ebp
jne 0x4011ef
mov ecx, dword [esp + 0x1c]
push 0x4d3700
add ecx, 0xac
jmp 0x401132
lea edx, [esp + 0x70]
push 0x4d36f4
push edx
lea ecx, [esp + 0x1c]
call fcn.00490a9e
mov esi, dword [eax]
mov eax, dword [esp + 0x14]
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x401233
test cl, cl
je 0x40122c
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x401233
add eax, 2
add esi, 2
test cl, cl
jne 0x401208
xor eax, eax
or esi, 0xffffffff
jmp 0x40123c
sbb eax, eax
mov esi, 0xffffffff
sbb eax, esi
cmp eax, ebp
lea ecx, [esp + 0x70]
setne bl
call fcn.0049354a
test bl, bl
je 0x401276
mov eax, dword [esp + 0x1c]
push 0x4d36e4
lea ecx, [eax + 0xac]
call fcn.004936d3
lea ecx, [esp + 0x14]
mov dword [esp + 0x68], esi
call fcn.0049354a
xor eax, eax
jmp 0x403682
mov ecx, dword [esp + 0x14]
push ecx
call fcn.0047edbd
add esp, 4
cmp eax, 0x25
jg 0x4012b7
mov edx, dword [esp + 0x14]
push edx
call fcn.0047edbd
add esp, 4
cmp eax, 1
jl 0x4012b7
mov eax, dword [esp + 0x1c]
push 0x4d36d8
lea ecx, [eax + 0xac]
call fcn.004936d3
mov dword [esp + 0x68], esi
jmp 0x403674
mov ecx, dword [esp + 0x1c]
push 0x4d36c4
add ecx, 0xac
call fcn.004936d3
lea ecx, [esp + 0x14]
mov dword [esp + 0x68], esi
call fcn.0049354a
xor eax, eax
jmp 0x403682
push str.ABCDEFGHIJKLMNOPQRSTUVWXYZ
lea ecx, [esp + 0x18]
call fcn.00493a4c
or edi, 0xffffffff
cmp eax, edi
jne 0x4026aa
push 0x4e0dd0
lea ecx, [esp + 0x74]
mov dword [esp + 0x1c], ebp
xor ebx, ebx
xor esi, esi
call fcn.004935b8
mov edi, 0x4b5874
mov dword [esp + 0x48], ebp
mov dword [esp + 0x44], edi
mov dword [esp + 0x4c], 0x11
mov dword [esp + 0x50], ebp
mov dword [esp + 0x54], ebp
mov dword [esp + 0x58], ebp
mov dword [esp + 0x5c], 0xa
push 0x23
lea ecx, [esp + 0x18]
mov byte [esp + 0x6c], 2
call fcn.00493a11
cmp eax, 0xffffffff
jne 0x401385
mov edx, dword [esp + 0x1c]
push 0x4d3694
lea ecx, [edx + 0xac]
call fcn.004936d3
mov dword [esp + 0x44], edi
lea ecx, [esp + 0x44]
mov byte [esp + 0x68], 3
call fcn.00418d00
lea ecx, [esp + 0x70]
mov byte [esp + 0x68], 0
call fcn.0049354a
jmp 0x401137
push 0x23
lea ecx, [esp + 0x18]
call fcn.00493a11
inc eax
lea ecx, [esp + 0x14]
push eax
push 0x23
call fcn.00493a1f
cmp eax, 0xffffffff
je 0x4013db
mov eax, dword [esp + 0x1c]
push 0x4d3680
lea ecx, [eax + 0xac]
call fcn.004936d3
mov dword [esp + 0x44], edi
lea ecx, [esp + 0x44]
mov byte [esp + 0x68], 4
call fcn.00418d00
lea ecx, [esp + 0x70]
mov byte [esp + 0x68], 0
call fcn.0049354a
jmp 0x401137
mov ecx, dword [esp + 0x14]
push 0x2e
mov edi, dword [ecx - 8]
lea ecx, [esp + 0x18]
call fcn.00493a11
dec edi
cmp eax, edi
je 0x40142f
mov edx, dword [esp + 0x1c]
push 0x4d366c
lea ecx, [edx + 0xac]
call fcn.004936d3
mov dword [esp + 0x44], 0x4b5874
lea ecx, [esp + 0x44]
mov byte [esp + 0x68], 5
call fcn.00418d00
lea ecx, [esp + 0x70]
mov byte [esp + 0x68], 0
call fcn.0049354a
jmp 0x401137
mov edi, dword [esp + 0x14]
cmp dword [edi - 8], ebp
je 0x402626
movsx eax, byte [edi]
add eax, 0xffffffdd
cmp eax, 0x59
ja case.0x401453.45
xor ecx, ecx
mov cl, byte [eax + 0x4036fc]
jmp dword [ecx*4 + 0x4036d0]
cmp ebx, 7
je 0x401ac7
cmp esi, ebp
je 0x40147a
cmp esi, 9
je 0x40147a
cmp esi, 0xa
je 0x40147a
cmp esi, 1
jne 0x401b04
mov edx, dword [esp + 0x18]
push 1
inc edx
push ebp
lea ecx, [esp + 0x1c]
mov dword [esp + 0x20], edx
call fcn.00490915
mov ebx, esi
mov esi, 1
jmp 0x401ab5
cmp ebx, 7
je 0x401b41
cmp esi, 3
je 0x4014b9
cmp esi, 2
je 0x4014d7
cmp esi, 0xc
jne 0x401b7e
jmp 0x4014d7
cmp dword [edi - 8], 3
jl 0x401bbb
cmp byte [edi + 1], 0x3e
jne 0x401bbb
cmp byte [edi + 2], 0x3d
jne 0x401bbb
mov eax, dword [esp + 0x18]
dec eax
mov dword [esp + 0x18], eax
js 0x401bf8
push 1
push ebp
lea ecx, [esp + 0x1c]
call fcn.00490915
mov ebx, esi
mov esi, 2
jmp 0x401ab5
cmp ebx, 7
je 0x401c35
cmp esi, 2
je 0x40151e
cmp esi, 3
jne 0x401c72
cmp ebx, 6
je 0x401c72
push 1
push ebp
lea ecx, [esp + 0x1c]
call fcn.00490915
mov ebx, esi
mov esi, 4
jmp 0x401ab5
cmp ebx, 7
je 0x401cda
cmp esi, 4
jne 0x401d17
push 1
push ebp
lea ecx, [esp + 0x1c]
call fcn.00490915
mov edi, dword [esp + 0x48]
mov esi, 5
cmp edi, ebp
je 0x40157f
mov eax, dword [esp + 0x4c]
cmp eax, ebp
jbe 0x40157f
mov ecx, edi
mov edx, eax
mov eax, dword [ecx]
cmp eax, ebp
je 0x401579
mov eax, dword [eax]
cmp eax, ebp
jne 0x401573
add ecx, 4
dec edx
jne 0x40156d
push edi
call fcn.00493b2c
mov ecx, dword [esp + 0x5c]
add esp, 4
mov dword [esp + 0x48], ebp
mov dword [esp + 0x50], ebp
mov dword [esp + 0x54], ebp
call fcn.0049271b
mov dword [esp + 0x58], ebp
jmp 0x401ab5
cmp ebx, 7
je 0x401d54
cmp esi, 3
jne 0x401d91
push 1
push ebp
lea ecx, [esp + 0x1c]
call fcn.00490915
mov ebx, esi
mov esi, 6
jmp 0x401ab5
cmp esi, 3
jne 0x401dce
cmp ebx, 7
jne 0x401dce
push 1
push ebp
lea ecx, [esp + 0x1c]
call fcn.00490915
mov esi, 8
jmp 0x401ab5
cmp dword [esp + 0x18], ebp
jne 0x401e0b
cmp esi, 2
je 0x401610
cmp esi, 0xc
jne 0x401e48
push 1
push ebp
lea ecx, [esp + 0x1c]
call fcn.00490915
mov ebx, esi
mov esi, 7
jmp 0x401ab5
cmp ebx, 7
je 0x401e85
cmp esi, 2
je 0x40163f
cmp esi, 0xc
jne 0x401ec2
push 1
push ebp
lea ecx, [esp + 0x1c]
call fcn.00490915
mov ebx, esi
mov esi, 9
jmp 0x401ab5
cmp ebx, 7
je 0x401eff
cmp esi, 2
je 0x40166e
cmp esi, 0xc
jne 0x401f3c
push 1
push ebp
lea ecx, [esp + 0x1c]
call fcn.00490915
mov ebx, esi
mov esi, 0xa
jmp 0x401ab5
cmp ebx, 7
jne 0x401f79
cmp esi, 3
jne 0x401fb6
push 1
push ebp
lea ecx, [esp + 0x1c]
call fcn.00490915
mov esi, 0xb
jmp 0x401ab5
cmp esi, ebp
je 0x40178e
cmp esi, 1
je 0x40178e
cmp esi, 6
je 0x40178e
cmp esi, 7
je 0x40178e
cmp esi, 8
je 0x40178e
cmp esi, 9
je 0x40178e
cmp esi, 0xa
je 0x40178e
cmp esi, 5
jne 0x401765
lea edx, [esp + 0x24]
push 0x4d36f4
push edx
lea ecx, [esp + 0x1c]
call fcn.00490a9e
mov eax, dword [esp + 0x24]
mov byte [esp + 0x68], 0x2d
cmp dword [eax - 8], ebp
je 0x401ff3
push eax
call fcn.0047edbd
add esp, 4
cmp eax, 1
jl 0x402055
mov eax, dword [esp + 0x24]
push eax
call fcn.0047edbd
add esp, 4
cmp eax, 0x63
jg 0x402055
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx - 8]
lea ecx, [esp + 0x14]
push eax
push ebp
call fcn.00490915
mov ebx, esi
mov esi, 0xc
mov byte [esp + 0x68], 2
lea ecx, [esp + 0x24]
jmp 0x401ab0
cmp esi, 4
je 0x4020b7
cmp esi, 2
je 0x40210b
cmp esi, 0xc
je 0x40215f
cmp esi, 3
je 0x40215f
jmp 0x401ab5
lea edx, [esp + 0x10]
push str.0123456789_
push edx
lea ecx, [esp + 0x1c]
call fcn.00490a9e
mov eax, dword [esp + 0x10]
mov byte [esp + 0x68], 0x1b
cmp dword [eax - 8], ebp
je 0x4021b3
mov ecx, dword [0x4dca08]
mov dword [esp + 0x20], ecx
lea edx, [esp + 0x2c]
push 0x4d36f4
push edx
lea ecx, [esp + 0x18]
mov byte [esp + 0x70], 0x1d
call fcn.00490a9e
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x6c], 0x1e
call fcn.00493683
lea ecx, [esp + 0x2c]
mov byte [esp + 0x68], 0x1d
call fcn.0049354a
mov eax, dword [esp + 0x20]
cmp dword [eax - 8], ebp
je 0x4021fe
push eax
call fcn.0047edbd
add esp, 4
cmp eax, 0xff
jg 0x4025cd
cmp eax, ebp
jl 0x4025cd
mov ecx, dword [esp + 0x20]
shl eax, 8
mov ecx, dword [ecx - 8]
mov edi, eax
mov eax, dword [esp + 0x10]
lea edx, [ecx + 1]
mov eax, dword [eax - 8]
cmp eax, edx
jl 0x401838
lea eax, [ecx + 1]
push eax
push ebp
lea ecx, [esp + 0x18]
call fcn.00490915
lea eax, [esp + 0x30]
push 0x4d36f4
push eax
lea ecx, [esp + 0x18]
call fcn.00490a9e
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x6c], 0x21
call fcn.00493683
lea ecx, [esp + 0x30]
mov byte [esp + 0x68], 0x1d
call fcn.0049354a
mov eax, dword [esp + 0x20]
cmp dword [eax - 8], ebp
je 0x402257
push eax
call fcn.0047edbd
add esp, 4
cmp eax, 0xff
jg 0x402574
cmp eax, ebp
jl 0x402574
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x20]
add edi, eax
mov eax, dword [ecx - 8]
mov ecx, dword [edx - 8]
shl edi, 8
lea edx, [ecx + 1]
cmp eax, edx
jl 0x4018b9
lea eax, [ecx + 1]
push eax
push ebp
lea ecx, [esp + 0x18]
call fcn.00490915
lea eax, [esp + 0x34]
push 0x4d36f4
push eax
lea ecx, [esp + 0x18]
call fcn.00490a9e
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x6c], 0x24
call fcn.00493683
lea ecx, [esp + 0x34]
mov byte [esp + 0x68], 0x1d
call fcn.0049354a
mov eax, dword [esp + 0x20]
cmp dword [eax - 8], ebp
je 0x4022b0
push eax
call fcn.0047edbd
add esp, 4
cmp eax, 0xff
jg 0x402504
cmp eax, ebp
jl 0x402504
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x20]
add edi, eax
mov eax, dword [ecx - 8]
mov ecx, dword [edx - 8]
shl edi, 8
lea edx, [ecx + 1]
cmp eax, edx
jl 0x40193a
lea eax, [ecx + 1]
push eax
push ebp
lea ecx, [esp + 0x18]
call fcn.00490915
lea eax, [esp + 0x38]
push 0x4d36f4
push eax
lea ecx, [esp + 0x18]
call fcn.00490a9e
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x6c], 0x27
call fcn.00493683
lea ecx, [esp + 0x38]
mov byte [esp + 0x68], 0x1d
call fcn.0049354a
mov eax, dword [esp + 0x20]
cmp dword [eax - 8], ebp
je 0x402348
push eax
call fcn.0047edbd
add esp, 4
cmp eax, 0xff
jg 0x402494
cmp eax, ebp
jl 0x402494
mov ecx, dword [esp + 0x20]
add edi, eax
mov eax, dword [ecx - 8]
lea ecx, [esp + 0x10]
push eax
push ebp
call fcn.00490915
mov edx, dword [esp + 0x10]
cmp dword [edx - 8], ebp
jne 0x4023b4
mov eax, edi
xor edx, edx
shr eax, 4
div dword [esp + 0x4c]
mov eax, dword [esp + 0x48]
cmp eax, ebp
je 0x4019ee
mov eax, dword [eax + edx*4]
cmp eax, ebp
je 0x4019ee
cmp dword [eax + 8], edi
je 0x4019e6
mov eax, dword [eax]
cmp eax, ebp
jne 0x4019d9
jmp 0x4019ee
cmp eax, ebp
jne 0x402424
lea eax, [esp + 0x28]
lea ecx, [esp + 0x44]
push eax
push edi
call fcn.00411f90
cmp eax, ebp
jne 0x401a42
cmp dword [esp + 0x48], ebp
jne 0x401a17
mov ecx, dword [esp + 0x4c]
push 1
push ecx
lea ecx, [esp + 0x4c]
call fcn.00405190
lea ecx, [esp + 0x44]
call fcn.00405200
mov edx, dword [esp + 0x28]
mov dword [eax + 8], edi
mov dword [eax + 4], edx
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x28]
mov ecx, dword [ecx + edx*4]
mov dword [eax], ecx
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x28]
mov dword [edx + ecx*4], eax
mov edx, dword [esp + 0x70]
push str.0123456789_
mov dword [eax + 0xc], edx
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0x1c]
call fcn.00490a9e
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x6c], 0x2c
call fcn.00493683
lea ecx, [esp + 0x3c]
mov byte [esp + 0x68], 0x1d
call fcn.0049354a
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx - 8]
lea ecx, [esp + 0x14]
push eax
push ebp
call fcn.00490915
cmp ebx, 7
jne 0x401a92
mov esi, ebx
mov ebx, esi
lea ecx, [esp + 0x20]
mov esi, 3
mov byte [esp + 0x68], 0x1b
call fcn.0049354a
mov byte [esp + 0x68], 2
lea ecx, [esp + 0x10]
call fcn.0049354a
mov edi, dword [esp + 0x14]
cmp dword [edi - 8], ebp
je 0x402626
jmp 0x40143c
mov edx, dword [esp + 0x1c]
push 0x4d364c
lea ecx, [edx + 0xac]
call fcn.004936d3
mov dword [esp + 0x44], 0x4b5874
lea ecx, [esp + 0x44]
mov byte [esp + 0x68], 6
call fcn.00418d00
lea ecx, [esp + 0x70]
mov byte [esp + 0x68], 0
call fcn.0049354a
jmp 0x401137
mov eax, dword [esp + 0x1c]
push 0x4d363c
lea ecx, [eax + 0xac]
call fcn.004936d3
mov dword [esp + 0x44], 0x4b5874
lea ecx, [esp + 0x44]
mov byte [esp + 0x68], 7
call fcn.00418d00
lea ecx, [esp + 0x70]
mov byte [esp + 0x68], 0
call fcn.0049354a
jmp 0x401137
mov ecx, dword [esp + 0x1c]
push 0x4d364c
add ecx, 0xac
call fcn.004936d3
mov dword [esp + 0x44], 0x4b5874
lea ecx, [esp + 0x44]
mov byte [esp + 0x68], 8
call fcn.00418d00
lea ecx, [esp + 0x70]
mov byte [esp + 0x68], 0
call fcn.0049354a
jmp 0x401137
mov edx, dword [esp + 0x1c]
push 0x4d362c
lea ecx, [edx + 0xac]
call fcn.004936d3
mov dword [esp + 0x44], 0x4b5874
lea ecx, [esp + 0x44]
mov byte [esp + 0x68], 9
call fcn.00418d00
lea ecx, [esp + 0x70]
mov byte [esp + 0x68], 0
call fcn.0049354a
jmp 0x401137
mov eax, dword [esp + 0x1c]
push 0x4d361c
lea ecx, [eax + 0xac]
call fcn.004936d3
mov dword [esp + 0x44], 0x4b5874
lea ecx, [esp + 0x44]
mov byte [esp + 0x68], 0xa
call fcn.00418d00
lea ecx, [esp + 0x70]
mov byte [esp + 0x68], 0
call fcn.0049354a
jmp 0x401137
mov ecx, dword [esp + 0x1c]
push 0x4d360c
add ecx, 0xac
call fcn.004936d3
mov dword [esp + 0x44], 0x4b5874
lea ecx, [esp + 0x44]
mov byte [esp + 0x68], 0xb
call fcn.00418d00
lea ecx, [esp + 0x70]
mov byte [esp + 0x68], 0
call fcn.0049354a
jmp 0x401137
mov edx, dword [esp + 0x1c]
push 0x4d364c
lea ecx, [edx + 0xac]
call fcn.004936d3
mov dword [esp + 0x44], 0x4b5874
lea ecx, [esp + 0x44]
mov byte [esp + 0x68], 0xc
call fcn.00418d00
lea ecx, [esp + 0x70]
mov byte [esp + 0x68], 0
call fcn.0049354a
jmp 0x401137
push 1
push ebp
lea ecx, [esp + 0x1c]
call fcn.00490915
mov eax, dword [esp + 0x14]
cmp dword [eax - 8], ebp
je 0x401c9d
cmp byte [eax], 0x3d
jne 0x401c9d
mov eax, dword [esp + 0x1c]
push 0x4d35f8
lea ecx, [eax + 0xac]
jmp 0x401cac
mov ecx, dword [esp + 0x1c]
push 0x4d35ec
add ecx, 0xac
call fcn.004936d3
mov dword [esp + 0x44], 0x4b5874
lea ecx, [esp + 0x44]
mov byte [esp + 0x68], 0xd
call fcn.00418d00
lea ecx, [esp + 0x70]
mov byte [esp + 0x68], 0
call fcn.0049354a
jmp 0x401137
mov edx, dword [esp + 0x1c]
push 0x4d364c
lea ecx, [edx + 0xac]
call fcn.004936d3
mov dword [esp + 0x44], 0x4b5874
lea ecx, [esp + 0x44]
mov byte [esp + 0x68], 0xe
call fcn.00418d00
lea ecx, [esp + 0x70]
mov byte [esp + 0x68], 0
call fcn.0049354a
jmp 0x401137
mov eax, dword [esp + 0x1c]
push 0x4d35e0
lea ecx, [eax + 0xac]
call fcn.004936d3
mov dword [esp + 0x44], 0x4b5874
lea ecx, [esp + 0x44]
mov byte [esp + 0x68], 0xf
call fcn.00418d00
lea ecx, [esp + 0x70]
mov byte [esp + 0x68], 0
call fcn.0049354a
jmp 0x401137
mov ecx, dword [esp + 0x1c]
push 0x4d364c
add ecx, 0xac
call fcn.004936d3
mov dword [esp + 0x44], 0x4b5874
lea ecx, [esp + 0x44]
mov byte [esp + 0x68], 0x10
call fcn.00418d00
lea ecx, [esp + 0x70]
mov byte [esp + 0x68], 0
call fcn.0049354a
jmp 0x401137
mov edx, dword [esp + 0x1c]
push 0x4d35cc
lea ecx, [edx + 0xac]
call fcn.004936d3
mov dword [esp + 0x44], 0x4b5874
lea ecx, [esp + 0x44]
mov byte [esp + 0x68], 0x11
call fcn.00418d00
lea ecx, [esp + 0x70]
mov byte [esp + 0x68], 0
call fcn.0049354a
jmp 0x401137
mov eax, dword [esp + 0x1c]
push 0x4d35b8
lea ecx, [eax + 0xac]
call fcn.004936d3
mov dword [esp + 0x44], 0x4b5874
lea ecx, [esp + 0x44]
mov byte [esp + 0x68], 0x12
call fcn.00418d00
lea ecx, [esp + 0x70]
mov byte [esp + 0x68], 0
call fcn.0049354a
jmp 0x401137
mov ecx, dword [esp + 0x1c]
push 0x4d35a0
add ecx, 0xac
call fcn.004936d3
mov dword [esp + 0x44], 0x4b5874
lea ecx, [esp + 0x44]
mov byte [esp + 0x68], 0x13
call fcn.00418d00
lea ecx, [esp + 0x70]
mov byte [esp + 0x68], 0
call fcn.0049354a
jmp 0x401137
mov edx, dword [esp + 0x1c]
push 0x4d358c
lea ecx, [edx + 0xac]
call fcn.004936d3
mov dword [esp + 0x44], 0x4b5874
lea ecx, [esp + 0x44]
mov byte [esp + 0x68], 0x14
call fcn.00418d00
lea ecx, [esp + 0x70]
mov byte [esp + 0x68], 0
call fcn.0049354a
jmp 0x401137
mov eax, dword [esp + 0x1c]
push 0x4d3578
lea ecx, [eax + 0xac]
call fcn.004936d3
mov dword [esp + 0x44], 0x4b5874
lea ecx, [esp + 0x44]
mov byte [esp + 0x68], 0x15
call fcn.00418d00
lea ecx, [esp + 0x70]
mov byte [esp + 0x68], 0
call fcn.0049354a
jmp 0x401137
mov ecx, dword [esp + 0x1c]
push 0x4d3568
add ecx, 0xac
call fcn.004936d3
mov dword [esp + 0x44], 0x4b5874
lea ecx, [esp + 0x44]
mov byte [esp + 0x68], 0x16
call fcn.00418d00
lea ecx, [esp + 0x70]
mov byte [esp + 0x68], 0
call fcn.0049354a
jmp 0x401137
mov edx, dword [esp + 0x1c]
push 0x4d3554
lea ecx, [edx + 0xac]
call fcn.004936d3
mov dword [esp + 0x44], 0x4b5874
lea ecx, [esp + 0x44]
mov byte [esp + 0x68], 0x17
call fcn.00418d00
lea ecx, [esp + 0x70]
mov byte [esp + 0x68], 0
call fcn.0049354a
jmp 0x401137
mov eax, dword [esp + 0x1c]
push 0x4d3544
lea ecx, [eax + 0xac]
call fcn.004936d3
mov dword [esp + 0x44], 0x4b5874
lea ecx, [esp + 0x44]
mov byte [esp + 0x68], 0x18
call fcn.00418d00
lea ecx, [esp + 0x70]
mov byte [esp + 0x68], 0
call fcn.0049354a
jmp 0x401137
mov ecx, dword [esp + 0x1c]
push 0x4d3530
add ecx, 0xac
call fcn.004936d3
mov dword [esp + 0x44], 0x4b5874
lea ecx, [esp + 0x44]
mov byte [esp + 0x68], 0x19
call fcn.00418d00
lea ecx, [esp + 0x70]
mov byte [esp + 0x68], 0
call fcn.0049354a
jmp 0x401137
mov edx, dword [esp + 0x1c]
push 0x4d351c
lea ecx, [edx + 0xac]
call fcn.004936d3
mov dword [esp + 0x44], 0x4b5874
lea ecx, [esp + 0x44]
mov byte [esp + 0x68], 0x1a
call fcn.00418d00
lea ecx, [esp + 0x70]
mov byte [esp + 0x68], 0
call fcn.0049354a
jmp 0x401137
mov eax, dword [esp + 0x1c]
push 0x4d3510
lea ecx, [eax + 0xac]
call fcn.004936d3
lea ecx, [esp + 0x24]
mov byte [esp + 0x68], 2
call fcn.0049354a
mov dword [esp + 0x44], 0x4b5874
mov esi, dword [esp + 0x48]
mov byte [esp + 0x68], 0x2e
cmp esi, ebp
je 0x402313
mov eax, dword [esp + 0x4c]
cmp eax, ebp
jbe 0x402313
mov ecx, esi
mov edx, eax
mov eax, dword [ecx]
cmp eax, ebp
je 0x40204a
mov eax, dword [eax]
cmp eax, ebp
jne 0x402044
add ecx, 4
dec edx
jne 0x40203e
jmp 0x402313
mov ecx, dword [esp + 0x1c]
push 0x4d3500
add ecx, 0xac
call fcn.004936d3
lea ecx, [esp + 0x24]
mov byte [esp + 0x68], 2
call fcn.0049354a
mov dword [esp + 0x44], 0x4b5874
mov esi, dword [esp + 0x48]
mov byte [esp + 0x68], 0x2f
cmp esi, ebp
je 0x402313
mov eax, dword [esp + 0x4c]
cmp eax, ebp
jbe 0x402313
mov ecx, esi
mov edx, eax
mov eax, dword [ecx]
cmp eax, ebp
je 0x4020ac
mov eax, dword [eax]
cmp eax, ebp
jne 0x4020a6
add ecx, 4
dec edx
jne 0x4020a0
jmp 0x402313
mov edx, dword [esp + 0x1c]
push 0x4d35ec
lea ecx, [edx + 0xac]
call fcn.004936d3
mov dword [esp + 0x44], 0x4b5874
mov esi, dword [esp + 0x48]
mov byte [esp + 0x68], 0x30
cmp esi, ebp
je 0x402313
mov eax, dword [esp + 0x4c]
cmp eax, ebp
jbe 0x402313
mov ecx, esi
mov edx, eax
mov eax, dword [ecx]
cmp eax, ebp
je 0x402100
mov eax, dword [eax]
cmp eax, ebp
jne 0x4020fa
add ecx, 4
dec edx
jne 0x4020f4
jmp 0x402313
mov eax, dword [esp + 0x1c]
push 0x4d34ec
lea ecx, [eax + 0xac]
call fcn.004936d3
mov dword [esp + 0x44], 0x4b5874
mov esi, dword [esp + 0x48]
mov byte [esp + 0x68], 0x31
cmp esi, ebp
je 0x402313
mov eax, dword [esp + 0x4c]
cmp eax, ebp
jbe 0x402313
mov ecx, esi
mov edx, eax
mov eax, dword [ecx]
cmp eax, ebp
je 0x402154
mov eax, dword [eax]
cmp eax, ebp
jne 0x40214e
add ecx, 4
dec edx
jne 0x402148
jmp 0x402313
mov ecx, dword [esp + 0x1c]
push 0x4d34d8
add ecx, 0xac
call fcn.004936d3
mov dword [esp + 0x44], 0x4b5874
mov esi, dword [esp + 0x48]
mov byte [esp + 0x68], 0x32
cmp esi, ebp
je 0x402313
mov eax, dword [esp + 0x4c]
cmp eax, ebp
jbe 0x402313
mov ecx, esi
mov edx, eax
mov eax, dword [ecx]
cmp eax, ebp
je 0x4021a8
mov eax, dword [eax]
cmp eax, ebp
jne 0x4021a2
add ecx, 4
dec edx
jne 0x40219c
jmp 0x402313
mov edx, dword [esp + 0x1c]
push 0x4d34cc
lea ecx, [edx + 0xac]
call fcn.004936d3
lea ecx, [esp + 0x10]
mov byte [esp + 0x68], 2
call fcn.0049354a
mov dword [esp + 0x44], 0x4b5874
lea ecx, [esp + 0x44]
mov byte [esp + 0x68], 0x1c
call fcn.00418d00
lea ecx, [esp + 0x70]
mov byte [esp + 0x68], 0
call fcn.0049354a
jmp 0x401137
mov eax, dword [esp + 0x1c]
push 0x4d34c0
lea ecx, [eax + 0xac]
call fcn.004936d3
lea ecx, [esp + 0x20]
mov byte [esp + 0x68], 0x1b
call fcn.0049354a
lea ecx, [esp + 0x10]
mov byte [esp + 0x68], 2
call fcn.0049354a
mov dword [esp + 0x44], 0x4b5874
lea ecx, [esp + 0x44]
mov byte [esp + 0x68], 0x1f
call fcn.00418d00
lea ecx, [esp + 0x70]
mov byte [esp + 0x68], 0
call fcn.0049354a
jmp 0x401137
mov ecx, dword [esp + 0x1c]
push 0x4d34c0
add ecx, 0xac
call fcn.004936d3
lea ecx, [esp + 0x20]
mov byte [esp + 0x68], 0x1b
call fcn.0049354a
lea ecx, [esp + 0x10]
mov byte [esp + 0x68], 2
call fcn.0049354a
mov dword [esp + 0x44], 0x4b5874
lea ecx, [esp + 0x44]
mov byte [esp + 0x68], 0x22
call fcn.00418d00
lea ecx, [esp + 0x70]
mov byte [esp + 0x68], 0
call fcn.0049354a
jmp 0x401137
mov edx, dword [esp + 0x1c]
push 0x4d34c0
lea ecx, [edx + 0xac]
call fcn.004936d3
lea ecx, [esp + 0x20]
mov byte [esp + 0x68], 0x1b
call fcn.0049354a
lea ecx, [esp + 0x10]
mov byte [esp + 0x68], 2
call fcn.0049354a
mov dword [esp + 0x44], 0x4b5874
mov esi, dword [esp + 0x48]
mov byte [esp + 0x68], 0x25
cmp esi, ebp
je 0x402313
mov eax, dword [esp + 0x4c]
cmp eax, ebp
jbe 0x402313
mov ecx, esi
mov edx, eax
mov eax, dword [ecx]
cmp eax, ebp
je 0x40230d
mov eax, dword [eax]
cmp eax, ebp
jne 0x402307
add ecx, 4
dec edx
jne 0x402301
push esi
call fcn.00493b2c
mov ecx, dword [esp + 0x5c]
add esp, 4
mov dword [esp + 0x48], ebp
mov dword [esp + 0x50], ebp
mov dword [esp + 0x54], ebp
call fcn.0049271b
lea ecx, [esp + 0x70]
mov dword [esp + 0x58], ebp
mov byte [esp + 0x68], 0
call fcn.0049354a
jmp 0x401137
mov eax, dword [esp + 0x1c]
push 0x4d34c0
lea ecx, [eax + 0xac]
call fcn.004936d3
lea ecx, [esp + 0x20]
mov byte [esp + 0x68], 0x1b
call fcn.0049354a
lea ecx, [esp + 0x10]
mov byte [esp + 0x68], 2
call fcn.0049354a
mov dword [esp + 0x44], 0x4b5874
mov esi, dword [esp + 0x48]
mov byte [esp + 0x68], 0x28
cmp esi, ebp
je 0x402313
mov eax, dword [esp + 0x4c]
cmp eax, ebp
jbe 0x402313
mov ecx, esi
mov edx, eax
mov eax, dword [ecx]
cmp eax, ebp
je 0x4023a9
mov eax, dword [eax]
cmp eax, ebp
jne 0x4023a3
add ecx, 4
dec edx
jne 0x40239d
jmp 0x402313
mov ecx, dword [esp + 0x1c]
push 0x4d34ac
add ecx, 0xac
call fcn.004936d3
lea ecx, [esp + 0x20]
mov byte [esp + 0x68], 0x1b
call fcn.0049354a
lea ecx, [esp + 0x10]
mov byte [esp + 0x68], 2
call fcn.0049354a
mov dword [esp + 0x44], 0x4b5874
mov esi, dword [esp + 0x48]
mov byte [esp + 0x68], 0x2a
cmp esi, ebp
je 0x402313
mov eax, dword [esp + 0x4c]
cmp eax, ebp
jbe 0x402313
mov ecx, esi
mov edx, eax
mov eax, dword [ecx]
cmp eax, ebp
je 0x402419
mov eax, dword [eax]
cmp eax, ebp
jne 0x402413
add ecx, 4
dec edx
jne 0x40240d
jmp 0x402313
mov edx, dword [esp + 0x1c]
push 0x4d34a0
lea ecx, [edx + 0xac]
call fcn.004936d3
lea ecx, [esp + 0x20]
mov byte [esp + 0x68], 0x1b
call fcn.0049354a
lea ecx, [esp + 0x10]
mov byte [esp + 0x68], 2
call fcn.0049354a
mov dword [esp + 0x44], 0x4b5874
mov esi, dword [esp + 0x48]
mov byte [esp + 0x68], 0x2b
cmp esi, ebp
je 0x402313
mov eax, dword [esp + 0x4c]
cmp eax, ebp
jbe 0x402313
mov ecx, esi
mov edx, eax
mov eax, dword [ecx]
cmp eax, ebp
je 0x402489
mov eax, dword [eax]
cmp eax, ebp
jne 0x402483
add ecx, 4
dec edx
jne 0x40247d
jmp 0x402313
mov eax, dword [esp + 0x1c]
push 0x4d3490
lea ecx, [eax + 0xac]
call fcn.004936d3
lea ecx, [esp + 0x20]
mov byte [esp + 0x68], 0x1b
call fcn.0049354a
lea ecx, [esp + 0x10]
mov byte [esp + 0x68], 2
call fcn.0049354a
mov dword [esp + 0x44], 0x4b5874
mov esi, dword [esp + 0x48]
mov byte [esp + 0x68], 0x29
cmp esi, ebp
je 0x402313
mov eax, dword [esp + 0x4c]
cmp eax, ebp
jbe 0x402313
mov ecx, esi
mov edx, eax
mov eax, dword [ecx]
cmp eax, ebp
je 0x4024f9
mov eax, dword [eax]
cmp eax, ebp
jne 0x4024f3
add ecx, 4
dec edx
jne 0x4024ed
jmp 0x402313
mov ecx, dword [esp + 0x1c]
push 0x4d3490
add ecx, 0xac
call fcn.004936d3
lea ecx, [esp + 0x20]
mov byte [esp + 0x68], 0x1b
call fcn.0049354a
lea ecx, [esp + 0x10]
mov byte [esp + 0x68], 2
call fcn.0049354a
mov dword [esp + 0x44], 0x4b5874
mov esi, dword [esp + 0x48]
mov byte [esp + 0x68], 0x26
cmp esi, ebp
je 0x402313
mov eax, dword [esp + 0x4c]
cmp eax, ebp
jbe 0x402313
mov ecx, esi
mov edx, eax
mov eax, dword [ecx]
cmp eax, ebp
je 0x402569
mov eax, dword [eax]
cmp eax, ebp
jne 0x402563
add ecx, 4
dec edx
jne 0x40255d
jmp 0x402313
mov edx, dword [esp + 0x1c]
push 0x4d3490
lea ecx, [edx + 0xac]
call fcn.004936d3
lea ecx, [esp + 0x20]
mov byte [esp + 0x68], 0x1b
call fcn.0049354a
lea ecx, [esp + 0x10]
mov byte [esp + 0x68], 2
call fcn.0049354a
mov dword [esp + 0x44], 0x4b5874
lea ecx, [esp + 0x44]
mov byte [esp + 0x68], 0x23
call fcn.00418d00
lea ecx, [esp + 0x70]
mov byte [esp + 0x68], 0
call fcn.0049354a
jmp 0x401137
mov eax, dword [esp + 0x1c]
push 0x4d3490
lea ecx, [eax + 0xac]
call fcn.004936d3
lea ecx, [esp + 0x20]
mov byte [esp + 0x68], 0x1b
call fcn.0049354a
lea ecx, [esp + 0x10]
mov byte [esp + 0x68], 2
call fcn.0049354a
mov dword [esp + 0x44], 0x4b5874
lea ecx, [esp + 0x44]
mov byte [esp + 0x68], 0x20
call fcn.00418d00
lea ecx, [esp + 0x70]
mov byte [esp + 0x68], 0
call fcn.0049354a
jmp 0x401137
mov ecx, dword [esp + 0x1c]
push 0x4d36d8
add ecx, 0xac
call fcn.004936d3
mov dword [esp + 0x44], 0x4b5874
mov esi, dword [esp + 0x48]
mov byte [esp + 0x68], 0x33
cmp esi, ebp
je 0x40266d
mov eax, dword [esp + 0x4c]
cmp eax, ebp
jbe 0x40266d
mov ecx, esi
mov edx, eax
mov eax, dword [ecx]
cmp eax, ebp
je 0x402667
mov eax, dword [eax]
cmp eax, ebp
jne 0x402661
add ecx, 4
dec edx
jne 0x40265b
push esi
call fcn.00493b2c
mov ecx, dword [esp + 0x5c]
add esp, 4
mov dword [esp + 0x48], ebp
mov dword [esp + 0x50], ebp
mov dword [esp + 0x54], ebp
call fcn.0049271b
lea ecx, [esp + 0x70]
mov dword [esp + 0x58], ebp
mov byte [esp + 0x68], 0
call fcn.0049354a
mov dword [esp + 0x68], 0xffffffff
jmp 0x403674
mov edx, dword [0x4dca08]
mov dword [esp + 0x18], edx
push 0x23
lea ecx, [esp + 0x18]
mov byte [esp + 0x6c], 0x34
call fcn.00493a11
cmp eax, edi
jne 0x4026dc
mov eax, dword [esp + 0x1c]
push 0x4d3694
lea ecx, [eax + 0xac]
jmp 0x4036a9
push 0x23
lea ecx, [esp + 0x18]
call fcn.00493a11
inc eax
lea ecx, [esp + 0x14]
push eax
push 0x23
call fcn.00493a1f
cmp eax, edi
je 0x40270c
mov ecx, dword [esp + 0x1c]
push 0x4d3680
add ecx, 0xac
jmp 0x4036a9
mov edx, dword [esp + 0x14]
push 0x2e
lea ecx, [esp + 0x18]
mov esi, dword [edx - 8]
call fcn.00493a11
dec esi
cmp eax, esi
je 0x402737
mov eax, dword [esp + 0x1c]
push 0x4d366c
lea ecx, [eax + 0xac]
jmp 0x4036a9
push 0x23
lea ecx, [esp + 0x18]
call fcn.00493a11
lea ecx, [esp + 0x70]
push eax
push ecx
lea ecx, [esp + 0x1c]
call fcn.00490a26
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x6c], 0x35
call fcn.00493683
lea ecx, [esp + 0x70]
mov byte [esp + 0x68], 0x34
call fcn.0049354a
push 0x23
lea ecx, [esp + 0x18]
call fcn.00493a11
inc eax
lea ecx, [esp + 0x14]
push eax
push ebp
call fcn.00490915
mov edx, dword [esp + 0x14]
cmp dword [edx - 8], 2
jge 0x4027a3
mov eax, dword [esp + 0x1c]
push 0x4d3478
lea ecx, [eax + 0xac]
jmp 0x4036a9
push 0x3b
lea ecx, [esp + 0x1c]
call fcn.00493a11
cmp eax, edi
je 0x402ac8
mov esi, dword [esp + 0x18]
xor dl, dl
xor bl, bl
mov dword [esp + 0x3c], ebp
mov eax, dword [esi - 8]
mov dword [esp + 0x40], ebp
cmp eax, ebp
mov byte [esp + 0x10], dl
je 0x403410
mov ebp, dword [esp + 0x70]
jmp 0x4027df
mov dl, byte [esp + 0x10]
mov cl, byte [esi]
cmp cl, 0x3b
je 0x402a8d
movsx ecx, cl
lea edi, [ecx - 0x2c]
cmp edi, 0x2c
ja case.0x402801.50
xor ecx, ecx
mov cl, byte [edi + 0x403774]
jmp dword [ecx*4 + 0x403758]
cmp eax, 2
jl 0x402b33
cmp byte [esi + 1], 0x51
jne 0x402b33
mov eax, dword [esp + 0x3c]
mov esi, 1
cmp eax, esi
je 0x402b29
push 2
push 0
lea ecx, [esp + 0x20]
call fcn.00490915
mov byte [esp + 0x10], bl
mov dword [esp + 0x3c], esi
mov bl, 3
or ebp, 0xffffffff
mov byte [esp + 0x70], 0
jmp 0x402a7e
cmp eax, 2
jl 0x402b5b
cmp byte [esi + 1], 0x4c
jne 0x402b5b
mov eax, dword [esp + 0x3c]
mov esi, 1
cmp eax, esi
je 0x402b47
push 2
push 0
lea ecx, [esp + 0x20]
call fcn.00490915
mov byte [esp + 0x10], bl
mov dword [esp + 0x3c], esi
mov bl, 4
jmp 0x402a7e
cmp eax, 2
jl 0x402b79
cmp byte [esi + 1], 0x51
jne 0x402b79
mov eax, dword [esp + 0x3c]
mov esi, 1
cmp eax, esi
je 0x402b65
push 2
push 0
lea ecx, [esp + 0x20]
call fcn.00490915
mov byte [esp + 0x10], bl
mov dword [esp + 0x3c], esi
mov bl, 4
jmp 0x402a7e
cmp eax, 2
jl 0x402b97
cmp byte [esi + 1], 0x48
jne 0x402b97
mov eax, dword [esp + 0x40]
mov esi, 1
cmp eax, esi
je 0x402b8d
push 2
push 0
lea ecx, [esp + 0x20]
call fcn.00490915
mov byte [esp + 0x10], bl
mov dword [esp + 0x40], esi
mov bl, 3
or ebp, 0xffffffff
mov byte [esp + 0x70], 1
jmp 0x402a7e
cmp bl, 5
je 0x402926
cmp bl, 4
jne 0x402bab
cmp dl, 2
je 0x402bab
push 1
push 0
lea ecx, [esp + 0x20]
call fcn.00490915
mov byte [esp + 0x10], bl
mov bl, 1
jmp 0x402a7e
cmp eax, 2
jl 0x402bc9
cmp byte [esi + 1], 0x3e
jne 0x402bc9
cmp bl, 5
jne 0x402bbf
cmp dl, 1
je 0x402bbf
push 2
push 0
lea ecx, [esp + 0x20]
call fcn.00490915
mov byte [esp + 0x10], bl
mov bl, 2
jmp 0x402a7e
cmp bl, 3
je 0x4029ac
cmp bl, 1
je 0x4029ac
cmp bl, 2
je 0x4029ac
mov edx, dword [esp + 0x1c]
push 0x4d3464
lea ecx, [edx + 0xac]
call fcn.004936d3
jmp 0x402a7e
lea eax, [esp + 0x20]
push 0x4d36f4
push eax
lea ecx, [esp + 0x20]
call fcn.00490a9e
mov eax, dword [esp + 0x20]
mov byte [esp + 0x68], 0x36
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x402bdd
push eax
call fcn.0047edbd
add esp, 4
cmp eax, ebp
jle 0x402c04
mov al, byte [esp + 0x70]
test al, al
je 0x402a1b
mov ecx, dword [esp + 0x20]
push ecx
call fcn.0047edbd
add esp, 4
test eax, eax
jl 0x402c2b
mov edx, dword [esp + 0x20]
push edx
call fcn.0047edbd
add esp, 4
cmp eax, 0xff
jg 0x402c2b
jmp 0x402a48
mov eax, dword [esp + 0x20]
push eax
call fcn.0047edbd
add esp, 4
test eax, eax
jl 0x402c52
mov ecx, dword [esp + 0x20]
push ecx
call fcn.0047edbd
add esp, 4
cmp eax, 0xff
jg 0x402c52
mov edx, dword [esp + 0x20]
lea ecx, [esp + 0x18]
mov eax, dword [edx - 8]
push eax
push 0
call fcn.00490915
mov eax, dword [esp + 0x20]
mov byte [esp + 0x10], bl
push eax
mov bl, 5
call fcn.0047edbd
add esp, 4
lea ecx, [esp + 0x20]
mov ebp, eax
mov byte [esp + 0x68], 0x34
call fcn.0049354a
mov esi, dword [esp + 0x18]
mov eax, dword [esi - 8]
test eax, eax
jne 0x4027db
test bl, bl
je 0x403410
cmp bl, 1
je 0x403410
cmp bl, 2
je 0x403410
cmp bl, 3
je 0x403410
push 0x3b
lea ecx, [esp + 0x1c]
call fcn.00493a11
inc eax
lea ecx, [esp + 0x18]
push eax
push 0
call fcn.00490915
mov ecx, dword [esp + 0x18]
xor ebx, ebx
xor edi, edi
xor esi, esi
mov ebp, dword [ecx - 8]
test ebp, ebp
je 0x40301b
movsx eax, byte [ecx]
add eax, 0xffffffda
cmp eax, 0x56
ja case.0x402af4.44
xor edx, edx
mov dl, byte [eax + 0x4037c0]
jmp dword [edx*4 + 0x4037a4]
test esi, esi
je 0x402b12
cmp esi, 1
je 0x402b12
cmp esi, 7
je 0x402b12
cmp esi, 8
jne 0x402ec7
push 1
push 0
lea ecx, [esp + 0x20]
call fcn.00490915
inc ebx
mov edi, esi
xor esi, esi
jmp 0x402eb3
push 0x4d3450
jmp 0x403415
mov edx, dword [esp + 0x1c]
push 0x4d3444
lea ecx, [edx + 0xac]
jmp 0x40341f
mov eax, dword [esp + 0x1c]
push 0x4d3450
lea ecx, [eax + 0xac]
jmp 0x40341f
push 0x4d3438
jmp 0x403415
mov edx, dword [esp + 0x1c]
push 0x4d3450
lea ecx, [edx + 0xac]
jmp 0x40341f
mov eax, dword [esp + 0x1c]
push 0x4d342c
lea ecx, [eax + 0xac]
jmp 0x40341f
push 0x4d341c
jmp 0x403415
mov edx, dword [esp + 0x1c]
push 0x4d3410
lea ecx, [edx + 0xac]
jmp 0x40341f
mov eax, dword [esp + 0x1c]
push 0x4d3400
lea ecx, [eax + 0xac]
jmp 0x40341f
push 0x4d33ec
jmp 0x403415
mov edx, dword [esp + 0x1c]
push 0x4d33e0
lea ecx, [edx + 0xac]
jmp 0x40341f
push 0x4d33d4
mov eax, dword [esp + 0x20]
lea ecx, [eax + 0xac]
call fcn.004936d3
lea ecx, [esp + 0x20]
mov byte [esp + 0x68], 0x34
call fcn.0049354a
jmp 0x403424
mov ecx, dword [esp + 0x1c]
push 0x4d33c0
add ecx, 0xac
call fcn.004936d3
lea ecx, [esp + 0x20]
mov byte [esp + 0x68], 0x34
call fcn.0049354a
jmp 0x403424
mov edx, dword [esp + 0x1c]
push 0x4d33ac
lea ecx, [edx + 0xac]
call fcn.004936d3
lea ecx, [esp + 0x20]
mov byte [esp + 0x68], 0x34
call fcn.0049354a
jmp 0x403424
push 0x4d3398
jmp 0x402be2
cmp esi, 2
je 0x402c67
cmp esi, 3
jne 0x402ed1
push 1
push 0
lea ecx, [esp + 0x20]
call fcn.00490915
dec ebx
js 0x402ee5
cmp esi, 2
je 0x402eb3
mov edi, esi
mov esi, 2
jmp 0x402eb3
cmp ebp, 2
jl 0x402f03
cmp byte [ecx + 1], 0x3d
jne 0x402f03
cmp esi, 5
jne 0x402cb3
cmp edi, 6
je 0x402ef9
jmp 0x402cc5
cmp esi, 2
jne 0x402ef9
cmp edi, 5
jne 0x402ef9
push 2
mov edi, esi
push 0
lea ecx, [esp + 0x20]
mov esi, 4
call fcn.00490915
jmp 0x402eb3
cmp esi, 5
jne 0x402f17
push 1
push 0
lea ecx, [esp + 0x20]
call fcn.00490915
mov edi, esi
mov esi, 6
jmp 0x402eb3
cmp esi, 3
je 0x402d17
cmp esi, 2
jne 0x402f2b
cmp edi, 3
jne 0x402f2b
push 1
push 0
lea ecx, [esp + 0x20]
call fcn.00490915
mov edi, esi
mov esi, 7
jmp 0x402eb3
cmp esi, 3
je 0x402d47
cmp esi, 2
jne 0x402f35
cmp edi, 3
jne 0x402f35
push 1
push 0
lea ecx, [esp + 0x20]
call fcn.00490915
mov edi, esi
mov esi, 8
jmp 0x402eb3
cmp esi, 4
jne 0x402ddc
lea eax, [esp + 0x70]
push 0x4d36f4
push eax
lea ecx, [esp + 0x20]
call fcn.00490a9e
mov eax, dword [esp + 0x70]
mov byte [esp + 0x68], 0x37
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x402f49
push eax
call fcn.0047edbd
add esp, 4
cmp eax, 1
jl 0x402f70
mov ecx, dword [esp + 0x70]
push ecx
call fcn.0047edbd
add esp, 4
cmp eax, 0x63
jg 0x402f70
mov edx, dword [esp + 0x70]
lea ecx, [esp + 0x18]
mov eax, dword [edx - 8]
push eax
push 0
call fcn.00490915
mov edi, esi
mov esi, 3
mov byte [esp + 0x68], 0x34
lea ecx, [esp + 0x70]
jmp 0x402eae
test esi, esi
je 0x402df8
cmp esi, 1
je 0x402df8
cmp esi, 6
je 0x402df8
cmp esi, 7
je 0x402df8
cmp esi, 8
jne 0x402f97
lea eax, [esp + 0x24]
push str.ABCDEFGHIJKLMNOPQRSTUVWXYZ
push eax
lea ecx, [esp + 0x20]
call fcn.00490a9e
mov eax, dword [esp + 0x24]
mov byte [esp + 0x68], 0x38
mov edx, dword [eax - 8]
cmp edx, 2
jne 0x402fab
mov cl, byte [eax]
mov al, byte [eax + 1]
movsx ecx, cl
movsx eax, al
shl ecx, 8
add eax, ecx
cmp eax, 0x5342
jg 0x402e6a
je 0x402e92
cmp eax, 0x4759
jg 0x402e56
je 0x402e92
cmp eax, 0x424a
je 0x402e92
cmp eax, 0x4757
jne 0x402fd2
jmp 0x402e92
cmp eax, 0x4c5a
je 0x402e92
cmp eax, 0x5154
jne 0x402fd2
jmp 0x402e92
cmp eax, 0x5848
jg 0x402e87
je 0x402e92
cmp eax, 0x534c
je 0x402e92
cmp eax, 0x5443
jne 0x402fd2
jmp 0x402e92
cmp eax, 0x594c
jne 0x402fd2
push edx
mov edi, esi
push 0
lea ecx, [esp + 0x20]
mov esi, 5
call fcn.00490915
mov byte [esp + 0x68], 0x34
lea ecx, [esp + 0x24]
call fcn.0049354a
mov ecx, dword [esp + 0x18]
mov ebp, dword [ecx - 8]
test ebp, ebp
je 0x402ff9
jmp 0x402add
push 0x4d3384
jmp 0x403415
mov edx, dword [esp + 0x1c]
push 0x4d3370
lea ecx, [edx + 0xac]
jmp 0x40341f
mov eax, dword [esp + 0x1c]
push 0x4d3360
lea ecx, [eax + 0xac]
jmp 0x40341f
push 0x4d3348
jmp 0x403415
mov edx, dword [esp + 0x1c]
push 0x4d333c
lea ecx, [edx + 0xac]
jmp 0x40341f
mov eax, dword [esp + 0x1c]
push 0x4d3328
lea ecx, [eax + 0xac]
jmp 0x40341f
push 0x4d3314
jmp 0x403415
mov edx, dword [esp + 0x1c]
push 0x4d3300
lea ecx, [edx + 0xac]
jmp 0x40341f
mov eax, dword [esp + 0x1c]
push 0x4d33d4
lea ecx, [eax + 0xac]
call fcn.004936d3
lea ecx, [esp + 0x70]
mov byte [esp + 0x68], 0x34
call fcn.0049354a
jmp 0x403424
mov ecx, dword [esp + 0x1c]
push 0x4d32f0
add ecx, 0xac
call fcn.004936d3
lea ecx, [esp + 0x70]
mov byte [esp + 0x68], 0x34
call fcn.0049354a
jmp 0x403424
mov edx, dword [esp + 0x1c]
push 0x4d32dc
lea ecx, [edx + 0xac]
jmp 0x40341f
mov eax, dword [esp + 0x1c]
push 0x4d32dc
lea ecx, [eax + 0xac]
call fcn.004936d3
lea ecx, [esp + 0x24]
mov byte [esp + 0x68], 0x34
call fcn.0049354a
jmp 0x403424
mov ecx, dword [esp + 0x1c]
push 0x4d32d0
add ecx, 0xac
call fcn.004936d3
lea ecx, [esp + 0x24]
mov byte [esp + 0x68], 0x34
call fcn.0049354a
jmp 0x403424
test ebx, ebx
je 0x403011
mov edx, dword [esp + 0x1c]
push 0x4d3360
lea ecx, [edx + 0xac]
call fcn.004936d3
cmp esi, 2
je 0x40302f
cmp esi, 3
je 0x40302f
mov eax, dword [esp + 0x1c]
push 0x4d32bc
lea ecx, [eax + 0xac]
jmp 0x40341f
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x1c]
call fcn.00493683
push 0x3b
lea ecx, [esp + 0x1c]
call fcn.00493a11
cmp eax, 0xffffffff
je 0x403437
mov esi, dword [esp + 0x18]
xor ecx, ecx
xor dl, dl
xor bl, bl
mov eax, dword [esi - 8]
mov dword [esp + 0x3c], ecx
cmp eax, ecx
mov dword [esp + 0x40], ecx
mov byte [esp + 0x10], dl
je 0x403410
mov ebp, dword [esp + 0x70]
jmp 0x40307c
mov dl, byte [esp + 0x10]
mov cl, byte [esi]
cmp cl, 0x3b
je 0x40332a
movsx ecx, cl
lea edi, [ecx - 0x2c]
cmp edi, 0x2c
ja case.0x40309e.50
xor ecx, ecx
mov cl, byte [edi + 0x403834]
jmp dword [ecx*4 + 0x403818]
cmp eax, 2
jl 0x402b33
cmp byte [esi + 1], 0x51
jne 0x402b33
mov eax, dword [esp + 0x3c]
mov esi, 1
cmp eax, esi
je 0x402b29
push 2
push 0
lea ecx, [esp + 0x20]
call fcn.00490915
mov byte [esp + 0x10], bl
mov dword [esp + 0x3c], esi
mov bl, 3
or ebp, 0xffffffff
mov byte [esp + 0x70], 0
jmp 0x40331b
cmp eax, 2
jl 0x402b5b
cmp byte [esi + 1], 0x4c
jne 0x402b5b
mov eax, dword [esp + 0x3c]
mov esi, 1
cmp eax, esi
je 0x402b47
push 2
push 0
lea ecx, [esp + 0x20]
call fcn.00490915
mov byte [esp + 0x10], bl
mov dword [esp + 0x3c], esi
mov bl, 4
jmp 0x40331b
cmp eax, 2
jl 0x402b79
cmp byte [esi + 1], 0x51
jne 0x402b79
mov eax, dword [esp + 0x3c]
mov esi, 1
cmp eax, esi
je 0x402b65
push 2
push 0
lea ecx, [esp + 0x20]
call fcn.00490915
mov byte [esp + 0x10], bl
mov dword [esp + 0x3c], esi
mov bl, 4
jmp 0x40331b
cmp eax, 2
jl 0x402b33
cmp byte [esi + 1], 0x48
jne 0x402b33
mov eax, dword [esp + 0x40]
mov esi, 1
cmp eax, esi
je 0x402b8d
push 2
push 0
lea ecx, [esp + 0x20]
call fcn.00490915
mov byte [esp + 0x10], bl
mov dword [esp + 0x40], esi
mov bl, 3
or ebp, 0xffffffff
mov byte [esp + 0x70], 1
jmp 0x40331b
cmp bl, 5
je 0x4031c3
cmp bl, 4
jne 0x402bab
cmp dl, 2
je 0x402bab
push 1
push 0
lea ecx, [esp + 0x20]
call fcn.00490915
mov byte [esp + 0x10], bl
mov bl, 1
jmp 0x40331b
cmp eax, 2
jl 0x402bc9
cmp byte [esi + 1], 0x3e
jne 0x402bc9
cmp bl, 5
jne 0x402bbf
cmp dl, 1
je 0x402bbf
push 2
push 0
lea ecx, [esp + 0x20]
call fcn.00490915
mov byte [esp + 0x10], bl
mov bl, 2
jmp 0x40331b
cmp bl, 3
je 0x403249
cmp bl, 1
je 0x403249
cmp bl, 2
je 0x403249
mov edx, dword [esp + 0x1c]
push 0x4d3464
lea ecx, [edx + 0xac]
call fcn.004936d3
jmp 0x40331b
lea eax, [esp + 0x20]
push 0x4d36f4
push eax
lea ecx, [esp + 0x20]
call fcn.00490a9e
mov eax, dword [esp + 0x20]
mov byte [esp + 0x68], 0x39
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x40336a
push eax
call fcn.0047edbd
add esp, 4
cmp eax, ebp
jle 0x403371
mov al, byte [esp + 0x70]
test al, al
je 0x4032b8
mov ecx, dword [esp + 0x20]
push ecx
call fcn.0047edbd
add esp, 4
test eax, eax
jl 0x4033a6
mov edx, dword [esp + 0x20]
push edx
call fcn.0047edbd
add esp, 4
cmp eax, 0xff
jg 0x4033a6
jmp 0x4032e5
mov eax, dword [esp + 0x20]
push eax
call fcn.0047edbd
add esp, 4
test eax, eax
jl 0x4033db
mov ecx, dword [esp + 0x20]
push ecx
call fcn.0047edbd
add esp, 4
cmp eax, 0xff
jg 0x4033db
mov edx, dword [esp + 0x20]
lea ecx, [esp + 0x18]
mov eax, dword [edx - 8]
push eax
push 0
call fcn.00490915
mov eax, dword [esp + 0x20]
mov byte [esp + 0x10], bl
push eax
mov bl, 5
call fcn.0047edbd
add esp, 4
lea ecx, [esp + 0x20]
mov ebp, eax
mov byte [esp + 0x68], 0x34
call fcn.0049354a
mov esi, dword [esp + 0x18]
mov eax, dword [esi - 8]
test eax, eax
jne 0x403078
test bl, bl
je 0x403410
cmp bl, 1
je 0x403410
cmp bl, 2
je 0x403410
cmp bl, 3
je 0x403410
push 0x3b
lea ecx, [esp + 0x1c]
call fcn.00493a11
inc eax
lea ecx, [esp + 0x18]
push eax
push 0
call fcn.00490915
jmp 0x403437
push 0x4d33d4
jmp 0x4033e0
mov ecx, dword [esp + 0x1c]
push 0x4d33c0
add ecx, 0xac
call fcn.004936d3
lea ecx, [esp + 0x20]
mov byte [esp + 0x68], 0x34
call fcn.0049354a
lea ecx, [esp + 0x18]
mov byte [esp + 0x68], 0
call fcn.0049354a
jmp 0x401137
mov edx, dword [esp + 0x1c]
push 0x4d33ac
lea ecx, [edx + 0xac]
call fcn.004936d3
lea ecx, [esp + 0x20]
mov byte [esp + 0x68], 0x34
call fcn.0049354a
lea ecx, [esp + 0x18]
mov byte [esp + 0x68], 0
call fcn.0049354a
jmp 0x401137
push 0x4d3398
mov eax, dword [esp + 0x20]
lea ecx, [eax + 0xac]
call fcn.004936d3
lea ecx, [esp + 0x20]
mov byte [esp + 0x68], 0x34
call fcn.0049354a
lea ecx, [esp + 0x18]
mov byte [esp + 0x68], 0
call fcn.0049354a
jmp 0x401137
push 0x4d32a8
mov ecx, dword [esp + 0x20]
add ecx, 0xac
call fcn.004936d3
lea ecx, [esp + 0x18]
mov byte [esp + 0x68], 0
call fcn.0049354a
jmp 0x401137
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
or edi, 0xffffffff
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x403652
mov cl, byte [eax]
cmp cl, 0x2e
je 0x403652
mov al, byte [eax + 1]
xor ebx, ebx
movsx ecx, cl
movsx eax, al
mov dword [esp + 0x45], ebx
xor dl, dl
shl ecx, 8
mov dword [esp + 0x49], ebx
add eax, ecx
mov dword [esp + 0x4d], ebx
cmp eax, 0x4c44
mov dword [esp + 0x51], ebx
jg 0x403589
je 0x403574
cmp eax, 0x4742
jg 0x40351e
je 0x403510
cmp eax, 0x464a
jg 0x4034f0
je 0x4034db
sub eax, 0x4443
je 0x4034c6
sub eax, 0x11
jne 0x40369e
cmp byte [esp + 0x53], 1
je 0x403697
mov byte [esp + 0x53], 1
jmp 0x403636
cmp byte [esp + 0x46], 1
je 0x403697
mov byte [esp + 0x46], 1
jmp 0x403636
cmp byte [esp + 0x51], 1
je 0x403697
mov byte [esp + 0x51], 1
jmp 0x403636
cmp eax, 0x4650
jne 0x40369e
cmp byte [esp + 0x4f], 1
je 0x403697
mov byte [esp + 0x4f], 1
jmp 0x403636
cmp dl, 1
je 0x403697
jmp 0x403636
sub eax, 0x4a47
je 0x40355f
sub eax, 5
je 0x40354a
sub eax, 0xf8
jne 0x40369e
cmp byte [esp + 0x4b], 1
je 0x403697
mov byte [esp + 0x4b], 1
jmp 0x403636
cmp byte [esp + 0x4a], 1
je 0x403697
mov byte [esp + 0x4a], 1
jmp 0x403636
cmp byte [esp + 0x47], 1
je 0x403697
mov byte [esp + 0x47], 1
jmp 0x403636
cmp byte [esp + 0x45], 1
je 0x403697
mov byte [esp + 0x45], 1
jmp 0x403636
cmp eax, 0x5846
jg 0x4035f3
je 0x4035e1
cmp eax, 0x4c50
je 0x4035cf
cmp eax, 0x5059
je 0x4035bd
cmp eax, 0x5346
jne 0x40369e
cmp byte [esp + 0x48], 1
je 0x403697
mov byte [esp + 0x48], 1
jmp 0x403636
cmp byte [esp + 0x49], 1
je 0x403697
mov byte [esp + 0x49], 1
jmp 0x403636
cmp byte [esp + 0x50], 1
je 0x403697
mov byte [esp + 0x50], 1
jmp 0x403636
cmp byte [esp + 0x4e], 1
je 0x403697
mov byte [esp + 0x4e], 1
jmp 0x403636
sub eax, 0x594a
je 0x40362a
sub eax, 0xfa
je 0x40361c
sub eax, 9
jne 0x40369e
cmp byte [esp + 0x4c], 1
je 0x403697
mov byte [esp + 0x4c], 1
jmp 0x403636
cmp byte [esp + 0x4d], 1
je 0x403697
mov byte [esp + 0x4d], 1
jmp 0x403636
cmp byte [esp + 0x52], 1
je 0x403697
mov byte [esp + 0x52], 1
push 3
push 0
lea ecx, [esp + 0x20]
call fcn.00490915
mov eax, dword [esp + 0x18]
mov ecx, dword [eax - 8]
test ecx, ecx
jne 0x40344d
lea ecx, [esp + 0x18]
mov byte [esp + 0x68], 0
call fcn.0049354a
push 0x4d36d8
lea ecx, [esi + 0xac]
call fcn.004936d3
mov dword [esp + 0x68], edi
lea ecx, [esp + 0x14]
call fcn.0049354a
mov eax, 1
mov ecx, dword [esp + 0x60]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x5c
ret 4
push 0x4d3298
jmp 0x4036a3
push 0x4d3280
lea ecx, [esi + 0xac]
call fcn.004936d3
lea ecx, [esp + 0x18]
mov byte [esp + 0x68], 0
call fcn.0049354a
lea ecx, [esp + 0x14]
mov dword [esp + 0x68], edi
call fcn.0049354a
xor eax, eax
jmp 0x403682