Function at 0x4127c0
Capabilities:
Parse credit card information

Disassembly:
sub esp, 8
push edi
mov edi, dword [esp + 0x10]
test edi, edi
je 0x413aa7
mov eax, dword [esp + 0x14]
test eax, eax
je 0x413aa7
push ebx
push ebp
push esi
mov dword [esp + 0x1c], eax
cmp word [edi], 0
je 0x41280a
lea esp, [esp]
movzx eax, word [edi]
test ax, ax
je 0x41280a
cmp ax, 0x3c
je 0x412814
movzx eax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4127f8
pop esi
pop ebp
pop ebx
mov eax, edi
pop edi
add esp, 8
ret
movzx eax, word [edi]
test ax, ax
je 0x41280a
cmp ax, 0x3c
jne 0x4127e3
add edi, 2
jmp 0x412830
movzx eax, word [edi]
cmp ax, 0x3f
jne 0x412942
movzx esi, word [edi + 2]
add edi, 2
push esi
call fcn.0047439a
add esp, 4
test eax, eax
jne 0x41286d
cmp si, 0x5f
je 0x41286d
cmp si, 0x3a
je 0x41286d
cmp si, 0x2d
je 0x41286d
cmp si, 0x2e
jne 0x413683
test byte [esp + 0x28], 2
je 0x413683
xor ebp, ebp
cmp word [edi], bp
mov ecx, edi
je 0x41280a
cmp word [edi], 0x3f
je 0x41288f
add edi, 2
cmp word [edi], bp
jne 0x412881
movzx eax, word [edi]
cmp ax, bp
je 0x41280a
cmp ax, 0x3f
jne 0x4128a6
mov word [edi], 0x2f
mov ebx, dword [esp + 0x1c]
cmp ebx, ebp
mov edi, ecx
jne 0x4128bb
xor ebp, ebp
mov dword [esp + 0x1c], ebp
jmp 0x412e49
mov eax, dword [ebx + 0x20]
cmp dword [ebx + 0x1c], eax
jne 0x4128e4
mov esi, dword [esp + 0x24]
add eax, esi
add eax, eax
add eax, eax
push eax
mov eax, dword [ebx + 0x24]
push eax
call fcn.00474a23
add esp, 8
cmp eax, ebp
je 0x4128e4
add dword [ebx + 0x20], esi
mov dword [ebx + 0x24], eax
push 0x30
call fcn.00473471
mov esi, eax
add esp, 4
cmp esi, ebp
je 0x41292c
push 4
mov dword [esi + 0x28], ebp
mov dword [esi + 4], ebp
mov dword [esi + 0xc], 6
mov dword [esi + 0x1c], ebp
mov dword [esi + 0x10], ebp
mov byte [esi + 0x2c], 1
mov byte [esi + 8], 1
call fcn.00473471
xor ecx, ecx
add esp, 4
cmp eax, ebp
setne cl
mov dword [esi + 0x18], eax
mov dword [esi + 0x24], ebp
mov dword [esi + 0x20], ebp
mov dword [esi + 0x14], ecx
mov dword [esi], ebx
mov edx, dword [ebx + 0x1c]
mov eax, dword [ebx + 0x24]
mov ebp, esi
mov dword [eax + edx*4], esi
mov dword [esp + 0x1c], ebp
jmp 0x412e45
cmp ax, 0x21
jne 0x412d70
movzx eax, word [edi + 2]
add edi, 2
cmp ax, 0x2d
jne 0x412acf
mov ebx, dword [esp + 0x28]
add edi, 2
test bl, 8
je 0x412a74
cmp word [edi], ax
jne 0x412a74
mov esi, dword [esp + 0x1c]
xor ebp, ebp
add edi, 2
cmp esi, ebp
jne 0x412987
xor esi, esi
jmp 0x4129f8
mov eax, dword [esi + 0x20]
cmp dword [esi + 0x1c], eax
jne 0x4129b2
mov ebp, dword [esp + 0x24]
mov ecx, dword [esi + 0x24]
add eax, ebp
add eax, eax
add eax, eax
push eax
push ecx
call fcn.00474a23
add esp, 8
test eax, eax
je 0x4129b0
add dword [esi + 0x20], ebp
mov dword [esi + 0x24], eax
xor ebp, ebp
push 0x30
call fcn.00473471
add esp, 4
cmp eax, ebp
je 0x4129e7
mov dword [eax + 0x28], ebp
mov dword [eax + 4], ebp
mov dword [eax + 0xc], 5
mov dword [eax + 0x1c], ebp
mov dword [eax + 0x10], ebp
mov byte [eax + 0x2c], 1
mov byte [eax + 8], 1
mov dword [eax + 0x18], ebp
mov dword [eax + 0x14], ebp
mov dword [eax + 0x24], ebp
mov dword [eax + 0x20], ebp
mov dword [eax], esi
mov edx, dword [esi + 0x1c]
mov ecx, dword [esi + 0x24]
mov dword [ecx + edx*4], eax
add dword [esi + 0x1c], 1
mov esi, eax
lea eax, [esi + 0x28]
mov dword [eax], edi
cmp word [edi], bp
je 0x41280a
movzx edx, word [edi + 2]
cmp dx, bp
je 0x412a32
movzx ecx, word [edi + 4]
cmp cx, bp
je 0x412a32
cmp word [edi], 0x2d
jne 0x412a2a
cmp dx, 0x2d
jne 0x412a2a
cmp cx, 0x3e
je 0x412a32
add edi, 2
cmp word [edi], bp
jne 0x412a06
cmp word [edi], bp
je 0x41280a
test ebx, 0x800
mov word [edi], bp
je 0x412a66
test ebx, 0x1000
je 0x412a61
call fcn.00412370
mov ebp, dword [esi]
add edi, 4
mov dword [esp + 0x1c], ebp
jmp 0x412c09
call fcn.004122f0
mov ebp, dword [esi]
add edi, 4
mov dword [esp + 0x1c], ebp
jmp 0x412c09
movzx eax, word [edi]
test ax, ax
je 0x41280a
movzx edx, word [edi + 2]
test dx, dx
je 0x412ab9
movzx ecx, word [edi + 4]
test cx, cx
je 0x412ab9
cmp ax, 0x2d
jne 0x412aa3
cmp dx, ax
jne 0x412aa3
cmp cx, 0x3e
je 0x412ab9
movzx eax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x412a80
pop esi
pop ebp
pop ebx
mov eax, edi
pop edi
add esp, 8
ret
cmp word [edi], 0
je 0x41280a
mov ebp, dword [esp + 0x1c]
add edi, 4
jmp 0x412c09
cmp ax, 0x5b
jne 0x4132e7
movzx eax, word [edi + 2]
add edi, 2
cmp ax, 0x49
jne 0x412c35
add edi, 2
cmp word [edi], 0x4e
jne 0x4127e3
add edi, 2
cmp word [edi], 0x43
jne 0x4127e3
add edi, 2
cmp word [edi], 0x4c
jne 0x4127e3
add edi, 2
cmp word [edi], 0x55
jne 0x4127e3
add edi, 2
cmp word [edi], 0x44
jne 0x4127e3
add edi, 2
cmp word [edi], 0x45
jne 0x4127e3
add edi, 2
cmp word [edi], 0x5b
jne 0x4127e3
mov ebx, dword [esp + 0x28]
add edi, 2
test bl, 4
je 0x412bc1
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x1c]
push 7
call fcn.00412540
mov esi, eax
lea eax, [esi + 0x28]
add esp, 4
mov dword [eax], edi
mov ecx, 0x5d
mov edx, 0x3e
cmp word [edi], cx
jne 0x412b85
cmp word [edi + 2], cx
jne 0x412b85
cmp word [edi + 4], dx
je 0x412b8a
add edi, 2
jmp 0x412b74
cmp word [edi], cx
jne 0x412bb9
mov word [edi], 0
add edi, 2
test ebx, 0x100
je 0x412bb9
test ebx, 0x1000
je 0x412bb4
call fcn.00412370
mov ebp, dword [esi]
mov dword [esp + 0x1c], ebp
jmp 0x412c06
call fcn.004122f0
mov ebp, dword [esi]
mov dword [esp + 0x1c], ebp
jmp 0x412c06
movzx eax, word [edi]
test ax, ax
je 0x412bff
lea esp, [esp]
movzx edx, word [edi + 2]
test dx, dx
je 0x412bff
movzx ecx, word [edi + 4]
test cx, cx
je 0x412bff
cmp ax, 0x5d
jne 0x412bf3
cmp dx, ax
jne 0x412bf3
cmp cx, 0x3e
je 0x412bff
movzx eax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x412bd0
mov ebp, dword [esp + 0x1c]
add edi, 2
add edi, 2
cmp word [edi], 0x3e
jne 0x413a38
add edi, 2
mov ebx, dword [esp + 0x28]
mov esi, edi
lea esp, [esp]
movzx eax, word [edi]
add eax, 0xffffffff
cmp ax, 0x1f
ja 0x413183
add edi, 2
jmp 0x412c20
cmp ax, 0x43
jne 0x4127e3
add edi, 2
cmp word [edi], 0x44
jne 0x4127e3
add edi, 2
cmp word [edi], 0x41
jne 0x4127e3
add edi, 2
cmp word [edi], 0x54
jne 0x4127e3
add edi, 2
cmp word [edi], 0x41
jne 0x4127e3
add edi, 2
cmp word [edi], 0x5b
jne 0x4127e3
mov ebx, dword [esp + 0x28]
add edi, 2
test bl, 0x10
je 0x412d22
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x1c]
push 4
call fcn.00412540
mov esi, eax
lea eax, [esi + 0x28]
add esp, 4
mov dword [eax], edi
cmp word [edi], 0
je 0x412cdd
nop
movzx edx, word [edi + 2]
test dx, dx
je 0x412cdd
movzx ecx, word [edi + 4]
test cx, cx
je 0x412cdd
cmp word [edi], 0x5d
jne 0x412cd4
cmp dx, 0x5d
jne 0x412cd4
cmp cx, 0x3e
je 0x412cdd
add edi, 2
cmp word [edi], 0
jne 0x412cb0
cmp word [edi + 4], 0
je 0x41280a
cmp word [edi], 0x5d
jne 0x412bb9
mov word [edi], 0
add edi, 2
test ebx, 0x100
je 0x412bb9
test ebx, 0x1000
je 0x412bb4
call fcn.00412370
mov ebp, dword [esi]
mov dword [esp + 0x1c], ebp
jmp 0x412c06
movzx eax, word [edi]
test ax, ax
je 0x412bff
mov edi, edi
movzx edx, word [edi + 2]
test dx, dx
je 0x412bff
movzx ecx, word [edi + 4]
test cx, cx
je 0x412bff
cmp ax, 0x5d
jne 0x412d5f
cmp dx, ax
jne 0x412d5f
cmp cx, 0x3e
je 0x412bff
movzx eax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x412d30
jmp 0x412bff
movzx esi, ax
push esi
call fcn.0047439a
add esp, 4
test eax, eax
jne 0x412d9c
cmp si, 0x5f
je 0x412d9c
cmp si, 0x3a
je 0x412d9c
cmp si, 0x2d
je 0x412d9c
cmp si, 0x2e
jne 0x413a5a
mov ebx, dword [esp + 0x1c]
test ebx, ebx
jne 0x412daf
xor ebp, ebp
mov dword [esp + 0x1c], ebp
jmp 0x412e49
mov eax, dword [ebx + 0x20]
cmp dword [ebx + 0x1c], eax
jne 0x412ddc
mov esi, dword [esp + 0x24]
mov edx, dword [ebx + 0x24]
add eax, esi
add eax, eax
add eax, eax
push eax
push edx
call fcn.00474a23
xor ebp, ebp
add esp, 8
cmp eax, ebp
je 0x412dde
add dword [ebx + 0x20], esi
mov dword [ebx + 0x24], eax
jmp 0x412dde
xor ebp, ebp
push 0x30
call fcn.00473471
mov esi, eax
add esp, 4
cmp esi, ebp
je 0x412e34
push 4
mov dword [esi + 0x28], ebp
mov dword [esi + 4], ebp
mov dword [esi + 0xc], 2
mov dword [esi + 0x1c], ebp
mov dword [esi + 0x10], ebp
mov byte [esi + 0x2c], 1
mov byte [esi + 8], 1
call fcn.00473471
xor ecx, ecx
cmp eax, ebp
setne cl
push 4
mov dword [esi + 0x18], eax
mov dword [esi + 0x14], ecx
call fcn.00473471
xor edx, edx
add esp, 8
cmp eax, ebp
setne dl
mov dword [esi + 0x24], eax
mov dword [esi + 0x20], edx
mov dword [esi], ebx
mov eax, dword [ebx + 0x1c]
mov ecx, dword [ebx + 0x24]
mov dword [ecx + eax*4], esi
mov ebp, esi
mov dword [esp + 0x1c], esi
add dword [ebx + 0x1c], 1
mov dword [ebp + 4], edi
lea esp, [esp]
movzx esi, word [edi]
push esi
call fcn.0047439a
add esp, 4
test eax, eax
jne 0x412e78
cmp si, 0x5f
je 0x412e78
cmp si, 0x3a
je 0x412e78
cmp si, 0x2d
je 0x412e78
cmp si, 0x2e
jne 0x412e7d
add edi, 2
jmp 0x412e50
movzx eax, word [edi]
test ax, ax
je 0x41280a
mov word [edi], 0
add edi, 2
cmp word [edi], 0
movzx eax, ax
je 0x41280a
cmp ax, 0x2f
je 0x4139e4
add eax, 0xffffffff
cmp ax, 0x1f
ja 0x412c16
movzx eax, word [edi]
add eax, 0xffffffff
cmp ax, 0x1f
ja 0x412ec6
add edi, 2
jmp 0x412eb5
cmp word [edi], 0
je 0x41280a
movzx esi, word [edi]
push esi
call fcn.0047439a
add esp, 4
test eax, eax
jne 0x412efc
cmp si, 0x5f
je 0x412efc
cmp si, 0x3a
je 0x412efc
cmp si, 0x2d
je 0x412efc
cmp si, 0x2e
jne 0x412c09
mov edx, dword [esp + 0x24]
push edx
mov esi, ebp
call fcn.00412590
mov ebx, eax
add esp, 4
mov dword [ebx], edi
nop
movzx esi, word [edi]
push esi
call fcn.0047439a
add esp, 4
test eax, eax
jne 0x412f38
cmp si, 0x5f
je 0x412f38
cmp si, 0x3a
je 0x412f38
cmp si, 0x2d
je 0x412f38
cmp si, 0x2e
jne 0x412f3d
add edi, 2
jmp 0x412f10
movzx eax, word [edi]
test ax, ax
je 0x41280a
mov word [edi], 0
add edi, 2
movzx ecx, ax
movzx eax, word [edi]
test ax, ax
je 0x41280a
lea edx, [ecx - 1]
cmp dx, 0x1f
ja 0x412f8d
lea esp, [esp]
movzx eax, word [edi]
add eax, 0xffffffff
cmp ax, 0x1f
ja 0x412f81
add edi, 2
jmp 0x412f70
movzx eax, word [edi]
test ax, ax
je 0x41280a
cmp cx, 0x3d
je 0x413013
cmp ax, 0x3d
je 0x413019
movzx esi, ax
push esi
call fcn.0047439a
add esp, 4
test eax, eax
jne 0x412ed0
cmp si, 0x5f
je 0x412ed0
cmp si, 0x3a
je 0x412ed0
cmp si, 0x2d
je 0x412ed0
cmp si, 0x2e
je 0x412ed0
movzx eax, word [edi]
test ax, ax
je 0x412c09
cmp dword [ebp + 0xc], 6
jne 0x412c09
cmp ax, 0x2f
je 0x41311f
movzx eax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x412ff3
pop esi
pop ebp
pop ebx
mov eax, edi
pop edi
add esp, 8
ret
cmp ax, 0x3d
jne 0x413020
add edi, 2
lea esp, [esp]
movzx eax, word [edi]
add eax, 0xffffffff
cmp ax, 0x1f
jbe 0x413019
movzx eax, word [edi]
test ax, ax
je 0x41280a
movzx ecx, ax
cmp cx, 0x22
je 0x41304b
cmp cx, 0x27
jne 0x412fa1
movzx ecx, ax
add edi, 2
lea eax, [ebx + 8]
mov dword [eax], edi
cmp word [edi], 0
je 0x41280a
cmp word [edi], cx
je 0x41306e
add edi, 2
cmp word [edi], 0
jne 0x413060
cmp word [edi], 0
je 0x41280a
mov word [edi], 0
add edi, 2
cmp word [edi], 0
je 0x41280a
mov ebx, dword [esp + 0x28]
test bl, bl
jns 0x4130a6
test ebx, 0x1000
je 0x4130a1
call fcn.00412370
jmp 0x4130a6
call fcn.004122f0
movzx eax, word [edi]
cmp ax, 0x3e
je 0x413117
cmp ax, 0x2f
je 0x4130ea
movzx ecx, ax
add ecx, 0xffffffff
cmp cx, 0x1f
ja 0x412fa1
movzx eax, word [edi]
add eax, 0xffffffff
cmp ax, 0x1f
ja 0x4130d6
add edi, 2
jmp 0x4130c5
cmp word [edi], 0
jne 0x412ed0
pop esi
pop ebp
pop ebx
mov eax, edi
pop edi
add esp, 8
ret
mov ebp, dword [ebp]
mov dword [esp + 0x1c], ebp
movzx eax, word [edi + 2]
add edi, 2
add eax, 0xffffffff
cmp ax, 0x1f
jbe 0x4130f1
movzx eax, word [edi]
test ax, ax
je 0x41280a
cmp ax, 0x3e
jne 0x412c1a
add edi, 2
jmp 0x412c1a
cmp word [edi], 0
je 0x41280a
lea esp, [esp]
movzx eax, word [edi]
add eax, 0xffffffff
cmp ax, 0x1f
ja 0x413141
add edi, 2
jmp 0x413130
movzx eax, word [edi]
test ax, ax
je 0x41280a
cmp ax, 0x2f
jne 0x413156
add edi, 2
movzx eax, word [edi]
add eax, 0xffffffff
cmp ax, 0x1f
jbe 0x413153
movzx eax, word [edi]
test ax, ax
je 0x41280a
cmp ax, 0x3e
jne 0x413177
add edi, 2
mov ebp, dword [ebp]
mov dword [esp + 0x1c], ebp
jmp 0x412c16
movzx eax, word [edi]
test ax, ax
je 0x41280a
cmp ax, 0x3c
je 0x41364c
test ebp, ebp
mov edi, esi
je 0x41321d
mov eax, dword [ebp + 0x20]
cmp dword [ebp + 0x1c], eax
jne 0x4131d0
mov ecx, dword [esp + 0x24]
mov edx, dword [ebp + 0x24]
add eax, ecx
add eax, eax
add eax, eax
push eax
push edx
call fcn.00474a23
add esp, 8
test eax, eax
je 0x4131d0
mov dword [ebp + 0x24], eax
mov eax, dword [esp + 0x24]
add dword [ebp + 0x20], eax
push 0x30
call fcn.00473471
xor ecx, ecx
add esp, 4
cmp eax, ecx
je 0x413207
mov dword [eax + 0x28], ecx
mov dword [eax + 4], ecx
mov dword [eax + 0xc], 3
mov dword [eax + 0x1c], ecx
mov dword [eax + 0x10], ecx
mov byte [eax + 0x2c], 1
mov byte [eax + 8], 1
mov dword [eax + 0x18], ecx
mov dword [eax + 0x14], ecx
mov dword [eax + 0x24], ecx
mov dword [eax + 0x20], ecx
mov ecx, dword [esp + 0x1c]
mov dword [eax], ecx
mov edx, dword [ecx + 0x1c]
mov ebp, dword [ecx + 0x24]
mov dword [ebp + edx*4], eax
add dword [ecx + 0x1c], 1
mov ebp, eax
lea eax, [ebp + 0x28]
mov dword [eax], esi
cmp word [esi], 0
je 0x413237
cmp word [edi], 0x3c
je 0x413237
add edi, 2
cmp word [edi], 0
jne 0x413228
movzx ecx, word [edi]
test cx, cx
je 0x41280a
mov word [edi], 0
add edi, 2
cmp word [edi], 0
movzx esi, cx
je 0x41280a
test bl, 0x40
je 0x413271
test ebx, 0x1000
je 0x41326c
call fcn.00412370
jmp 0x413271
call fcn.004122f0
cmp si, 0x3c
mov eax, dword [ebp]
mov dword [esp + 0x1c], eax
jne 0x4127e3
movzx eax, word [edi]
cmp ax, 0x2f
jne 0x4132c7
jmp 0x413290
cmp ax, 0x3e
je 0x4132ac
movzx eax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x413290
pop esi
pop ebp
pop ebx
mov eax, edi
pop edi
add esp, 8
ret
cmp word [edi], 0
je 0x41280a
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx]
mov dword [esp + 0x1c], edx
mov ebp, edx
jmp 0x412c09
movzx eax, word [edi]
cmp ax, 0x21
je 0x412830
test ax, ax
jne 0x412830
pop esi
pop ebp
pop ebx
mov eax, edi
pop edi
add esp, 8
ret
movzx eax, word [edi]
cmp ax, 0x44
je 0x4136be
movzx esi, ax
push esi
call fcn.0047439a
add esp, 4
test eax, eax
jne 0x413320
cmp si, 0x5f
je 0x413320
cmp si, 0x3a
je 0x413320
cmp si, 0x2d
je 0x413320
cmp si, 0x2e
jne 0x4127e3
mov ebp, edi
movzx esi, word [edi]
push esi
call fcn.0047439a
add esp, 4
test eax, eax
jne 0x41334a
cmp si, 0x5f
je 0x41334a
cmp si, 0x3a
je 0x41334a
cmp si, 0x2d
je 0x41334a
cmp si, 0x2e
jne 0x41334f
add edi, 2
jmp 0x413322
movzx eax, word [edi]
test ax, ax
je 0x41280a
mov word [edi], 0
movzx eax, ax
add edi, 2
cmp word [edi], 0
mov dword [esp + 0x14], eax
je 0x41280a
mov dword [esp + 0x10], 9
mov ecx, str.ATTLIST
mov eax, ebp
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4133a9
test dx, dx
je 0x4133a5
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4133a9
add eax, 4
add ecx, 4
test dx, dx
jne 0x413383
xor eax, eax
jmp 0x4133ae
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4133bf
mov dword [esp + 0x10], 0xa
jmp 0x41343d
mov ecx, str.ELEMENT
mov eax, ebp
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4133ec
test dx, dx
je 0x4133e8
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4133ec
add eax, 4
add ecx, 4
test dx, dx
jne 0x4133c6
xor eax, eax
jmp 0x4133f1
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4133ff
mov dword [esp + 0x10], 0xb
jmp 0x41343d
mov ecx, str.NOTATION
mov eax, ebp
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x41342c
test dx, dx
je 0x413428
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x41342c
add eax, 4
add ecx, 4
test dx, dx
jne 0x413406
xor eax, eax
jmp 0x413431
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x41343d
mov dword [esp + 0x10], 0xc
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x1c]
push ecx
call fcn.00412540
add esp, 4
cmp word [edi], 0
mov ebx, eax
je 0x4139dd
mov edx, dword [esp + 0x14]
add edx, 0xffffffff
cmp dx, 0x1f
ja 0x4139dd
nop
movzx eax, word [edi]
add eax, 0xffffffff
cmp ax, 0x1f
ja 0x413481
add edi, 2
jmp 0x413470
movzx esi, word [edi]
test si, si
je 0x41280a
call fcn.004122a0
test al, al
jne 0x4134a0
cmp word [edi], 0x25
jne 0x4139dd
cmp word [edi], 0x25
mov ecx, edi
jne 0x4134ed
movzx eax, word [edi + 2]
add edi, 2
add eax, 0xffffffff
cmp ax, 0x1f
ja 0x4134e8
jmp 0x4134c0
movzx eax, word [edi]
add eax, 0xffffffff
cmp ax, 0x1f
ja 0x4134d1
add edi, 2
jmp 0x4134c0
cmp word [edi], 0
je 0x41280a
lea eax, [edi - 2]
mov word [eax], 0x25
mov dword [ebx + 4], eax
jmp 0x4134f0
mov dword [ebx + 4], ecx
jmp 0x4134f0
mov dword [ebx + 4], edi
mov si, word [edi]
call fcn.004122a0
test al, al
je 0x413510
lea esp, [esp]
mov si, word [edi + 2]
add edi, 2
call fcn.004122a0
test al, al
jne 0x413500
movzx eax, word [edi]
test ax, ax
je 0x41280a
mov word [edi], 0
add edi, 2
cmp word [edi], 0
movzx esi, ax
je 0x41280a
lea eax, [esi - 1]
cmp ax, 0x1f
ja 0x4139dd
mov edi, edi
movzx eax, word [edi]
add eax, 0xffffffff
cmp ax, 0x1f
ja 0x413551
add edi, 2
jmp 0x413540
cmp word [edi], 0
je 0x41280a
cmp dword [esp + 0x10], 9
jne 0x4135e8
lea ebp, [ebx + 0x28]
mov dword [ebp], edi
xor dl, dl
mov edi, edi
movzx ecx, word [edi]
test cx, cx
je 0x4139b7
test dl, dl
jne 0x413595
mov eax, ecx
call fcn.004122d0
test al, al
je 0x4135a1
movzx esi, cx
mov dl, 1
add edi, 2
jmp 0x413570
cmp cx, si
jne 0x4135a7
xor dl, dl
add edi, 2
jmp 0x413570
cmp cx, 0x3e
je 0x4135ac
add edi, 2
jmp 0x413570
mov eax, dword [esp + 0x28]
mov word [edi], 0
add edi, 2
test eax, 0x200
je 0x4135dd
test eax, 0x1000
mov eax, ebp
je 0x4135d8
call fcn.00412370
mov ecx, dword [ebx]
mov dword [esp + 0x1c], ecx
jmp 0x4127f0
call fcn.004122f0
mov ecx, dword [ebx]
mov dword [esp + 0x1c], ecx
jmp 0x4127f0
lea eax, [ebx + 0x28]
mov dword [eax], edi
cmp word [edi], 0
je 0x41280a
cmp word [edi], 0x3e
je 0x413606
add edi, 2
cmp word [edi], 0
jne 0x4135f7
cmp word [edi], 0
je 0x41280a
mov ecx, dword [esp + 0x28]
mov word [edi], 0
add edi, 2
test ecx, 0x200
je 0x413641
test ecx, 0x1000
je 0x41363c
call fcn.00412370
mov edx, dword [ebx]
mov dword [esp + 0x1c], edx
jmp 0x4127f0
call fcn.004122f0
mov edx, dword [ebx]
mov dword [esp + 0x1c], edx
jmp 0x4127f0
cmp word [edi + 2], 0x2f
jne 0x4127f0
movzx eax, word [edi]
test ax, ax
je 0x41280a
cmp ax, 0x3e
je 0x413a22
movzx eax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x413663
pop esi
pop ebp
pop ebx
mov eax, edi
pop edi
add esp, 8
ret
movzx eax, word [edi]
test ax, ax
je 0x41280a
nop
cmp ax, 0x3e
je 0x4136ac
movzx eax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x413690
pop esi
pop ebp
pop ebx
mov eax, edi
pop edi
add esp, 8
ret
cmp word [edi], 0
je 0x41280a
add edi, 2
jmp 0x4127e3
add edi, 2
cmp word [edi], 0x4f
jne 0x4127e3
add edi, 2
cmp word [edi], 0x43
jne 0x4127e3
add edi, 2
cmp word [edi], 0x54
jne 0x4127e3
add edi, 2
cmp word [edi], 0x59
jne 0x4127e3
add edi, 2
cmp word [edi], 0x50
jne 0x4127e3
add edi, 2
cmp word [edi], 0x45
jne 0x4127e3
movzx eax, word [edi + 2]
add edi, 2
add eax, 0xffffffff
cmp ax, 0x1f
jbe 0x41370c
cmp word [edi], 0
je 0x41280a
mov ebx, dword [esp + 0x28]
and ebx, 4
je 0x413753
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x1c]
push 8
call fcn.00412540
push 3
mov esi, eax
mov dword [esp + 0x24], eax
call fcn.00412590
add esp, 8
mov dword [eax], edi
mov dword [eax + 8], edi
mov si, word [edi]
call fcn.004122a0
test al, al
je 0x413770
nop
mov si, word [edi + 2]
add edi, 2
call fcn.004122a0
test al, al
jne 0x413760
movzx eax, word [edi]
test ax, ax
je 0x41280a
mov word [edi], 0
add edi, 2
cmp word [edi], 0
movzx eax, ax
je 0x41280a
add eax, 0xffffffff
cmp ax, 0x1f
ja 0x4137c0
lea ebx, [ebx]
movzx eax, word [edi]
add eax, 0xffffffff
cmp ax, 0x1f
ja 0x4137b1
add edi, 2
jmp 0x4137a0
cmp word [edi], 0
je 0x41280a
jmp 0x4137c0
mov si, word [edi]
call fcn.004122a0
test al, al
je 0x413830
mov si, word [edi]
mov ebp, edi
call fcn.004122a0
test al, al
je 0x4137f0
lea ebx, [ebx]
mov si, word [edi + 2]
add edi, 2
call fcn.004122a0
test al, al
jne 0x4137e0
cmp word [edi], 0
je 0x41280a
test ebx, ebx
je 0x413816
mov esi, dword [esp + 0x1c]
push 1
call fcn.00412590
mov dword [eax], ebp
mov dword [eax + 8], ebp
add esp, 4
mov word [edi], 0
movzx eax, word [edi + 2]
add edi, 2
add eax, 0xffffffff
cmp ax, 0x1f
jbe 0x413816
cmp word [edi], 0
je 0x41280a
movzx ecx, word [edi]
mov eax, ecx
call fcn.004122d0
test al, al
je 0x4138b9
mov esi, dword [esp + 0x1c]
add edi, 2
cmp word [edi], 0
movzx eax, cx
mov ebp, edi
je 0x4138b9
cmp word [edi], ax
je 0x413862
add edi, 2
cmp word [edi], 0
jne 0x413854
cmp word [edi], 0
je 0x4138b9
test ebx, ebx
je 0x41387e
push 1
call fcn.00412590
mov dword [eax + 8], ebp
add esp, 4
mov word [edi], 0
movzx eax, word [edi + 2]
add edi, 2
add eax, 0xffffffff
cmp ax, 0x1f
jbe 0x41387e
movzx ecx, word [edi]
test cx, cx
je 0x41280a
movzx eax, cx
cmp ax, 0x22
je 0x413846
cmp ax, 0x27
je 0x413846
mov si, word [edi]
call fcn.004122a0
test al, al
jne 0x4137c0
cmp word [edi], 0x5b
jne 0x413a8d
mov esi, dword [esp + 0x1c]
add edi, 2
test ebx, ebx
je 0x4138d1
mov dword [esi + 0x28], edi
cmp word [edi], 0
mov ecx, 1
je 0x413904
lea esp, [esp]
movzx eax, word [edi]
cmp ax, 0x5d
jne 0x4138ee
sub ecx, 1
jmp 0x4138f7
cmp ax, 0x5b
jne 0x4138f7
add ecx, 1
test ecx, ecx
je 0x413904
add edi, 2
cmp word [edi], 0
jne 0x4138e0
test ebx, ebx
je 0x41397b
mov ecx, dword [esp + 0x28]
mov eax, ecx
and eax, 0x2000
mov word [edi], 0
jne 0x413947
test ecx, 0x4000
jne 0x413947
test ecx, 0x400
je 0x413972
test ecx, 0x1000
lea eax, [esi + 0x28]
je 0x413940
call fcn.00412370
jmp 0x413972
call fcn.004122f0
jmp 0x413972
test eax, eax
je 0x413966
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
mov edx, dword [esi + 0x28]
push eax
push ecx
push esi
push edx
call fcn.004127c0
mov ecx, dword [esp + 0x38]
add esp, 0x10
test ecx, 0x4000
jne 0x413a9c
mov eax, dword [esi]
add edi, 2
mov dword [esp + 0x1c], eax
movzx eax, word [edi]
test ax, ax
je 0x41280a
cmp ax, 0x3e
je 0x4139a3
movzx eax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x413987
pop esi
pop ebp
pop ebx
mov eax, edi
pop edi
add esp, 8
ret
cmp word [edi], 0
jne 0x4127f0
pop esi
pop ebp
pop ebx
mov eax, edi
pop edi
add esp, 8
ret
mov eax, dword [esp + 0x28]
test eax, 0x200
je 0x4139dd
test eax, 0x1000
lea eax, [ebx + 0x28]
je 0x4139d8
call fcn.00412370
mov eax, dword [ebx]
jmp 0x4127df
call fcn.004122f0
mov eax, dword [ebx]
jmp 0x4127df
movzx eax, word [edi]
test ax, ax
je 0x41280a
cmp ax, 0x3e
je 0x413a0c
movzx eax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4139f0
pop esi
pop ebp
pop ebx
mov eax, edi
pop edi
add esp, 8
ret
cmp word [edi], 0
je 0x41280a
mov ecx, dword [ebp]
mov dword [esp + 0x1c], ecx
jmp 0x4127e3
cmp word [edi], 0
je 0x41280a
mov edx, dword [ebp]
mov dword [esp + 0x1c], edx
jmp 0x4127e3
cmp word [edi], 0x2f
jne 0x4127e3
add edi, 2
cmp word [edi], 0x3e
jne 0x4127e3
mov eax, dword [ebp]
add edi, 2
jmp 0x4127df
movzx eax, word [edi]
cmp ax, 0x2f
jne 0x4127e3
cmp ax, 0x3e
je 0x413a83
movzx eax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x413a67
pop esi
pop ebp
pop ebx
mov eax, edi
pop edi
add esp, 8
ret
cmp word [edi], 0
je 0x41280a
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx]
mov dword [esp + 0x1c], edx
jmp 0x4127e3
pop esi
pop ebp
pop ebx
lea eax, [edi + 2]
pop edi
add esp, 8
ret
mov eax, edi
pop edi
add esp, 8
ret