Function at 0x10044650
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100b6577
mov eax, dword fs:[0]
push eax
sub esp, 0x11c
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x58], edx
mov dword [ebp - 0x4c], ecx
mov eax, dword [ebp + 8]
mov dword [ebp - 0x54], eax
mov edi, dword [ebp + 0xc]
mov dword [ebp - 0x88], edi
mov ebx, dword [edi + 0x28]
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x68], 0
mov dword [ebp - 4], 0
xor esi, esi
mov dword [ebp - 0x44], esi
mov dword [ebp - 0x40], esi
mov byte [ebp - 0x5b], 0
mov byte [ebp - 0x39], 0
mov dword [ebp - 0x7c], esi
mov dword [ebp - 0x78], esi
mov dword [ebp - 0x74], esi
mov byte [ebp - 4], 1
mov dword [ebp - 0x9c], esi
mov dword [ebp - 0x98], esi
mov dword [ebp - 0x94], esi
mov byte [ebp - 4], 2
mov dword [ebp - 0x90], esi
mov dword [ebp - 0x8c], 0x14
push 0x14
lea ecx, [ebp - 0x9c]
call fcn.100941d0
mov byte [ebp - 4], 3
mov byte [ebp - 0x81], 0
mov dword [ebp - 0xa8], esi
push ebx
push dword [ebp - 0x58]
push dword [ebp - 0x4c]
lea ecx, [ebp - 0x128]
call fcn.1001d150
xor eax, eax
jmp 0x10044770
cmp ebx, dword [edi + 0x2c]
jae 0x100457fb
cmp eax, 0xfa
jae 0x100457fb
mov eax, dword [ebp - 0x128]
add eax, ebx
cmp eax, dword [ebp - 0x124]
ja 0x1004479a
mov dword [ebp - 0x120], eax
lea edx, [ebp - 0xbd]
lea ecx, [ebp - 0x128]
call fcn.100ae1f0
mov ebx, eax
mov dword [ebp - 0xb8], ebx
test ebx, ebx
je 0x10045b6d
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x4c]
mov ch, byte [edx + eax]
mov byte [ebp - 0x59], ch
mov cl, ch
and cl, 7
cmp ebx, 1
jne 0x1004497c
movzx eax, ch
add eax, 0xffffffc0
cmp eax, 0x83
ja case.0x100449e4.16
movzx eax, byte [eax + 0x10045b94]
jmp dword [eax*4 + 0x10045b74]
xor esi, esi
jmp 0x10044800
push dword [ebp + esi*4 - 0x34]
lea ecx, [ebp - 0x9c]
call fcn.1009c8b0
inc esi
cmp esi, 8
jl 0x10044800
sub dword [ebp - 0x24], 0x20
mov esi, dword [ebp - 0x44]
jmp case.0x100449e4.16
mov edx, 7
mov ecx, dword [ebp - 0x90]
mov ebx, dword [ebp - 0x9c]
cmp ecx, 4
jb 0x10044854
mov eax, dword [ebx + ecx - 4]
mov dword [ebp + edx*4 - 0x34], eax
sub ecx, 4
mov dword [ebp - 0x90], ecx
dec edx
jns 0x10044832
add dword [ebp - 0x24], 0x20
jmp case.0x100449e4.16
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x9c]
call fcn.1002e210
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x7c]
call fcn.100941a0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x70]
call fcn.100941a0
jmp 0x10045882
movzx eax, cl
push dword [ebp + eax*4 - 0x34]
lea ecx, [ebp - 0x9c]
call fcn.1009c8b0
sub dword [ebp - 0x24], 4
jmp case.0x100449e4.16
movzx eax, cl
lea ecx, [ebp - 0x34]
lea eax, [ecx + eax*4]
push eax
lea ecx, [ebp - 0x9c]
call fcn.1009c880
test al, al
je 0x10044854
add dword [ebp - 0x24], 4
jmp case.0x100449e4.16
movzx eax, cl
inc dword [ebp + eax*4 - 0x34]
jmp case.0x100449e4.16
movzx eax, cl
dec dword [ebp + eax*4 - 0x34]
jmp case.0x100449e4.16
lea edx, [ebp - 0x70]
mov ecx, dword [ebp - 0x38]
call fcn.100444f0
test al, al
jne 0x100457fb
lea eax, [ebp - 0x40]
push eax
lea ecx, [ebp - 0x9c]
call fcn.1009c880
test al, al
je 0x10044854
add dword [ebp - 0x24], 4
mov ecx, dword [ebp - 0x54]
call fcn.100952e0
mov esi, dword [ebp - 0x40]
mov dword [ebp - 0x44], esi
mov ebx, esi
sub ebx, dword [eax + 0x1c]
push ebx
movzx eax, word [edi + 0x34]
push eax
mov ecx, dword [ebp - 0x54]
call fcn.10095320
mov ecx, eax
call fcn.100955a0
mov ecx, eax
call fcn.100957b0
test al, al
je 0x10044854
push 1
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x80]
push eax
push ebx
mov ecx, dword [ebp - 0x54]
call fcn.100951f0
test al, al
je 0x10044854
mov ebx, dword [ebp - 0x80]
mov dword [ebp - 0x38], ebx
cmp ebx, dword [ebp - 0x58]
jae 0x10044854
mov dword [ebp - 0x64], ebx
mov eax, dword [ebp - 0xa8]
inc eax
mov dword [ebp - 0xa8], eax
jmp 0x10044770
dec eax
add eax, ebx
cmp eax, dword [ebp - 0x58]
ja 0x100457fb
mov ebx, dword [ebp - 0x38]
lea eax, [ebx + 1]
add eax, edx
mov dword [ebp - 0x60], eax
mov dl, byte [eax]
mov eax, dword [ebp - 0x4c]
add eax, 2
add eax, ebx
mov dword [ebp - 0xa0], eax
mov bl, byte [eax]
mov dh, dl
and dh, 0xf0
mov byte [ebp - 0x5a], dh
mov al, dl
and al, 8
mov byte [ebp - 0x46], al
mov al, dl
and al, 0xf
mov byte [ebp - 0x45], al
mov bh, dl
and bh, 7
mov byte [ebp - 0xa1], bh
movzx eax, ch
mov dword [ebp - 0xb0], eax
add eax, 0xfffffff1
cmp eax, 0xf0
ja case.0x100449e4.16
movzx eax, byte [eax + 0x10045c48]
jmp dword [eax*4 + 0x10045c18]
movzx eax, dl
sub eax, 0xc4
je 0x10044a29
sub eax, 0x28
jne case.0x100449e4.16
movzx eax, bl
sub dword [ebp - 0x24], eax
test bl, 0xfc
je case.0x100449e4.16
lea ecx, [ecx]
push esi
lea ecx, [ebp - 0x9c]
call fcn.1009c8b0
add bl, 0xfc
test bl, 0xfc
jne 0x10044a10
jmp case.0x100449e4.16
movzx eax, bl
add dword [ebp - 0x24], eax
test bl, 0xfc
je case.0x100449e4.16
jmp 0x10044a40
lea eax, [ebp - 0x40]
push eax
lea ecx, [ebp - 0x9c]
call fcn.1009c880
test al, al
je 0x10044854
add bl, 0xfc
test bl, 0xfc
jne 0x10044a40
mov esi, dword [ebp - 0x40]
mov dword [ebp - 0x44], esi
jmp case.0x100449e4.16
lea edx, [ebp - 0x70]
mov ebx, dword [ebp - 0x38]
mov ecx, ebx
call fcn.100444f0
test al, al
jne 0x100457fb
lea eax, [ebx + 5]
lea ecx, [ebp - 0x7c]
push ecx
push eax
mov eax, dword [ebp - 0x54]
mov ecx, dword [eax + 0x14]
call fcn.100979a0
test al, al
je 0x10044854
mov eax, dword [ebp - 0x7c]
mov edx, dword [ebp - 0x78]
cmp eax, edx
je 0x10044854
mov cx, word [eax + 4]
cmp cx, word [edi + 0x34]
je 0x10044ab7
add eax, 8
jmp 0x10044aa0
mov esi, dword [eax]
mov ecx, dword [ebp - 0x54]
call fcn.100952e0
mov eax, dword [eax + 0x1c]
add eax, esi
mov dword [ebp - 0x44], eax
mov esi, eax
mov dword [ebp - 0x40], esi
push esi
lea ecx, [ebp - 0x9c]
call fcn.1009c8b0
sub dword [ebp - 0x24], 4
lea eax, [ebx + 5]
cmp eax, dword [ebp - 0x58]
ja 0x10044854
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebx + eax + 1]
test eax, eax
jns 0x10044aff
not eax
inc eax
sub ebx, eax
jmp 0x100458f0
add ebx, eax
jmp 0x100458f0
cmp ch, 0xff
jne 0x10044c24
cmp dh, 0xd0
je 0x10044b1d
cmp dh, 0xe0
jne 0x10044c24
cmp byte [ebp - 0x46], 0
jne 0x10044c24
lea edx, [ebp - 0x70]
mov ebx, dword [ebp - 0x38]
mov ecx, ebx
call fcn.100444f0
test al, al
jne 0x100457fb
movzx eax, byte [ebp - 0xa1]
mov eax, dword [ebp + eax*4 - 0x34]
mov dword [ebp - 0x60], eax
cmp byte [ebp - 0x5a], 0xd0
jne 0x10044bb0
lea eax, [ebx + 6]
lea ecx, [ebp - 0x7c]
push ecx
push eax
mov ebx, dword [ebp - 0x54]
mov ecx, dword [ebx + 0x14]
call fcn.100979a0
test al, al
je 0x10044854
mov eax, dword [ebp - 0x7c]
mov edx, dword [ebp - 0x78]
cmp eax, edx
je 0x10044854
mov cx, word [eax + 4]
cmp cx, word [edi + 0x34]
je 0x10044b88
add eax, 8
jmp 0x10044b71
mov esi, dword [eax]
mov ecx, ebx
call fcn.100952e0
mov eax, dword [eax + 0x1c]
add eax, esi
mov dword [ebp - 0x44], eax
mov esi, eax
mov dword [ebp - 0x40], esi
push esi
lea ecx, [ebp - 0x9c]
call fcn.1009c8b0
sub dword [ebp - 0x24], 4
jmp 0x10044bb3
mov ebx, dword [ebp - 0x54]
mov ecx, ebx
call fcn.100952e0
mov ebx, dword [ebp - 0x60]
sub ebx, dword [eax + 0x1c]
push ebx
movzx eax, word [edi + 0x34]
push eax
mov ecx, dword [ebp - 0x54]
call fcn.10095320
mov ecx, eax
call fcn.100955a0
mov ecx, eax
call fcn.100957b0
test al, al
je 0x10044854
push 1
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x80]
push eax
push ebx
mov ecx, dword [ebp - 0x54]
call fcn.100951f0
test al, al
je 0x10044854
mov ebx, dword [ebp - 0x80]
cmp ebx, dword [ebp - 0x58]
jae 0x10044854
dec ebx
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x64], ebx
mov eax, dword [ebp - 0xa8]
inc eax
mov dword [ebp - 0xa8], eax
jmp 0x10044770
test dh, dh
je 0x10044c32
cmp dh, 0x40
je 0x10044c32
cmp dh, 0x80
jne 0x10044c54
mov al, byte [ebp - 0x45]
cmp al, 4
je 0x10044c3d
cmp al, 0xc
jne 0x10044c54
cmp bl, 0x20
jb 0x10044ddd
cmp bl, 0x27
jbe 0x10044c54
cmp bl, 0x3f
jb 0x10044ddd
test dh, dh
je 0x10044c66
cmp dh, 0x40
je 0x10044c66
cmp dh, 0x80
jne case.0x100449e4.16
mov al, cl
sub al, 3
cmp al, 2
ja 0x10044c9b
cmp cl, 5
jne 0x10044c7d
cmp dh, 0x40
je 0x10044c9b
jmp case.0x100449e4.16
cmp cl, 4
jne case.0x100449e4.16
mov al, bl
sub al, 0x20
cmp al, 7
ja case.0x100449e4.16
cmp bl, 0x25
je case.0x100449e4.16
cmp byte [ebp - 0x39], 0
jne case.0x100449e4.16
cmp bh, 4
jne 0x10044cb7
and bl, 7
movzx eax, bl
mov ecx, 3
jmp 0x10044cbf
movzx eax, bh
mov ecx, 2
mov esi, dword [ebp + eax*4 - 0x34]
mov dword [ebp - 0x44], esi
mov dword [ebp - 0x40], esi
movzx eax, dh
mov ebx, dword [ebp - 0x38]
sub eax, 0x40
je 0x10044d02
sub eax, 0x40
jne 0x10044d2b
add ecx, ebx
lea eax, [ecx + 4]
cmp eax, dword [ebp - 0x58]
ja 0x10044854
mov eax, dword [ebp - 0x4c]
mov eax, dword [ecx + eax]
test eax, eax
jns 0x10044cfb
not eax
inc eax
sub esi, eax
mov dword [ebp - 0x40], esi
jmp 0x10044d28
add esi, eax
mov dword [ebp - 0x40], esi
jmp 0x10044d28
lea edx, [ecx + ebx]
cmp edx, dword [ebp - 0x58]
ja 0x10044854
lea eax, [ebp - 0x40]
push eax
mov ecx, dword [ebp - 0x4c]
call fcn.10045ed0
add esp, 4
test al, al
je 0x10044854
mov esi, dword [ebp - 0x40]
mov dword [ebp - 0x44], esi
cmp dword [edi + 0xc], 0
jne 0x100458f0
mov ecx, dword [ebp - 0x54]
call fcn.100952e0
mov ecx, esi
sub ecx, dword [eax + 0x1c]
mov dword [ebp - 0x60], ecx
push ecx
movzx eax, word [edi + 0x34]
push eax
mov ecx, dword [ebp - 0x54]
call fcn.10095320
mov ecx, eax
call fcn.100955a0
mov ecx, eax
call fcn.100957b0
test al, al
je 0x100458f0
push 1
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x80]
push eax
push dword [ebp - 0x60]
mov ecx, dword [ebp - 0x54]
call fcn.100951f0
test al, al
je 0x100458f0
mov ecx, dword [ebp - 0x80]
cmp ecx, dword [ebp - 0x58]
jae 0x100458f0
mov ax, word [ebp - 0x50]
cmp ax, word [edi + 0x34]
jne 0x100458f0
mov dword [edi + 0x10], ecx
mov dword [edi + 0xc], esi
mov al, 7
cmp al, byte [ebp - 0x45]
sbb eax, eax
neg eax
add eax, 4
mov dword [edi + 0x20], eax
mov eax, dword [ebp - 0xb0]
sub eax, 0xfe
je 0x100452d2
dec eax
jne 0x100452d9
mov dword [edi + 0x1c], 1
mov byte [ebp - 0x39], 1
jmp 0x100458f0
cmp byte [ebp - 0x39], 0
jne case.0x100449e4.16
mov al, bl
shr al, 3
and al, 7
movzx eax, al
mov ecx, dword [ebp + eax*4 - 0x34]
and bl, 7
movzx eax, bl
mov esi, dword [ebp + eax*4 - 0x34]
add esi, ecx
mov dword [ebp - 0x44], esi
mov dword [ebp - 0x40], esi
movzx eax, dh
mov ebx, dword [ebp - 0x38]
sub eax, 0x40
je 0x10044e3f
sub eax, 0x40
jne 0x10044e68
lea eax, [ebx + 7]
cmp eax, dword [ebp - 0x58]
ja 0x10044854
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebx + eax + 3]
test eax, eax
jns 0x10044e38
not eax
inc eax
sub esi, eax
mov dword [ebp - 0x40], esi
jmp 0x10044e65
add esi, eax
mov dword [ebp - 0x40], esi
jmp 0x10044e65
lea edx, [ebx + 3]
cmp edx, dword [ebp - 0x58]
ja 0x10044854
lea eax, [ebp - 0x40]
push eax
mov ecx, dword [ebp - 0x4c]
call fcn.10045ed0
add esp, 4
test al, al
je 0x10044854
mov esi, dword [ebp - 0x40]
mov dword [ebp - 0x44], esi
cmp dword [edi + 0xc], 0
jne 0x100458f0
mov ecx, dword [ebp - 0x54]
call fcn.100952e0
mov ecx, esi
sub ecx, dword [eax + 0x1c]
mov dword [ebp - 0x60], ecx
push ecx
movzx eax, word [edi + 0x34]
push eax
mov ecx, dword [ebp - 0x54]
call fcn.10095320
mov ecx, eax
call fcn.100955a0
mov ecx, eax
call fcn.100957b0
test al, al
je 0x100458f0
push 1
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x80]
push eax
push dword [ebp - 0x60]
mov ecx, dword [ebp - 0x54]
call fcn.100951f0
test al, al
je 0x100458f0
mov ecx, dword [ebp - 0x80]
cmp ecx, dword [ebp - 0x58]
jae 0x100458f0
mov ax, word [ebp - 0x50]
cmp ax, word [edi + 0x34]
jne 0x100458f0
mov dword [edi + 0x10], ecx
mov dword [edi + 0xc], esi
mov al, byte [ebp - 0x45]
cmp al, 4
je 0x10044efe
cmp al, 0xc
jne 0x10044db5
mov dword [edi + 0x20], 5
jmp 0x10044db5
mov dword [edi + 0x20], 4
jmp 0x10044db5
lea edx, [ebp - 0x70]
mov ebx, dword [ebp - 0x38]
mov ecx, ebx
call fcn.100444f0
test al, al
jne 0x100457fb
lea edx, [ebx + 1]
cmp edx, dword [ebp - 0x58]
ja 0x10044854
lea eax, [ebp - 0x64]
push eax
mov ecx, dword [ebp - 0x4c]
call fcn.10045ed0
add esp, 4
test al, al
je 0x10044854
mov ebx, dword [ebp - 0x64]
jmp 0x100458f0
lea edx, [ebp - 0x70]
mov ebx, dword [ebp - 0x38]
mov ecx, ebx
call fcn.100444f0
test al, al
jne 0x100457fb
mov eax, dword [ebp - 0x60]
mov ecx, dword [eax]
test ecx, ecx
jns 0x10044fab
not ecx
inc ecx
cmp byte [ebp - 0x39], 0
je 0x10044fa4
lea eax, [ecx + 5]
cmp eax, 0x35fc
jbe 0x10044fa4
cmp byte [ebp - 0x5b], 0
je 0x100457fb
mov eax, dword [ebp - 0xb8]
sub eax, ecx
add eax, ebx
cmp eax, dword [edi + 0x10]
jne 0x100458f0
mov byte [ebp - 0x81], 1
jmp 0x100458f0
sub ebx, ecx
jmp 0x100458f0
add ebx, ecx
jmp 0x100458f0
cmp byte [ebp - 0x5b], 0
jne 0x10045096
cmp ch, 0x81
jne 0x10045096
cmp dh, 0xc0
jne 0x10044fd6
mov al, byte [ebp - 0x46]
test al, al
je 0x10044ffa
jmp 0x10045493
cmp dh, 0xe0
jne 0x10044fe6
cmp byte [ebp - 0x46], 8
je 0x10044ffa
jmp 0x10045493
cmp dh, 0xf0
jne 0x10045096
mov al, byte [ebp - 0x46]
cmp al, 8
jne 0x100450b0
cmp bh, 3
jbe 0x10045008
cmp bh, 5
jb 0x10045096
mov ecx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x4c]
mov al, byte [eax + ecx + 6]
mov edi, dword [ebp - 0x4c]
mov ah, byte [edi + ecx + 7]
cmp al, 0xf
mov edi, dword [ebp - 0x88]
jne 0x10045093
cmp ah, 0x84
je 0x1004502d
cmp ah, 0x85
jne 0x10045093
mov eax, dword [ebp - 0x4c]
mov eax, dword [eax + ecx + 8]
test eax, eax
jns 0x10045093
not eax
inc eax
cmp eax, 0x35fc
ja 0x1004504c
add eax, 0xffffffdf
cmp eax, 0x1de
ja 0x10045093
mov dword [edi], ecx
mov eax, dword [ebp - 0x4c]
mov eax, dword [eax + ecx + 2]
mov dword [edi + 8], eax
movzx eax, dh
sub eax, 0xc0
je 0x1004507e
sub eax, 0x20
je 0x10045075
sub eax, 0x10
jne 0x10045085
mov dword [edi + 4], 2
jmp 0x10045085
mov dword [edi + 4], 1
jmp 0x10045085
mov dword [edi + 4], 0
cmp dword [edi + 4], 3
je 0x100457fb
mov byte [ebp - 0x5b], 1
mov ch, byte [ebp - 0x59]
cmp dh, 0xc0
je 0x1004548a
cmp dh, 0xe0
je 0x1004548a
cmp dh, 0xf0
jne 0x100450b8
mov al, byte [ebp - 0x46]
test al, al
je 0x1004548a
cmp dl, 0x44
je 0x100450d6
cmp dl, 0x84
je 0x100450d6
cmp dl, 0x6c
je 0x100450d6
cmp dl, 0xac
je 0x100450d6
cmp dl, 0x74
je 0x100450d6
cmp dl, 0xb4
jne 0x100450e0
cmp bl, 0x20
jb 0x100450e0
cmp bl, 0x27
jbe 0x10045158
cmp dl, 4
je 0x100450ef
cmp dl, 0x2c
je 0x100450ef
cmp dl, 0x34
jne 0x100450fc
mov al, bl
sub al, 0x20
cmp al, 7
ja 0x100450fc
cmp bl, 0x25
jne 0x10045158
test dh, dh
je 0x10045105
cmp dh, 0x30
jne 0x10045116
mov al, byte [ebp - 0x45]
cmp al, 7
ja 0x10045119
cmp al, 4
je 0x10045119
cmp al, 5
jne 0x10045158
jmp 0x10045119
mov al, byte [ebp - 0x45]
cmp dh, 0x40
je 0x1004512d
cmp dh, 0x70
je 0x1004512d
cmp dh, 0x80
je 0x1004512d
cmp dh, 0xb0
jne 0x10045135
cmp al, 7
ja 0x10045135
cmp al, 4
jne 0x10045158
cmp dh, 0x20
je 0x10045148
cmp dh, 0x60
je 0x10045148
cmp dh, 0xa0
jne 0x100452e2
cmp al, 8
jb 0x100452e2
cmp al, 0xc
je 0x100452e2
cmp byte [ebp - 0x39], 0
jne case.0x100449e4.16
cmp bh, 4
jne 0x10045174
and bl, 7
movzx eax, bl
mov ecx, 3
jmp 0x1004517c
movzx eax, bh
mov ecx, 2
mov esi, dword [ebp + eax*4 - 0x34]
mov dword [ebp - 0x64], ecx
mov dword [ebp - 0x44], esi
mov dword [ebp - 0x40], esi
movzx eax, dl
and eax, 0xc0
mov ebx, dword [ebp - 0x38]
sub eax, 0x40
je 0x100451d4
sub eax, 0x40
jne 0x10045200
lea edx, [ecx + ebx]
lea eax, [edx + 4]
cmp eax, dword [ebp - 0x58]
ja 0x10044854
mov eax, dword [ebp - 0x4c]
mov eax, dword [eax + edx]
test eax, eax
jns 0x100451c7
not eax
inc eax
sub esi, eax
mov dword [ebp - 0x40], esi
add ecx, 4
mov dword [ebp - 0x64], ecx
jmp 0x100451fd
add esi, eax
mov dword [ebp - 0x40], esi
add ecx, 4
mov dword [ebp - 0x64], ecx
jmp 0x100451fd
lea edx, [ecx + ebx]
cmp edx, dword [ebp - 0x58]
ja 0x10044854
lea eax, [ebp - 0x40]
push eax
mov ecx, dword [ebp - 0x4c]
call fcn.10045ed0
add esp, 4
test al, al
je 0x10044854
inc dword [ebp - 0x64]
mov esi, dword [ebp - 0x40]
mov dword [ebp - 0x44], esi
mov ecx, dword [ebp - 0x54]
call fcn.100952e0
mov ecx, esi
sub ecx, dword [eax + 0x1c]
mov dword [ebp - 0x60], ecx
push ecx
movzx eax, word [edi + 0x34]
push eax
mov ecx, dword [ebp - 0x54]
call fcn.10095320
mov ecx, eax
call fcn.100955a0
mov ecx, eax
call fcn.100957b0
test al, al
je 0x100458f0
push 1
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x80]
push eax
push dword [ebp - 0x60]
mov ecx, dword [ebp - 0x54]
call fcn.100951f0
test al, al
je 0x100458f0
mov ecx, dword [ebp - 0x80]
cmp ecx, dword [ebp - 0x58]
jae 0x100458f0
mov ax, word [ebp - 0x50]
cmp ax, word [edi + 0x34]
jne 0x100458f0
mov dword [edi + 0x10], ecx
mov dword [edi + 0xc], esi
movzx eax, byte [ebp - 0x5a]
cmp eax, 0xb0
ja case.0x10045477.5
movzx eax, byte [eax + 0x10045d4c]
jmp dword [eax*4 + 0x10045d3c]
mov dword [edi + 0x20], 0
jmp case.0x10045477.5
mov dword [edi + 0x20], 2
mov eax, dword [ebp - 0xb0]
sub eax, 0x80
je 0x100452c6
dec eax
jne 0x100452d9
mov eax, dword [ebp - 0x64]
add eax, dword [ebp - 0x4c]
mov eax, dword [eax + ebx]
mov dword [edi + 0x14], eax
mov dword [edi + 0x1c], 1
mov byte [ebp - 0x39], 1
jmp 0x100458f0
mov eax, dword [ebp - 0x64]
add eax, dword [ebp - 0x4c]
mov al, byte [eax + ebx]
mov byte [edi + 0x14], al
mov dword [edi + 0x1c], 0
mov byte [ebp - 0x39], 1
jmp 0x100458f0
cmp dl, 4
je 0x10045313
cmp dl, 0x44
je 0x10045313
cmp dl, 0x84
je 0x10045313
cmp dl, 0x2c
je 0x10045313
cmp dl, 0x6c
je 0x10045313
cmp dl, 0xac
je 0x10045313
cmp dl, 0x34
je 0x10045313
cmp dl, 0x74
je 0x10045313
cmp dl, 0xb4
jne case.0x100449e4.16
cmp bl, 0x20
jb 0x10045324
mov al, bl
sub al, 0x28
cmp al, 0x16
ja case.0x100449e4.16
mov al, dl
and al, 0x40
mov cl, dl
and cl, 5
cmp byte [ebp - 0x39], 0
jne case.0x100449e4.16
test al, al
jne 0x10045343
test cl, cl
je case.0x100449e4.16
mov al, bl
shr al, 3
and al, 7
movzx eax, al
mov ecx, dword [ebp + eax*4 - 0x34]
and bl, 7
movzx eax, bl
mov esi, dword [ebp + eax*4 - 0x34]
add esi, ecx
mov dword [ebp - 0x44], esi
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x64], 3
movzx eax, dl
mov dword [ebp - 0xa0], eax
and eax, 0xc0
mov ebx, dword [ebp - 0x38]
sub eax, 0x40
je 0x100453bb
sub eax, 0x40
jne 0x100453eb
lea eax, [ebx + 7]
cmp eax, dword [ebp - 0x58]
ja 0x10044854
mov eax, dword [ebp - 0x4c]
mov eax, dword [eax + ebx + 3]
test eax, eax
jns 0x100453ad
not eax
inc eax
sub esi, eax
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x64], 7
jmp 0x100453e8
add esi, eax
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x64], 7
jmp 0x100453e8
lea edx, [ebx + 3]
cmp edx, dword [ebp - 0x58]
ja 0x10044854
lea eax, [ebp - 0x40]
push eax
mov ecx, dword [ebp - 0x4c]
call fcn.10045ed0
add esp, 4
test al, al
je 0x10044854
mov dword [ebp - 0x64], 4
mov esi, dword [ebp - 0x40]
mov dword [ebp - 0x44], esi
mov ecx, dword [ebp - 0x54]
call fcn.100952e0
mov ecx, esi
sub ecx, dword [eax + 0x1c]
mov dword [ebp - 0x60], ecx
push ecx
movzx eax, word [edi + 0x34]
push eax
mov ecx, dword [ebp - 0x54]
call fcn.10095320
mov ecx, eax
call fcn.100955a0
mov ecx, eax
call fcn.100957b0
test al, al
je 0x100458f0
push 1
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x80]
push eax
push dword [ebp - 0x60]
mov ecx, dword [ebp - 0x54]
call fcn.100951f0
test al, al
je 0x100458f0
mov ecx, dword [ebp - 0x80]
cmp ecx, dword [ebp - 0x58]
jae 0x100458f0
mov ax, word [ebp - 0x50]
cmp ax, word [edi + 0x34]
jne 0x100458f0
mov dword [edi + 0x10], ecx
mov dword [edi + 0xc], esi
mov eax, dword [ebp - 0xa0]
add eax, 0xfffffffc
cmp eax, 0xb0
ja case.0x10045477.5
movzx eax, byte [eax + 0x10045e10]
jmp dword [eax*4 + 0x10045e00]
mov dword [edi + 0x20], 1
jmp case.0x10045477.5
cmp ch, 0x81
jne case.0x100449e4.16
mov eax, dword [ebp - 0xa0]
mov ecx, dword [eax]
movzx eax, dh
sub eax, 0xc0
je 0x100454dd
sub eax, 0x20
je 0x100454bf
sub eax, 0x10
jne case.0x100449e4.16
movzx eax, bh
xor dword [ebp + eax*4 - 0x34], ecx
jmp case.0x100449e4.16
movzx eax, bh
mov ebx, dword [ebp - 0x38]
cmp byte [ebp - 0x46], 0
jne 0x100454d4
and dword [ebp + eax*4 - 0x34], ecx
jmp 0x100458f0
sub dword [ebp + eax*4 - 0x34], ecx
jmp 0x100458f0
movzx eax, bh
mov ebx, dword [ebp - 0x38]
cmp byte [ebp - 0x46], 0
jne 0x100454f2
add dword [ebp + eax*4 - 0x34], ecx
jmp 0x100458f0
or dword [ebp + eax*4 - 0x34], ecx
jmp 0x100458f0
cmp dl, 0x54
je 0x10045505
cmp dl, 0x94
jne 0x10045513
cmp bl, 0x20
jb 0x10045513
cmp bl, 0x27
jbe 0x100455fb
cmp dl, 0x14
jne 0x10045529
mov al, bl
sub al, 0x20
cmp al, 7
ja 0x10045529
cmp bl, 0x25
jne 0x100455fb
cmp dh, 0x10
jne 0x100455da
mov al, byte [ebp - 0x45]
cmp al, 7
ja 0x10045545
cmp al, 4
je 0x10045545
cmp al, 5
jne 0x100455fb
cmp dl, 0x14
je 0x10045558
cmp dl, 0x54
je 0x10045558
cmp dl, 0x94
jne case.0x100449e4.16
cmp bl, 0x20
jb 0x10045569
mov al, bl
sub al, 0x28
cmp al, 0x16
ja case.0x100449e4.16
mov al, dl
and al, 0x40
mov cl, dl
and cl, 5
cmp byte [ebp - 0x39], 0
jne case.0x100449e4.16
test al, al
jne 0x10045588
test cl, cl
je case.0x100449e4.16
mov al, bl
shr al, 3
and al, 7
movzx eax, al
mov ecx, dword [ebp + eax*4 - 0x34]
and bl, 7
movzx eax, bl
mov esi, dword [ebp + eax*4 - 0x34]
add esi, ecx
mov dword [ebp - 0x44], esi
mov dword [ebp - 0x40], esi
movzx eax, dl
and eax, 0xc0
mov ebx, dword [ebp - 0x38]
sub eax, 0x40
je 0x10045718
sub eax, 0x40
jne 0x10045690
lea eax, [ebx + 7]
cmp eax, dword [ebp - 0x58]
ja 0x10044854
mov eax, dword [ebp - 0x4c]
mov eax, dword [eax + ebx + 3]
jmp 0x10045652
cmp dh, 0x50
je 0x100455e8
cmp dh, 0x90
jne 0x10045545
mov al, byte [ebp - 0x45]
cmp al, 7
ja 0x10045545
cmp al, 4
je 0x10045545
cmp byte [ebp - 0x39], 0
jne case.0x100449e4.16
cmp bh, 4
jne 0x10045617
and bl, 7
movzx eax, bl
mov ecx, 3
jmp 0x1004561f
movzx eax, bh
mov ecx, 2
mov esi, dword [ebp + eax*4 - 0x34]
mov dword [ebp - 0x44], esi
mov dword [ebp - 0x40], esi
movzx eax, dl
and eax, 0xc0
mov ebx, dword [ebp - 0x38]
sub eax, 0x40
je 0x10045667
sub eax, 0x40
jne 0x10045690
add ecx, ebx
lea eax, [ecx + 4]
cmp eax, dword [ebp - 0x58]
ja 0x10044854
mov eax, dword [ebp - 0x4c]
mov eax, dword [eax + ecx]
test eax, eax
jns 0x10045660
not eax
inc eax
sub esi, eax
mov dword [ebp - 0x40], esi
jmp 0x1004568d
add esi, eax
mov dword [ebp - 0x40], esi
jmp 0x1004568d
lea edx, [ecx + ebx]
cmp edx, dword [ebp - 0x58]
ja 0x10044854
lea eax, [ebp - 0x40]
push eax
mov ecx, dword [ebp - 0x4c]
call fcn.10045ed0
add esp, 4
test al, al
je 0x10044854
mov esi, dword [ebp - 0x40]
mov dword [ebp - 0x44], esi
mov ecx, dword [ebp - 0x54]
call fcn.100952e0
mov ecx, esi
sub ecx, dword [eax + 0x1c]
mov dword [ebp - 0x60], ecx
push ecx
movzx eax, word [edi + 0x34]
push eax
mov ecx, dword [ebp - 0x54]
call fcn.10095320
mov ecx, eax
call fcn.100955a0
mov ecx, eax
call fcn.100957b0
test al, al
je 0x100458f0
push 1
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x80]
push eax
push dword [ebp - 0x60]
mov ecx, dword [ebp - 0x54]
call fcn.100951f0
test al, al
je 0x100458f0
mov ecx, dword [ebp - 0x80]
cmp ecx, dword [ebp - 0x58]
jae 0x100458f0
mov ax, word [ebp - 0x50]
cmp ax, word [edi + 0x34]
jne 0x100458f0
mov dword [edi + 0x10], ecx
mov dword [edi + 0xc], esi
mov dword [edi + 0x20], 3
mov eax, dword [ebp - 0xb0]
sub eax, 0xf6
jmp 0x10044dc0
lea edx, [ebx + 3]
jmp 0x1004566a
cmp dl, 0x84
je 0x1004572e
cmp dl, 0x85
jne case.0x100449e4.16
mov eax, dword [ebp - 0x4c]
sub eax, dword [ebp - 0xb8]
mov ebx, dword [ebp - 0x38]
mov cl, byte [eax + ebx]
mov ah, byte [eax + ebx + 1]
mov al, ah
and al, 0xf0
mov dl, ah
and dl, 8
and ah, 7
cmp cl, 0x81
jne 0x100458f0
cmp al, 0xc0
jne 0x10045763
test dl, dl
je 0x10045782
jmp 0x100458f0
cmp al, 0xe0
jne 0x10045771
cmp dl, 8
je 0x10045782
jmp 0x100458f0
cmp al, 0xf0
jne 0x100458f0
cmp dl, 8
jne 0x100458f0
cmp ah, 3
jbe 0x10045790
cmp ah, 5
jb 0x100458f0
cmp byte [ebp - 0x39], 0
je 0x100458f0
cmp byte [ebp - 0x5b], 0
je 0x100458f0
lea edx, [ebp - 0x70]
mov ecx, ebx
call fcn.100444f0
test al, al
jne 0x100457fb
mov eax, dword [ebp - 0xa0]
mov ecx, dword [eax]
test ecx, ecx
jns 0x100458f0
not ecx
inc ecx
cmp ecx, 0x35fc
jbe 0x100457ea
mov eax, dword [ebp - 0xb8]
sub eax, ecx
add eax, ebx
cmp eax, dword [edi + 0x10]
jne 0x100457ea
sub ebx, ecx
mov byte [ebp - 0x81], 1
jmp 0x100458f0
cmp ecx, 0x20
jbe 0x100457fb
cmp ecx, 0x200
jb 0x100458f0
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x9c]
test eax, eax
mov esi, dword [sym.imp.MSVCR120.dll_void___cdecl_operator_delete_void__]
je 0x10045833
push eax
call esi
mov dword [ebp - 0x94], 0
mov dword [ebp - 0x98], 0
mov dword [ebp - 0x9c], 0
add esp, 4
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x7c]
test eax, eax
je 0x10045859
push eax
call esi
add esp, 4
mov dword [ebp - 0x74], 0
mov dword [ebp - 0x78], 0
mov dword [ebp - 0x7c], 0
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x70]
test ecx, ecx
je 0x10045882
push ecx
call esi
add esp, 4
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x70], 0
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.100b37df
mov esp, ebp
pop ebp
ret
movzx ecx, cl
mov eax, dword [ebp - 0x60]
mov eax, dword [eax]
jmp 0x100458e9
cmp dl, 0xc0
jb case.0x100449e4.16
shr dl, 3
and dl, 7
movzx eax, dl
lea edx, [ebp - 0x34]
lea edx, [edx + eax*4]
mov esi, dword [edx]
movzx eax, bh
lea ecx, [ebp - 0x34]
lea ecx, [ecx + eax*4]
mov eax, dword [ecx]
mov dword [edx], eax
mov dword [ecx], esi
mov esi, dword [ebp - 0x44]
jmp case.0x100449e4.16
cmp dl, 0xc0
jb case.0x100449e4.16
shr dl, 3
and dl, 7
movzx eax, bh
movzx ecx, dl
mov eax, dword [ebp + eax*4 - 0x34]
mov dword [ebp + ecx*4 - 0x34], eax
mov ebx, dword [ebp - 0x38]
add ebx, dword [ebp - 0xb8]
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x64], ebx
mov eax, dword [ebp - 0xa8]
inc eax
mov dword [ebp - 0xa8], eax
cmp byte [ebp - 0x81], 0
je 0x10044770
mov byte [ebp - 4], 5
push 0x81
call dword [sym.imp.MSVCR120.dll_void____cdecl_operator_new___unsigned_int_]
add esp, 4
mov ebx, eax
mov dword [ebp - 0xc4], ebx
mov dword [ebp - 4], 3
mov ecx, dword [edi + 0x10]
xor edx, edx
add ecx, dword [ebp - 0x4c]
nop
mov al, byte [edx + ecx]
mov byte [edx + ebx], al
inc edx
cmp edx, 0x80
jb 0x10045940
mov byte [ebp - 0x5a], 0
push edi
sub esp, 8
mov ecx, ebx
call fcn.10045f00
add esp, 0xc
test al, al
je 0x10045a9c
movzx eax, word [ebx]
mov ecx, 0xe8
cmp ax, cx
jne 0x10045a9c
lea esi, [ebx + 0x25]
movzx eax, word [esi]
mov dword [ebp - 0x60], eax
lea edi, [ebx + 0x3f]
movzx eax, word [edi]
mov dword [ebp - 0xa0], eax
mov dword [ebp - 0xb4], 0
mov dword [ebp - 0xb0], 0
push esi
push ebx
lea ecx, [ebp - 0xb4]
call fcn.1009e430
mov dword [ebp - 0xbc], 0
mov dword [ebp - 0xb8], 0
lea eax, [esi + 0x16]
push eax
push esi
lea ecx, [ebp - 0xbc]
call fcn.1009e430
mov dword [ebp - 0xac], 0
mov dword [ebp - 0xa8], 0
lea eax, [edi + 0x3e]
push eax
push edi
lea ecx, [ebp - 0xac]
call fcn.1009e430
mov eax, dword [ebp - 0xb4]
cmp eax, 0x50e81f8a
jne 0x10045a45
mov eax, 0x1e8e
cmp word [ebp - 0x60], ax
jne 0x10045a8c
cmp dword [ebp - 0xbc], 0xa3e311eb
jne 0x10045a8c
mov eax, 0x2cb3
cmp word [ebp - 0xa0], ax
mov eax, dword [ebp - 0x88]
jne 0x10045a92
cmp dword [ebp - 0xac], 0xa0b14d2b
jne 0x10045a92
mov dword [eax + 0x38], 0
jmp 0x10045a92
cmp eax, 0x50a66b6d
jne 0x10045a8c
mov eax, 0xef8e
cmp word [ebp - 0x60], ax
jne 0x10045a8c
cmp dword [ebp - 0xbc], 0x67636151
jne 0x10045a8c
mov eax, 0x2cb3
cmp word [ebp - 0xa0], ax
mov eax, dword [ebp - 0x88]
jne 0x10045a92
cmp dword [ebp - 0xac], 0xb48ce628
jne 0x10045a92
mov dword [eax + 0x38], 1
jmp 0x10045a92
mov eax, dword [ebp - 0x88]
cmp dword [eax + 0x38], 2
je 0x10045a9c
mov byte [ebp - 0x5a], 1
push ebx
call dword [sym.imp.MSVCR120.dll_void___cdecl_operator_delete___void__]
add esp, 4
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x9c]
mov esi, dword [sym.imp.MSVCR120.dll_void___cdecl_operator_delete_void__]
test eax, eax
je 0x10045ade
push eax
call esi
add esp, 4
mov dword [ebp - 0x9c], 0
mov dword [ebp - 0x98], 0
mov dword [ebp - 0x94], 0
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x7c]
test eax, eax
je 0x10045b04
push eax
call esi
add esp, 4
mov dword [ebp - 0x7c], 0
mov dword [ebp - 0x78], 0
mov dword [ebp - 0x74], 0
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x70]
test ecx, ecx
je 0x10045b2d
push ecx
call esi
add esp, 4
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x68], 0
mov al, byte [ebp - 0x5a]
jmp 0x10045884
jmp 0x100457fb