Function at 0x487e00
Capabilities:
Parse credit card information

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x3c
mov esi, ecx
mov eax, dword [0x567b10]
xor eax, esp
mov dword [esp + 0x38], eax
mov eax, dword [ecx + 0x134]
test eax, eax
je 0x487ed8
mov ecx, dword [esi + 4]
add ecx, 0xffffffff
mov dword [eax + 0x60], ecx
mov eax, dword [esi]
mov ecx, dword [esi + 4]
lea ecx, [ecx + ecx*8]
mov eax, dword [eax + ecx*4 - 0x20]
mov ecx, dword [esi + 0x134]
mov dword [ecx + 0x5c], eax
mov edi, dword [esi + 0x134]
movzx eax, word [edi + 0xc]
push 1
push 1
push eax
call fcn.00526e30
add esp, 0xc
cmp eax, 2
jne 0x487fe2
mov eax, dword [esi + 0x130]
mov ecx, dword [eax]
movzx edx, word [ecx + 0xc]
cmp dx, 0x62
je 0x487fe2
movzx eax, dx
cmp eax, 0x90
je 0x487fe2
cmp eax, 0x97
je 0x487fe2
mov eax, dword [esi + 0x12c]
cmp byte [eax + 0x11f], 4
jne 0x487fc5
mov eax, dword [esi + 0x13c]
mov eax, dword [eax + 0x70]
mov dword [esp + 8], eax
mov ebp, edx
mov ebx, ecx
cmp dx, 4
jne 0x487ee5
mov eax, ecx
nop dword [eax + eax]
mov ebx, dword [eax + 0xa8]
test ebx, ebx
je 0x487edf
movzx ebp, word [ebx + 0xc]
mov eax, ebx
cmp bp, 4
je 0x487ec0
jmp 0x487ee5
xor edx, edx
jmp 0x488db8
mov bp, 4
mov ebx, eax
cmp dword [esp + 8], 0
je 0x487f4e
xor eax, eax
cmp bp, 1
je 0x487f00
add ebp, 0xfffffff9
cmp bp, 0xc
jb 0x487f00
mov eax, dword [ebx + 8]
cmp eax, dword [esp + 8]
jne 0x487f4e
mov eax, dword [ebx + 0xa8]
test eax, eax
je 0x487f4e
movzx ebx, word [eax + 0xc]
cmp bx, 4
jne 0x487f26
mov eax, dword [eax + 0xa8]
test eax, eax
jne 0x487f10
jmp 0x487f4e
cmp bx, 5
jne 0x487f4e
jmp 0x487fe2
mov ecx, dword [ecx + 0xa8]
test ecx, ecx
je 0x487fc5
movzx edx, word [ecx + 0xc]
cmp dx, 4
je 0x487f40
movzx eax, dx
cmp eax, 0x84
jne 0x487fc5
mov eax, dword [ecx + 0xa8]
test eax, eax
je 0x487fc5
mov ecx, eax
movzx edx, word [eax + 0xc]
cmp dx, 4
jne 0x487f7e
mov eax, dword [ecx + 0xa8]
test eax, eax
jne 0x487f68
cmp dword [esp + 8], 0
je 0x487fc5
xor eax, eax
cmp dx, 1
je 0x487f99
add edx, 0xfffffff9
cmp dx, 0xc
jb 0x487f99
mov eax, dword [ecx + 8]
cmp eax, dword [esp + 8]
jne 0x487fc5
mov eax, dword [ecx + 0xa8]
test eax, eax
je 0x487fc5
movzx ecx, word [eax + 0xc]
cmp cx, 4
jne 0x487fbf
mov eax, dword [eax + 0xa8]
test eax, eax
jne 0x487fa9
jmp 0x487fc5
cmp cx, 5
je 0x487fe2
mov eax, dword [edi + 0xa4]
test eax, eax
je 0x4880d1
movzx eax, word [eax + 0xc]
cmp eax, 0x8a
jne 0x4880d1
movzx eax, word [edi + 0xc]
cmp eax, 0x92
je 0x488263
cmp ax, 0x62
je 0x488263
cmp ax, 0x2f
jne 0x48801f
mov ecx, dword [edi + 0xa4]
test ecx, ecx
je 0x488263
movzx ecx, word [ecx + 0xc]
cmp ecx, 0x8a
jne 0x488263
mov cl, byte [edi + 0x2c]
cmp cl, 0x2e
je 0x4880b2
cmp cl, 0x4e
jne 0x488042
mov eax, dword [esi]
mov ecx, dword [esi + 4]
lea ecx, [ecx + ecx*8]
mov byte [eax + ecx*4 - 0x1c], 0
jmp 0x488270
mov ecx, dword [esi + 0x13c]
mov ecx, dword [ecx + 0x84]
test ecx, ecx
je 0x488070
lea ebp, [eax - 7]
xor edx, edx
mov ebx, 0
cmp bp, 0xc
jb 0x488065
mov ebx, dword [edi + 8]
cmp ax, 1
cmove ebx, edx
cmp ebx, ecx
je 0x4880b2
mov ecx, dword [edi + 0xa4]
test ecx, ecx
je 0x488127
mov dl, byte [ecx + 0x2c]
cmp dl, 0x1a
je 0x48840d
cmp dl, 0xf
jne 0x488127
mov eax, dword [esi]
mov ecx, dword [esi + 4]
lea ecx, [ecx + ecx*8]
mov byte [eax + ecx*4 - 0x1c], 1
mov eax, dword [esi]
mov ecx, dword [esi + 4]
lea ecx, [ecx + ecx*8]
mov byte [eax + ecx*4 - 6], 1
jmp 0x488270
mov eax, dword [esi + 0x12c]
cmp byte [eax + 0x11f], 3
mov eax, dword [esi]
mov ecx, dword [esi + 4]
lea ecx, [ecx + ecx*8]
sete byte [eax + ecx*4 - 0x1c]
jmp 0x488270
mov eax, dword [esi]
mov ecx, dword [esi + 4]
lea ecx, [ecx + ecx*8]
mov byte [eax + ecx*4 - 0x1c], 1
mov eax, dword [esi + 0x130]
mov eax, dword [eax]
test eax, eax
je 0x48810d
nop word [eax + eax]
mov ecx, eax
cmp word [eax + 0xc], 4
jne 0x488103
mov eax, dword [ecx + 0xa8]
test eax, eax
jne 0x4880f0
cmp byte [ecx + 0x2c], 0x52
je 0x488270
mov eax, dword [edi + 0xa4]
test eax, eax
je 0x488270
mov ecx, 0x58000000
mov edx, 0xa80000
jmp 0x488170
cmp ax, 0x3d
jle 0x48823a
cmp ax, 0x3e
je 0x488263
movzx edx, ax
cmp edx, 0x89
je 0x488431
cmp ax, 0x41
je 0x4882f6
jmp 0x48824e
cmp bl, 0x4a
je 0x488270
mov eax, dword [eax + 0xa4]
test eax, eax
je 0x488270
mov edi, dword [eax + 0xa4]
test edi, edi
je 0x488270
movzx edi, word [edi + 0xc]
cmp di, 0x3e
je 0x488270
cmp di, 0x41
je 0x488270
mov edi, dword [eax + 0xc]
or edi, 2
cmp di, 0x16
jne 0x4881b0
mov eax, dword [eax + 0xa0]
test eax, eax
je 0x488270
movzx ebx, byte [eax + 0x2c]
cmp bl, 0x13
je 0x4881db
cmp bl, 0x4b
jne 0x4881e6
mov edi, dword [eax + 0x14]
cmp edi, 2
jb 0x4881e6
mov ebp, dword [eax + 0x10]
movzx edi, word [ebp + edi - 2]
cmp edi, 0x7b24
jne 0x4881e6
jmp 0x488270
cmp word [eax + 0xc], 0x2e
je 0x488270
movzx edi, word [eax + 0xc]
cmp edi, 0x17
ja 0x4881f4
bt edx, edi
jb 0x488270
cmp bl, 6
je 0x488202
cmp bl, 0x52
jne 0x488159
cmp di, 0x1e
ja 0x488162
movzx edi, di
bt ecx, edi
jae 0x488162
mov edi, dword [eax + 0xa4]
test edi, edi
je 0x488162
cmp word [edi + 0xc], 0x3f
je 0x488162
mov byte [eax + 0x2c], 0x40
jmp 0x488162
cmp ax, 0x16
je 0x4882f6
cmp ax, 0x33
je 0x4882f6
cmp ax, 0x28
jne 0x488270
test ecx, ecx
je 0x488270
movzx eax, word [ecx + 0xc]
cmp eax, 0x8a
je 0x488270
mov eax, dword [esi]
mov ecx, dword [esi + 4]
lea ecx, [ecx + ecx*8]
mov byte [eax + ecx*4 - 0x1c], 1
mov edi, dword [esi + 0x134]
cmp byte [edi + 0x2c], 0x5d
jne case.0x489598.0
lea ebp, [edi + 0x2c]
mov eax, dword [esi + 0x12c]
mov al, byte [eax + 0x11f]
cmp al, 4
je 0x48832b
cmp al, 2
jne 0x48848e
cmp word [edi + 0xc], 0x3c
jne 0x48848e
cmp dword [edi + 0x14], 2
jne 0x48848e
mov eax, dword [edi + 0x10]
movzx ecx, word [eax]
cmp ecx, 0x3f3f
je 0x48841f
movzx ecx, word [eax]
cmp ecx, 0x2e3f
je 0x488428
movzx eax, word [eax]
cmp eax, 0x5b3f
jne 0x48848e
mov byte [ebp], 0x59
jmp case.0x489598.0
mov byte [ecx + 0x2c], 0x40
mov ecx, dword [ecx + 0xa4]
test ecx, ecx
je 0x48830a
movzx eax, word [ecx + 0xc]
cmp ax, 0x1b
je 0x4882ec
cmp ax, 0x1e
je 0x4882ec
mov eax, dword [esi + 0x130]
cmp byte [eax + 0x25], 0
je 0x488270
mov eax, dword [esi]
cmp byte [eax + 0x1e], 0
jne 0x488270
jmp 0x488032
cmp word [edi + 0xc], 0x28
jne 0x48848e
mov ebx, edi
mov eax, dword [edi + 0xa4]
test eax, eax
je 0x488449
mov ecx, dword [esi + 0x13c]
push 1
push eax
call fcn.00487990
test al, al
jne 0x48845b
mov ecx, dword [ebx + 0xa4]
mov edx, dword [esi + 0x13c]
mov eax, dword [edx + 0x50]
mov dword [esp + 8], eax
mov eax, dword [edx + 0x6c]
mov dword [esp + 0x18], eax
mov edi, dword [edx + 0x70]
movzx edx, word [ecx + 0xc]
cmp edx, 0x18
ja 0x488390
mov eax, 0x1500000
bt eax, edx
jb 0x48845b
movzx eax, dx
cmp eax, 0x88
je 0x48845b
test edi, edi
je 0x4883c3
xor eax, eax
cmp dx, 1
je 0x4883bb
lea eax, [edx - 7]
cmp ax, 0xc
mov eax, 0
jb 0x4883bb
mov eax, dword [ecx + 8]
cmp eax, edi
je 0x48845b
cmp dword [esp + 8], 0
je 0x4883e4
xor edi, edi
cmp dx, 1
je 0x4883de
lea eax, [edx - 7]
cmp ax, 0xc
jb 0x4883de
mov edi, dword [ecx + 8]
cmp edi, dword [esp + 8]
je 0x48845b
lea edi, [edx - 7]
cmp dword [esp + 0x18], 0
je 0x488443
xor eax, eax
cmp dx, 1
je 0x4883ff
cmp di, 0xc
jb 0x4883ff
mov eax, dword [ecx + 8]
cmp eax, dword [esp + 0x18]
je 0x48845b
cmp di, 0xc
jae 0x488449
jmp 0x48845b
mov eax, dword [esi]
mov ecx, dword [esi + 4]
lea ecx, [ecx + ecx*8]
mov byte [eax + ecx*4 - 5], 1
jmp 0x488270
mov byte [ebp], 0x57
jmp case.0x489598.0
mov byte [ebp], 0x58
jmp case.0x489598.0
mov eax, dword [esi]
mov ecx, dword [esi + 4]
lea ecx, [ecx + ecx*8]
mov byte [eax + ecx*4 - 8], 0
jmp 0x488270
cmp di, 0xb
jbe 0x48845b
mov edi, ebx
mov eax, dword [ebx + 0xa8]
test eax, eax
je 0x48848e
cmp byte [eax + 0x2c], 6
jne 0x488464
mov byte [ebp], 0x24
jmp case.0x489598.0
mov ecx, dword [esi + 0x13c]
mov ecx, dword [ecx + 0x34]
test ecx, ecx
je 0x48848e
mov edi, dword [eax + 0xc]
xor edx, edx
cmp di, 1
je 0x488488
add edi, 0xfffffff9
cmp di, 0xc
jb 0x488488
mov edx, dword [eax + 8]
cmp edx, ecx
mov edi, ebx
je 0x48845b
mov eax, dword [esi + 0x13c]
mov dword [esp + 8], eax
mov edx, dword [eax + 0x90]
movzx ecx, word [edi + 0xc]
test edx, edx
je 0x4884d6
mov dword [esp], esi
mov esi, ebp
mov eax, ecx
lea ebp, [ecx - 7]
xor ecx, ecx
mov ebx, 0
cmp bp, 0xc
jb 0x4884c0
mov ebx, dword [edi + 8]
cmp ax, 1
cmove ebx, ecx
mov ecx, eax
cmp ebx, edx
mov ebp, esi
mov esi, dword [esp]
je 0x488da2
cmp cx, 5
jne 0x4885a8
mov ecx, dword [edi + 0xa4]
test ecx, ecx
je 0x4885a4
cmp byte [ecx + 0x2c], 0x31
je 0x4885a4
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x34]
test edx, edx
je 0x48852e
mov dword [esp + 0x18], eax
mov eax, ebp
mov ebp, edi
mov edi, dword [ecx + 0xc]
xor ebx, ebx
cmp di, 1
je 0x488522
add edi, 0xfffffff9
cmp di, 0xc
jb 0x488522
mov ebx, dword [ecx + 8]
cmp ebx, edx
mov edi, ebp
mov ebp, eax
mov eax, dword [esp + 0x18]
je 0x4885a4
test eax, eax
je 0x488551
mov ebx, edi
mov edi, dword [ecx + 0xc]
xor edx, edx
cmp di, 1
je 0x48854b
add edi, 0xfffffff9
cmp di, 0xc
jb 0x48854b
mov edx, dword [ecx + 8]
cmp edx, eax
mov edi, ebx
je 0x4885a4
mov edx, dword [esi + 0x12c]
cmp byte [edx + 0x11f], 4
jne 0x488590
mov eax, dword [esp + 8]
mov eax, dword [eax + 8]
test eax, eax
je 0x488590
mov ebx, edi
mov edi, dword [ecx + 0xc]
xor edx, edx
cmp di, 1
je 0x488584
add edi, 0xfffffff9
cmp di, 0xc
jb 0x488584
mov edx, dword [ecx + 8]
cmp edx, eax
mov edi, ebx
je 0x4885a4
nop word [eax + eax]
movzx eax, word [ecx + 0xc]
cmp ax, 4
jne 0x4885f4
mov ecx, dword [ecx + 0xa4]
test ecx, ecx
jne 0x488590
movzx ecx, word [edi + 0xc]
cmp cx, 0x4b
jg 0x48861f
cmp cx, 0x24
je 0x4886e8
cmp cx, 0x3e
jne 0x48863b
mov eax, dword [esi]
mov ecx, dword [esi + 4]
lea ecx, [ecx + ecx*8]
mov dword [eax + ecx*4 - 0xc], 0
jmp case.0x489598.0
mov ecx, dword [ecx + 0xa4]
test ecx, ecx
je 0x4885a4
movzx eax, word [ecx + 0xc]
cmp ax, 4
je 0x4885e0
cmp ax, 0x50
je 0x4885e0
cmp ax, 5
jne 0x488d18
mov edx, dword [ecx + 0xa4]
test edx, edx
je 0x488d18
cmp word [edx + 0xc], 0x42
sete bl
jmp 0x488d1a
cmp cx, 0x4c
je 0x48862f
movzx eax, cx
cmp eax, 0xc9
jne 0x48863b
mov byte [esi + 0x138], 1
jmp case.0x489598.0
lea edx, [edi + 0xa4]
mov ebx, dword [edi + 0xa4]
test ebx, ebx
je 0x488757
movzx eax, word [ebx + 0xc]
cmp ax, 0x16
mov dword [esp + 8], ecx
jne 0x48875d
mov eax, edi
cmp cx, 4
jne 0x488681
mov eax, dword [eax + 0xa8]
test eax, eax
je 0x48875d
movzx ecx, word [eax + 0xc]
cmp cx, 4
je 0x488669
cmp cx, 0x24
jne 0x48875d
mov eax, dword [eax + 0xa8]
test eax, eax
je 0x48875d
movzx ecx, word [eax + 0xc]
cmp cx, 4
je 0x48868b
cmp cx, 5
jne 0x48875d
mov eax, dword [eax + 0xa8]
test eax, eax
je 0x48875d
movzx ecx, word [eax + 0xc]
cmp cx, 4
je 0x4886ad
cmp cx, 0x2e
jne 0x48875d
mov dword [esp + 0x10], edx
mov edx, dword [edi + 0xa8]
xor ecx, ecx
mov dword [esp + 0xc], edx
mov dword [esp + 4], ebp
jmp 0x488ca1
mov eax, dword [esi + 0x12c]
cmp byte [eax + 0x11f], 3
jne 0x488700
mov byte [ebp], 0x2e
jmp case.0x489598.0
cmp byte [esi + 0x138], 0
je 0x48872c
mov eax, dword [esi + 0x130]
cmp byte [eax + 0x25], 0
je 0x48872c
cmp dword [edi + 0x60], 0
jne 0x48872c
mov eax, dword [edi + 0xa4]
movzx eax, word [eax + 0xc]
cmp eax, 0x8a
jne 0x48874e
lea edx, [edi + 0xa4]
mov ebx, dword [edi + 0xa4]
test ebx, ebx
je case.0x48885d.1
movzx eax, word [ebx + 0xc]
cmp ax, 0x18
jne 0x488653
mov byte [ebp], 0x4e
jmp case.0x489598.0
mov dword [esp + 8], ecx
xor ebx, ebx
mov eax, dword [esp + 8]
add eax, 0xffffffe5
cmp ax, 0x1c
ja 0x48884d
movzx eax, ax
mov ecx, 0xb
bt ecx, eax
jb 0x4887ce
mov ecx, 0x10000120
bt ecx, eax
jae 0x48884d
nop dword [eax]
test ebx, ebx
je case.0x4889c8.0
movzx ecx, word [ebx + 0xc]
cmp cx, 4
jne 0x4889a5
mov ebx, dword [ebx + 0xa4]
test ebx, ebx
jne 0x488794
mov byte [ebp], 0x52
cmp word [esp + 8], 0x37
jne case.0x489598.0
mov eax, dword [esi]
mov ecx, dword [esi + 4]
lea ecx, [ecx + ecx*8]
mov byte [eax + ecx*4 - 4], 1
jmp case.0x489598.0
mov eax, dword [esi]
mov ecx, dword [esi + 4]
lea ecx, [ecx + ecx*8]
lea edx, [eax + ecx*4]
cmp byte [eax + ecx*4 - 8], 0
mov dword [esp + 0x10], edx
je 0x4887f1
cmp byte [edx - 0x1c], 0
setne dl
mov dword [esp + 0x18], edx
jmp 0x4887f9
mov dword [esp + 0x18], 0
mov edx, dword [esi + 0x12c]
mov dl, byte [edx + 0x11f]
cmp dl, 4
je 0x48881d
mov dh, byte [eax + ecx*4 - 7]
cmp dl, 2
mov ecx, dword [esp + 8]
jne 0x488827
cmp cx, 0x1c
jne 0x488827
mov cl, 6
mov byte [ebp], cl
jmp case.0x489598.0
test ebx, ebx
je 0x488843
movzx eax, word [ebx + 0xc]
cmp ax, 4
jne 0x4889cf
mov ebx, dword [ebx + 0xa4]
test ebx, ebx
jne 0x48882b
mov cl, 0x52
mov byte [ebp], cl
jmp case.0x489598.0
mov ecx, dword [esp + 8]
lea eax, [ecx - 0x21]
cmp ax, 0x1b
ja case.0x48885d.1
movzx eax, ax
jmp dword [eax*4 + 0x558780]
mov al, 0x52
test ebx, ebx
je 0x488ddd
movzx ecx, word [ebx + 0xc]
cmp cx, 4
jne 0x488cec
mov ebx, dword [ebx + 0xa4]
test ebx, ebx
jne 0x48886e
jmp 0x488ddd
movzx eax, cx
push 1
push 1
push eax
mov ebx, edx
call fcn.00526e30
mov ecx, ebx
add esp, 0xc
cmp eax, 2
jl 0x4888d3
mov eax, dword [ecx]
test eax, eax
je 0x4888b1
cmp word [eax + 0xc], 0x13
je 0x4888d3
mov ax, 0x33
cmp word [edi + 0xc], 0x33
je 0x488b0e
mov eax, dword [esi + 0x12c]
cmp byte [eax + 0x11f], 8
jne 0x488da2
movzx eax, word [edi + 0xc]
cmp ax, 0x18
jg 0x488a31
cmp ax, 4
je 0x488ac5
cmp ax, 0x16
jne 0x488b0e
mov dword [esp + 8], edi
mov dword [esp + 4], ebp
mov eax, dword [esi + 0x12c]
mov al, byte [eax + 0x11f]
mov byte [esp + 0x18], al
cmp al, 5
ja case.0x489500.1
movzx eax, byte [esp + 0x18]
mov ecx, 0x2e
bt ecx, eax
jae case.0x489500.1
mov eax, dword [esp + 8]
mov edi, dword [eax + 0xa0]
mov ebp, dword [eax + 0xa4]
cmp ebp, edi
je case.0x489500.1
test edi, edi
je case.0x489500.1
mov eax, dword [esp + 8]
mov edx, dword [eax + 0xa8]
test edx, edx
je case.0x489500.1
mov edi, dword [edi + 0xa4]
test edi, edi
je 0x488f70
movzx eax, word [edi + 0xc]
cmp ax, 4
je 0x48895a
cmp ax, 0x16
jne 0x488f74
mov eax, dword [edi + 0xa0]
test eax, eax
je case.0x489500.1
mov edi, dword [eax + 0xa4]
test edi, edi
je case.0x489500.1
mov dword [esp + 0x10], edx
movzx eax, word [edi + 0xc]
jmp 0x488f78
mov al, byte [ebx + 0x2c]
cmp al, 9
je case.0x4889c8.0
cmp al, 0x52
je case.0x4889c8.0
lea edx, [ecx - 0x13]
cmp dx, 0x4f
ja case.default.0x4889c8
movzx ecx, dx
jmp dword [ecx*4 + 0x5583dc]
mov dword [esp + 8], ecx
mov edi, dword [edi + 0xa8]
test edi, edi
je 0x488abb
movzx ecx, word [edi + 0xc]
cmp cx, 4
je 0x4889d3
mov byte [esp + 0xc], dh
movsx edx, cx
cmp edx, 0x9f
jle 0x488a7f
lea edx, [ecx - 0x146]
cmp dx, 5
ja 0x488a14
cmp dx, 2
jne 0x488abb
movzx edx, cx
cmp edx, 0xa0
je 0x488abb
cmp edx, 0xb7
je 0x488abb
jmp 0x488aaf
cmp ax, 0x48
je 0x488ae8
cmp ax, 0x19
jne 0x488b0e
mov edi, dword [edi + 0xa4]
test edi, edi
je 0x488d63
movzx eax, word [edi + 0xc]
cmp ax, 4
je 0x488a45
cmp ax, 0x41
je 0x488a6d
cmp ax, 0x17
jne 0x488d63
mov byte [ebp], 0x12
jmp case.0x489598.0
mov byte [ebp], 0x52
jmp case.0x489598.0
lea edx, [ecx - 0x50]
cmp dx, 0x1d
ja 0x488aa3
movzx edx, dx
mov dword [esp], esi
mov esi, edi
mov edi, ebp
mov ebp, 0x20020001
bt ebp, edx
mov ebp, edi
mov edi, esi
mov esi, dword [esp]
jb 0x488abb
cmp cx, 0x24
je 0x488abb
cmp cx, 0x3f
je 0x488abb
mov dl, byte [edi + 0x2c]
cmp dl, 3
jne 0x488f2d
mov cl, 0x40
mov byte [ebp], cl
jmp case.0x489598.0
mov eax, dword [edi + 0x14]
cmp eax, 2
jb 0x488adf
mov ecx, dword [edi + 0x10]
movzx edx, word [ecx]
cmp edx, 0x2a2f
je 0x488e62
mov byte [ebp], 0x32
jmp case.0x489598.0
mov ecx, dword [edi + 0xa8]
mov ax, 0x48
test ecx, ecx
je 0x488b0e
mov edx, dword [esi + 0x12c]
mov dl, byte [edx + 0x11f]
add dl, 0xfd
cmp dl, 2
jae 0x488e3a
mov ecx, edi
lea edi, [eax - 7]
mov edx, dword [ecx + 8]
mov ecx, dword [ecx + 0xa4]
test ecx, ecx
je 0x488b59
test edx, edx
je 0x488b59
cmp ax, 1
je 0x488b59
cmp di, 0xc
jb 0x488b59
cmp byte [ecx + 0x2c], 9
jne 0x488b59
mov ebx, dword [ecx + 0xa0]
test ebx, ebx
je 0x488b59
mov ebx, dword [ebx + 0xa4]
test ebx, ebx
je 0x488b59
cmp byte [ebx + 0x2c], 0x3b
jne 0x488b59
mov byte [ebp], 0x44
jmp case.0x489598.0
movsx ebx, ax
cmp ebx, 0x9f
jg 0x488b72
cmp ax, 5
je 0x488b85
cmp ax, 0x50
je 0x488b85
jmp 0x488bb4
movzx ebx, ax
cmp ebx, 0xa5
je 0x488b85
cmp ebx, 0xa0
jne 0x488bb4
test ecx, ecx
je 0x488bb4
movzx ebx, word [ecx + 0xc]
cmp bx, 0x3f
je 0x488bb4
cmp bx, 0x48
je 0x488bb4
mov ebx, dword [esi + 0x130]
cmp byte [ebx + 0x26], 0
je 0x488bb4
cmp dword [esi + 4], 1
jne 0x488bb4
mov byte [ebp], 0x4d
jmp case.0x489598.0
test ecx, ecx
je case.0x489598.0
mov ebx, dword [esi + 0x12c]
mov bl, byte [ebx + 0x11f]
add bl, 0xfd
cmp bl, 1
ja case.0x489598.0
movzx ebx, word [ecx + 0xc]
cmp bx, 0x19
je 0x488dd2
cmp bx, 0x48
jne case.0x489598.0
mov ebx, dword [esi + 0x13c]
mov ebx, dword [ebx + 0x94]
test ebx, ebx
je 0x488c17
cmp di, 0xc
mov edi, 0
cmovb edx, edi
cmp ax, 1
cmove edx, edi
cmp edx, ebx
je case.0x489598.0
mov ecx, dword [ecx + 0xa4]
test ecx, ecx
je 0x488c32
cmp word [ecx + 0xc], 4
je 0x488c17
cmp byte [ecx + 0x2c], 0x31
jne 0x489092
mov byte [ebp], 0x31
jmp case.0x489598.0
mov eax, dword [esi + 0x12c]
cmp byte [eax + 0x11f], 4
jne 0x488c69
mov eax, dword [esi + 0x130]
cmp byte [eax + 0x25], 0
je 0x488c69
mov eax, dword [esi]
mov ecx, dword [esi + 4]
lea ecx, [ecx + ecx*8]
cmp byte [eax + ecx*4 - 0x1c], 0
je 0x488e7d
mov byte [ebp], 0xa
jmp case.0x489598.0
xor edx, edx
movzx ebp, word [0xc]
xor eax, eax
cmp bp, 0x2e
sete al
mov ecx, dword [esp + 0x18]
add ecx, eax
xor eax, eax
cmp bp, 0x33
sete al
sub ecx, eax
test ecx, ecx
mov ebp, dword [esp + 4]
jle 0x488e86
mov edx, dword [edx + 0xa8]
test edx, edx
je 0x4890b1
mov dword [esp + 0x18], ecx
movzx ebp, word [edx + 0xc]
cmp bp, 0x15
jne 0x488c7b
mov ecx, 1
mov edx, dword [edx + 0xa8]
test edx, edx
je 0x488c72
movzx ebp, word [edx + 0xc]
xor eax, eax
cmp bp, 0x15
sete al
add ecx, eax
xor eax, eax
cmp bp, 0x16
sete al
sub ecx, eax
test ecx, ecx
jg 0x488cc2
jmp 0x488c7b
cmp byte [ebx + 0x2c], 9
je 0x488ddd
cmp cx, 0x16
ja 0x488ddd
movzx ecx, cx
mov edx, 0x500020
bt edx, ecx
jae 0x488ddd
mov al, 0x4f
jmp 0x488ddd
xor ebx, ebx
mov dl, byte [ecx + 0x2c]
cmp dl, 0x49
jne 0x488de2
mov eax, dword [ecx + 0xa0]
test eax, eax
je 0x4885a4
mov eax, dword [eax + 0xa4]
test eax, eax
je 0x4885a4
movzx eax, word [eax + 0xc]
cmp ax, 0x19
je 0x4885a4
movzx eax, ax
cmp eax, 0x90
je 0x4885a4
jmp 0x488e0f
mov eax, dword [esi + 0x12c]
cmp byte [eax + 0x11f], 3
jne case.0x489598.0
mov eax, dword [ecx]
test eax, eax
je case.0x489598.0
mov al, byte [eax + 0x2c]
jmp 0x488dd5
add ecx, 0xffffff6e
cmp cx, 0x16
ja case.0x4889c8.1
movzx ecx, cx
mov edx, 0x600001
bt edx, ecx
jb case.0x4889c8.0
cmp al, 6
je case.0x4889c8.0
mov byte [ebp], 6
mov eax, dword [esi + 0x134]
mov edx, dword [eax + 0xa8]
mov dword [esi + 0x134], edx
mov ecx, esi
call fcn.00487d60
mov ecx, dword [esp + 0x38]
xor ecx, esp
call fcn.00533ace
add esp, 0x3c
pop esi
pop edi
pop ebx
pop ebp
ret
mov al, byte [ecx + 0x2c]
cmp al, 0x31
je 0x488ddd
cmp al, 0x1f
jne case.0x489598.0
mov byte [ebp], al
jmp case.0x489598.0
cmp ax, 0x16
jne 0x488ded
cmp dl, 0x50
je 0x488e0f
test bl, bl
jne 0x488dfd
cmp ax, 5
je 0x488e0f
cmp ax, 0x4c
je 0x488e0f
cmp dl, 0x40
je 0x488e0f
call fcn.004abd90
test al, al
je 0x4885a4
mov eax, dword [esi + 0x130]
cmp byte [eax + 0x26], 0
je 0x488e25
cmp dword [edi + 0x60], 0
je 0x4885a4
mov eax, dword [esi]
mov ecx, dword [esi + 4]
lea ecx, [ecx + ecx*8]
mov dword [eax + ecx*4 - 0xc], edi
mov byte [edi + 0x2c], 0x45
jmp case.0x489598.0
call fcn.004b8de0
lea ecx, [eax - 6]
cmp ecx, 2
jb 0x488e59
cmp eax, 0x13
je 0x4890a4
cmp eax, 0xa
jne case.0x489598.0
mov byte [ebp], 0x38
jmp case.0x489598.0
movzx eax, word [ecx + eax - 2]
cmp eax, 0x2f2a
je 0x48909b
mov word [edi + 0xc], 0
jmp case.0x489598.0
mov byte [ebp], 0x2a
jmp case.0x489598.0
mov eax, dword [edx + 0xa8]
test eax, eax
je 0x4890b1
cmp word [eax + 0xc], 0x3e
jne 0x4890ad
mov eax, dword [ebx + 0xa0]
test eax, eax
je 0x4890ad
mov eax, dword [eax + 0xa4]
test eax, eax
je 0x4890ad
mov ecx, dword [eax + 0xa4]
test ecx, ecx
je 0x4890ad
movzx edx, word [ecx + 0xc]
cmp edx, 0x83
jne 0x488ee3
mov ecx, dword [ecx + 0xa4]
test ecx, ecx
je 0x4890ad
cmp byte [ecx + 0x2c], 0x49
jne 0x4890ad
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0x14]
cmp dword [eax + 0x14], ecx
jne 0x4890ad
test ecx, ecx
mov ebp, dword [esp + 4]
je 0x48874e
push ecx
mov ecx, dword [esp + 0x10]
push dword [ecx + 0x10]
push dword [eax + 0x10]
call sub.VCRUNTIME140.dll_memcmp
mov edx, dword [esp + 0x1c]
add esp, 0xc
test eax, eax
jne 0x48875d
jmp 0x48874e
mov byte [esp + 0x1c], dl
mov dword [esp], esi
mov dword [esp + 4], ebp
mov dword [esp + 0x14], ecx
cmp cx, 0x17
jne 0x488f55
mov edx, edi
mov edx, dword [edx + 0xa8]
test edx, edx
je 0x488f5f
cmp word [edx + 0xc], 4
je 0x488f44
cmp ax, 0x47
jne 0x4890ba
mov cl, 0x40
mov ebp, dword [esp + 4]
mov esi, dword [esp]
mov byte [ebp], cl
jmp case.0x489598.0
xor edi, edi
jmp 0x488fea
mov dword [esp + 0x10], edx
cmp ax, 1
je 0x488fb5
lea ecx, [eax - 7]
cmp cx, 0xc
jb 0x488fb5
mov edx, dword [edi + 8]
test edx, edx
je 0x488fb5
mov dword [esp + 0x14], ebp
mov ebp, dword [esi + 0x13c]
mov ecx, dword [ebp + 8]
mov ebp, dword [esp + 0x14]
mov dword [esp + 0xc], ecx
test ecx, ecx
je 0x489214
cmp edx, dword [esp + 0xc]
jne 0x489214
cmp ax, 0x14
mov edx, dword [esp + 0x10]
je case.0x489500.1
cmp ax, 0x48
je case.0x489500.1
cmp ax, 0x1a
je case.0x489500.1
mov al, byte [edi + 0x2c]
cmp al, 0x3e
je case.0x489500.1
cmp al, 0x49
je case.0x489500.1
movzx eax, word [edx + 0xc]
mov dword [esp + 0xc], eax
cmp ax, 0x3c
je case.0x489500.1
mov ecx, dword [esi + 0x13c]
mov eax, dword [ecx + 8]
test eax, eax
mov dword [esp + 0x14], ebp
je 0x489042
mov dword [esp + 0x1c], 0
cmp word [esp + 0xc], 1
je 0x489031
mov ebp, dword [esp + 0xc]
add ebp, 0xfffffff9
cmp bp, 0xc
jb 0x489031
mov ebp, dword [edx + 8]
mov dword [esp + 0x1c], ebp
cmp byte [esp + 0x18], 2
jne 0x489042
cmp dword [esp + 0x1c], eax
je case.0x489500.1
mov dword [esp + 0x10], edx
mov dword [esp], esi
mov eax, dword [ecx]
mov dword [esp + 0x1c], eax
mov ecx, dword [ecx + 4]
movsx eax, word [esp + 0xc]
cmp eax, 0x91
jg 0x4890ef
cmp word [esp + 0xc], 0x24
mov esi, dword [esp]
mov edx, dword [esp + 0x10]
je case.0x489500.1
cmp word [esp + 0xc], 0x50
je case.0x489500.1
cmp word [esp + 0xc], 0x6d
je case.0x489500.1
jmp 0x489116
mov byte [ebp], 0x1f
jmp case.0x489598.0
mov byte [ebp], 8
jmp case.0x489598.0
mov byte [ebp], 0x3c
jmp case.0x489598.0
mov ebp, dword [esp + 4]
mov edx, dword [esp + 0x10]
jmp 0x48875d
cmp ax, 0x16
jne 0x489240
mov bl, byte [ebx + 0x2c]
cmp bl, 0x50
je 0x488f5f
cmp bl, 0xa
ja 0x4892a5
movzx edx, bl
mov ebp, 0x640
bt ebp, edx
jb 0x489275
jmp 0x4892a5
mov eax, dword [esp + 0xc]
add eax, 0xffffff6e
cmp ax, 0x13
mov esi, dword [esp]
mov edx, dword [esp + 0x10]
ja 0x489116
movzx eax, ax
mov ebp, 0x84001
bt ebp, eax
jb case.0x489500.1
test ecx, ecx
je 0x489147
xor esi, esi
cmp word [esp + 0xc], 1
je 0x489138
mov eax, dword [esp + 0xc]
add eax, 0xfffffff9
cmp ax, 0xc
jb 0x489138
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 8]
cmp esi, ecx
mov esi, dword [esp]
mov edx, dword [esp + 0x10]
je case.0x489500.1
cmp dword [esp + 0x1c], 0
je 0x48917d
xor ecx, ecx
cmp word [esp + 0xc], 1
je 0x48916c
mov eax, dword [esp + 0xc]
add eax, 0xfffffff9
cmp ax, 0xc
jb 0x48916c
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 8]
cmp ecx, dword [esp + 0x1c]
mov esi, dword [esp]
mov edx, dword [esp + 0x10]
je case.0x489500.1
mov ecx, esi
call fcn.0048b510
test al, al
jne case.0x489500.1
cmp byte [esp + 0x18], 3
jne 0x48919f
cmp word [esp + 0xc], 0x15
je 0x489540
cmp word [esp + 0xc], 0xd
jne 0x48932a
cmp dword [esp + 0x14], 0
je 0x4891d4
mov eax, dword [esp + 0x14]
mov al, byte [eax + 0x2c]
xor ecx, ecx
cmp al, 0x49
je 0x4891d6
cmp al, 0x50
je 0x4891d6
mov ecx, dword [esp + 0x14]
call fcn.004abd90
test al, al
je 0x489385
xor ecx, ecx
mov eax, dword [esp + 8]
mov edx, dword [eax + 0xa8]
movzx eax, word [edx + 0xc]
test cl, cl
jne 0x48945b
mov ecx, eax
and ecx, 0xfffffffe
cmp cx, 0x3e
je 0x48945b
cmp ax, 0x33
je 0x48945b
cmp ax, 0x17
je 0x48945b
jmp 0x489540
cmp ax, 0x4e
mov edx, dword [esp + 0x10]
je 0x488fcd
cmp ax, 0x62
je 0x488fcd
movzx ecx, ax
cmp ecx, 0x81
je 0x488fcd
jmp case.0x489500.1
lea edx, [eax - 0x13]
cmp dx, 0x52
ja case.default.0x489255
movzx edx, dx
mov ebp, dword [esp + 4]
mov esi, dword [esp]
mov cl, 0x52
jmp dword [edx*4 + 0x55851c]
lea edx, [eax - 0x92]
cmp dx, 0x16
ja 0x489281
movzx edx, dx
mov ebp, 0x700001
bt ebp, edx
jae 0x489281
mov ebp, dword [esp + 4]
mov esi, dword [esp]
jmp 0x488843
movzx edx, ax
cmp edx, 0x81
mov ebp, dword [esp + 4]
mov esi, dword [esp]
mov cl, 0x52
je case.0x489446.0
mov bl, byte [ebx + 0x2c]
cmp bl, 0xa
jbe 0x4890d9
cmp bl, 0x52
mov ebp, dword [esp + 4]
mov esi, dword [esp]
mov cl, 0x52
je case.0x489446.0
cmp word [esp + 0x14], 0x13
jne 0x4892cc
cmp byte [esp + 0x1c], 0x30
jne 0x488f5f
jmp 0x489302
movzx edx, word [esp + 0x14]
cmp edx, 0x8a
sete dl
mov ebx, dword [esp + 0x18]
mov dh, bl
not dh
test dh, dl
jne 0x488f5f
cmp word [esp + 0x14], 0x3e
je 0x488f5f
cmp word [esp + 0x14], 0x41
je 0x488f5f
cmp ax, 0x16
je 0x48937e
lea edx, [eax - 7]
cmp dx, 0xc
jb 0x48937e
movsx edx, ax
cmp edx, 0x84
jg 0x48935c
cmp ax, 0x14
je 0x48937e
cmp ax, 0x18
je 0x48937e
jmp 0x48936d
mov eax, dword [esp + 0xc]
add eax, 0xfffffff9
cmp ax, 0xc
jb 0x489540
cmp word [esp + 0xc], 0x65
je 0x489540
movzx eax, word [esp + 0xc]
cmp eax, 0x9b
je 0x489540
jmp 0x4891ab
movzx eax, ax
cmp eax, 0x85
je 0x48937e
cmp eax, 0x93
je 0x48937e
mov eax, dword [esp + 0x14]
add eax, 0xfffffff9
cmp ax, 0xc
jae 0x489429
mov cl, 6
jmp 0x488f61
mov ecx, dword [ebx]
test ecx, ecx
je 0x48944d
mov ebp, 0x20020001
jmp 0x4893b9
mov esi, dword [ecx + 0xc]
lea eax, [esi - 0x146]
cmp ax, 5
ja 0x4893fe
cmp ax, 2
je 0x4893fe
mov ecx, dword [ecx + 0xa4]
test ecx, ecx
je 0x48944d
movzx edx, byte [ecx + 0x2c]
cmp dl, 5
je 0x4893e8
cmp dl, 4
jne 0x489396
mov eax, dword [ecx + 0xa0]
test eax, eax
je 0x48941e
mov ecx, dword [eax + 0xa4]
test ecx, ecx
je 0x48941e
movzx eax, word [ecx + 0xc]
cmp eax, 0xb7
je 0x4893ab
jmp 0x48941e
mov eax, dword [ecx + 0xa0]
test eax, eax
je 0x48941e
mov ecx, dword [eax + 0xa4]
test ecx, ecx
jne 0x4893b1
jmp 0x48941e
lea eax, [esi - 0x50]
cmp ax, 0x1d
ja 0x48940f
movzx eax, ax
bt ebp, eax
jb 0x4893ab
movzx eax, si
cmp eax, 0xb7
je 0x4893ab
cmp dl, 3
je 0x4893ab
cmp dl, 0x40
setne cl
jmp 0x4891d6
mov eax, dword [esp + 0x14]
add eax, 0xffffffe0
cmp ax, 0x45
ja case.default.0x489446
movzx eax, ax
mov cl, 6
mov ebp, dword [esp + 4]
mov esi, dword [esp]
jmp dword [eax*4 + 0x558668]
mov eax, dword [esp + 8]
mov edx, dword [eax + 0xa8]
movzx eax, word [edx + 0xc]
test edi, edi
mov esi, dword [esp]
je case.0x489500.1
mov ecx, dword [esp + 8]
mov ecx, dword [ecx + 0xa0]
mov edi, ecx
mov esi, dword [esp]
mov edi, dword [edi + 0xa8]
cmp edi, dword [esp + 8]
je 0x48948c
cmp byte [edi + 0x2c], 6
jne 0x489475
jmp case.0x489500.1
cmp ax, 5
je 0x489540
movzx edi, ax
cmp edi, 0x91
je 0x489540
cmp ax, 0x15
jne 0x4894e0
mov esi, dword [ebx]
test esi, esi
je 0x489540
cmp word [esi + 0xc], 5
jne 0x489540
mov esi, dword [esi + 0xa4]
test esi, esi
je 0x489540
movzx esi, word [esi + 0xc]
cmp si, 0x1e
je 0x4894e0
cmp si, 0x46
je 0x4894e0
cmp si, 0x24
jne 0x489540
mov edx, dword [edx + 0xa8]
test edx, edx
mov esi, dword [esp]
je case.0x489500.1
add eax, 0xffffffe5
cmp ax, 0x4a
ja case.default.0x489500
movzx eax, ax
mov esi, dword [esp]
jmp dword [eax*4 + 0x5587f0]
mov eax, dword [edx + 0xc]
or eax, 2
cmp ax, 7
jne case.0x489500.1
mov eax, dword [ebx]
cmp eax, ecx
je 0x489540
mov esi, dword [esp]
jmp 0x489528
mov eax, dword [eax + 0xa4]
cmp eax, ecx
je 0x489540
movzx edx, word [eax + 0xc]
cmp dx, 5
je 0x48951e
cmp dx, 0x50
je 0x48951e
cmp dx, 0x47
je 0x48951e
jmp case.0x489500.1
mov eax, dword [esp + 4]
mov byte [eax], 9
mov esi, dword [esp]
mov edi, dword [esp + 8]
cmp dword [edi + 0xa0], 0
je case.0x489598.0
mov eax, dword [edi + 0xa8]
test eax, eax
je case.0x489598.0
movzx eax, word [eax + 0xc]
push 1
push 1
push eax
call fcn.00526e30
add esp, 0xc
cmp eax, 1
jg case.0x489598.0
mov eax, dword [edi + 0xa8]
mov eax, dword [eax + 0xc]
add eax, 0xffffffe9
cmp ax, 0x30
ja case.0x489598.1
movzx eax, ax
jmp dword [eax*4 + 0x55891c]
mov eax, dword [edi + 0xa0]
mov ecx, dword [eax + 0xa8]
test ecx, ecx
je case.0x489598.0
cmp word [ecx + 0xc], 0x37
je case.0x489598.0
mov ebp, dword [eax + 0xa4]
test ebp, ebp
je case.0x489598.0
cmp word [ebp + 0xc], 5
jne case.0x489598.0
cmp byte [ebp + 0x2c], 0x51
je case.0x489598.0
mov dword [esp], esi
lea ecx, [ebp + 0x10]
lea edi, [esp + 0x20]
push edi
call fcn.00422d40
mov ebx, dword [esp + 0x34]
cmp ebx, 0xf
mov eax, dword [esp + 0x20]
mov esi, eax
cmova edi, eax
mov eax, dword [esp + 0x30]
cmp dword [ebp + 0x14], eax
jne 0x48961f
test eax, eax
je 0x489629
push eax
push edi
push dword [ebp + 0x10]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x489629
mov dword [esp + 8], 0
jmp 0x489643
mov eax, dword [ebp + 0xa4]
test eax, eax
je 0x48963d
mov al, byte [eax + 0x28]
and al, 0x40
shr al, 6
jmp 0x48963f
mov al, 1
mov dword [esp + 8], eax
cmp ebx, 0x10
jb 0x489675
lea ecx, [ebx + 1]
cmp ecx, 0x1000
jb 0x48966b
mov eax, dword [esi - 4]
add esi, 0xfffffffc
sub esi, eax
cmp esi, 0x20
jae 0x489745
add ebx, 0x24
mov ecx, ebx
mov esi, eax
push ecx
push esi
call fcn.00533ac0
add esp, 8
cmp byte [esp + 8], 0
mov esi, dword [esp]
je case.0x489598.0
mov eax, dword [esp + 4]
mov byte [eax], 0x15
jmp case.0x489598.0
mov eax, dword [esp + 0x14]
add eax, 0xffffff7b
cmp ax, 0x16
mov ebp, dword [esp + 4]
mov esi, dword [esp]
ja case.0x489446.2
movzx eax, ax
mov edx, 0x404001
bt edx, eax
jb 0x48881d
mov eax, dword [esp + 0x14]
add eax, 0xfffffffb
cmp byte [esp + 0xc], 0
je 0x4896ce
cmp ax, 2
jb 0x48937e
cmp word [esp + 8], 0x1c
jne 0x4896e2
cmp word [esp + 0x14], 0x15
je 0x48937e
cmp ax, 1
ja 0x48970a
mov eax, edi
mov eax, dword [edi + 0xa8]
test eax, eax
je 0x48970a
mov edi, eax
movzx eax, word [eax + 0xc]
cmp ax, 4
je 0x4896e8
cmp ax, 0x24
je 0x48937e
cmp byte [esp + 0x18], 0
mov ebp, dword [esp + 4]
mov esi, dword [esp]
je 0x488abb
mov eax, dword [esp + 0x10]
cmp byte [eax - 4], 0
mov cl, 6
jne 0x488abb
jmp case.0x489446.0
cmp edi, 0x9b
mov esi, dword [esp]
je case.0x489500.0
jmp case.0x489500.1
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3