Function at 0x431370
Capabilities:
Parse credit card information

Disassembly:
sub esp, 0x98
pushal
mov ecx, eax
mov dword [esp + 0x60], ecx
mov eax, ecx
call fcn.00432ae0
cmp ebx, 0
jne 0x4313ae
mov al, byte [ecx]
and al, 0xf8
or al, 5
mov byte [ecx], al
and byte [ecx], 0xc7
mov ax, word [ecx]
and ax, 0x807f
or ax, 0x7f80
mov word [ecx], ax
jmp 0x432ad6
cmp bl, 0x42
je 0x4313f7
jmp 0x43140f
mov dword [ecx + 0x204], ebx
cmp byte [ebx], 0x40
sete al
movzx eax, al
lea ebx, [ebx + eax]
mov eax, 0x70a5a4
call fcn.004f627c
mov eax, 0x70a5a4
call fcn.0042f564
mov dword [esp + 0x5c], eax
cmp eax, 1
jb 0x432ad6
cmp eax, 0xff
ja 0x432ad6
mov bl, byte [eax + 0x70a5a3]
cmp bl, 0x62
jne 0x4313a7
dec eax
mov dword [esp + 0x5c], eax
cmp eax, 2
jb 0x432ad6
or dword [ecx], 0x40
mov byte [eax + 0x70a5a4], 0
mov dh, byte [0x70a5a4]
mov dl, byte [eax + 0x70a5a3]
mov byte [esp + 0x5b], dl
lea ebx, [ecx + 6]
mov dword [esp + 0x75], ebx
movsx esi, dh
mov edi, esi
mov dword [esp + 0x31], edi
cmp edi, 0x73
je 0x431439
cmp edi, 0x53
jne 0x43149a
mov eax, 0x70a5a5
call fcn.004c2b08
mov ebx, eax
cmp ebx, 0
je 0x432acf
cmp ebx, 0xff
ja 0x432acf
mov eax, 0x70a5a5
call fcn.004312f0
cmp eax, 0
jne 0x432acf
mov eax, dword [esp + 0x60]
mov cl, byte [eax]
and cl, 0xf8
or cl, 5
mov byte [eax], cl
and byte [eax], 0xc7
mov cx, word [eax]
and cx, 0x807f
shl bx, 7
and bx, 0x7f80
or cx, bx
mov word [eax], cx
jmp 0x432ad6
cmp edi, 0x64
je 0x4314a8
cmp edi, 0x44
jne 0x431a33
mov al, byte [ecx]
and al, 0xf8
or al, 2
mov byte [ecx], al
mov al, byte [ecx]
and al, 0xc7
or al, 8
mov byte [ecx], al
mov dword [esp + 0xb4], 1
mov eax, dword [esp + 0xb4]
cmp byte [eax + 0x70a5a4], 0x30
je 0x4314f3
mov eax, dword [esp + 0xb4]
cmp byte [eax + 0x70a5a4], 0x5f
je 0x4314f3
mov eax, dword [esp + 0xb4]
cmp byte [eax + 0x70a5a4], 0x2a
jne 0x431504
inc dword [esp + 0xb4]
mov esi, dword [esp + 0xb4]
dec esi
jmp 0x431509
mov esi, 0
lea edx, [esp + 0xb4]
mov ebx, edx
mov eax, 0x70a5a4
call fcn.004312c4
mov byte [ecx + 5], al
inc dword [esp + 0xb4]
mov eax, dword [esp + 0xb4]
mov bl, byte [eax + 0x70a5a3]
mov byte [esp + 0x79], bl
cmp bl, 0x3e
jne 0x4315b8
mov ebx, edx
mov eax, 0x70a5a4
call fcn.004312c4
mov byte [ecx + 4], al
cmp byte [esp + 0x79], 0x3e
jne 0x431571
cmp byte [ecx + 4], 0
je 0x431565
mov ebx, 0x63
movsx eax, byte [ecx + 4]
sub ebx, eax
jmp 0x43156a
mov ebx, 0x13
mov al, bl
mov byte [ecx + 4], al
jmp 0x431585
cmp byte [ecx + 4], 0
je 0x43157d
movsx eax, byte [ecx + 4]
jmp 0x431582
mov eax, 0x50
mov byte [ecx + 4], al
inc dword [esp + 0xb4]
mov eax, dword [esp + 0xb4]
mov bl, byte [eax + 0x70a5a3]
jmp 0x4315c5
mov eax, dword [esp + 0xb4]
lea eax, [eax + 0x70a5a4]
call fcn.004312f0
cmp eax, 0
jne 0x432acf
jmp 0x4315ca
cmp bl, 0x3c
je 0x43153c
mov byte [ecx + 4], 0x50
cmp bl, 0
jne 0x43159b
cmp bl, 0x2e
je 0x4315de
cmp bl, 0x2d
je 0x4315de
cmp bl, 0x5f
je 0x4315de
cmp bl, 0x60
jne 0x4315e9
mov al, bl
call fcn.004312a0
mov dl, al
jmp 0x4315eb
mov dl, 0
movsx eax, byte [ecx + 5]
cmp eax, 1
je 0x4315f9
cmp eax, 2
jne 0x431616
mov eax, dword [esp + 0x75]
mov ebx, str.__a0_a_
mov ecx, 0x10
call fcn.0042f5a4
jmp 0x431620
cmp byte [eax + 5], 6
je 0x43162a
jmp 0x43163d
cmp eax, 5
je 0x431620
cmp eax, 6
jne 0x43168b
mov eax, dword [esp + 0x60]
cmp byte [eax + 5], 5
jne 0x43160e
mov eax, dword [esp + 0x75]
mov ebx, 0x543600
mov ecx, 0x10
call fcn.0042f5a4
mov ecx, dword [esp + 0x60]
cmp byte [ecx + 5], 2
jne 0x431672
mov eax, dword [esp + 0x75]
mov byte [eax + 0x12], 0x30
mov bl, byte [eax + 0x12]
mov byte [eax + 0x10], bl
mov byte [eax + 0x13], 9
mov bl, byte [eax + 0x13]
mov byte [eax + 0x11], bl
mov ax, word [ecx]
and ax, 0x807f
or ax, 0x500
mov word [ecx], ax
jmp 0x4319ad
cmp byte [ecx + 5], 6
je 0x431647
mov ax, word [ecx]
and ax, 0x807f
or ax, 0x400
mov word [ecx], ax
jmp 0x4319ad
cmp eax, 3
jne 0x4316ba
mov eax, dword [esp + 0x75]
mov ebx, 0x543610
mov ecx, 0x16
call fcn.0042f5a4
mov ecx, dword [esp + 0x60]
mov ax, word [ecx]
and ax, 0x807f
or ax, 0x580
mov word [ecx], ax
jmp 0x4319ad
cmp eax, 4
jne 0x4316e9
mov eax, dword [esp + 0x75]
mov ebx, str.__n__n__n__n__n__n__n__n__n__n__n__n
mov ecx, 0x2a
call fcn.0042f5a4
mov ecx, dword [esp + 0x60]
mov ax, word [ecx]
and ax, 0x807f
or ax, 0xa80
mov word [ecx], ax
jmp 0x4319ad
cmp eax, 7
je 0x4316f3
cmp eax, 8
jne 0x43174c
mov edi, dword [esp + 0x75]
mov eax, edi
mov ebx, str.__b0_b
mov ecx, 0x12
call fcn.0042f5a4
mov ecx, dword [esp + 0x60]
cmp byte [ecx + 5], 8
jne 0x431739
mov byte [edi + 0x14], 0x30
mov al, byte [edi + 0x14]
mov byte [edi + 0x12], al
mov byte [edi + 0x15], 9
mov al, byte [edi + 0x15]
mov byte [edi + 0x13], al
mov ax, word [ecx]
and ax, 0x807f
or ax, 0x580
mov word [ecx], ax
jmp 0x4319ad
mov ax, word [ecx]
and ax, 0x807f
or ax, 0x480
mov word [ecx], ax
jmp 0x4319ad
cmp eax, 9
je 0x431756
cmp eax, 0xf
jne 0x4317b0
mov eax, dword [esp + 0x75]
mov ebx, str.0_t0_t_
mov ecx, 0x10
call fcn.0042f5a4
mov ecx, dword [esp + 0x60]
mov ax, word [ecx]
and ax, 0x807f
or ax, 0x400
mov word [ecx], ax
cmp byte [ecx + 5], 0xf
jne 0x4319ad
mov ax, word [ecx]
and ax, 0x807f
mov bx, word [ecx]
and bx, 0x7f80
shr bx, 7
sub bx, 3
shl bx, 7
and bx, 0x7f80
or ax, bx
mov word [ecx], ax
jmp 0x4319ad
cmp eax, 0xa
je 0x4317ba
cmp eax, 0x10
jne 0x43182a
mov eax, dword [esp + 0x75]
mov byte [eax + 2], 0x30
mov bl, byte [eax + 2]
mov byte [eax], bl
mov byte [eax + 3], 9
mov bl, byte [eax + 3]
mov byte [eax + 1], bl
lea eax, [eax + 4]
mov ebx, str.0_t0_t_
mov ecx, 0x10
call fcn.0042f5a4
mov ecx, dword [esp + 0x60]
mov ax, word [ecx]
and ax, 0x807f
or ax, 0x500
mov word [ecx], ax
cmp byte [ecx + 5], 0x10
jne 0x4319ad
mov ax, word [ecx]
and ax, 0x807f
mov bx, word [ecx]
and bx, 0x7f80
shr bx, 7
sub bx, 3
shl bx, 7
and bx, 0x7f80
or ax, bx
mov word [ecx], ax
jmp 0x4319ad
cmp eax, 0xb
jne 0x431859
mov eax, dword [esp + 0x75]
mov ebx, 0x543678
mov ecx, 0xc
call fcn.0042f5a4
mov ecx, dword [esp + 0x60]
mov ax, word [ecx]
and ax, 0x807f
or ax, 0x300
mov word [ecx], ax
jmp 0x4319ad
cmp eax, 0xc
jne 0x43189e
mov eax, dword [esp + 0x75]
mov byte [eax + 2], 0x30
mov bl, byte [eax + 2]
mov byte [eax], bl
mov byte [eax + 3], 9
mov bl, byte [eax + 3]
mov byte [eax + 1], bl
lea eax, [eax + 4]
mov ebx, 0x543678
mov ecx, 0xc
call fcn.0042f5a4
mov ecx, dword [esp + 0x60]
mov ax, word [ecx]
and ax, 0x807f
or ax, 0x400
mov word [ecx], ax
jmp 0x4319ad
cmp eax, 0xd
je 0x4318a8
cmp eax, 0xe
jne 0x43191b
mov eax, dword [esp + 0x75]
mov byte [eax + 2], 0x30
mov bl, byte [eax + 2]
mov byte [eax], bl
mov byte [eax + 3], 7
mov bl, byte [eax + 3]
mov byte [eax + 1], bl
mov byte [eax + 5], 0x13
mov byte [eax + 4], 0x2f
mov byte [eax + 8], 0x30
mov bl, byte [eax + 8]
mov byte [eax + 6], bl
mov byte [eax + 9], 9
mov bl, byte [eax + 9]
mov byte [eax + 7], bl
cmp byte [ecx + 5], 0xe
jne 0x431908
mov byte [eax + 0xc], 0x30
mov bl, byte [eax + 0xc]
mov byte [eax + 0xa], bl
mov byte [eax + 0xd], 9
mov bl, byte [eax + 0xd]
mov byte [eax + 0xb], bl
mov ax, word [ecx]
and ax, 0x807f
or ax, 0x380
mov word [ecx], ax
jmp 0x4319ad
mov ax, word [ecx]
and ax, 0x807f
or ax, 0x280
mov word [ecx], ax
jmp 0x4319ad
cmp eax, 0x11
je 0x431929
cmp eax, 0x12
jne 0x432acf
cmp byte [ecx + 5], 0x11
jne 0x431940
mov edi, 0x5434ab
jmp 0x431945
cmp esi, 0
jne 0x4319b2
jmp 0x432ad6
mov edi, 0x5434cf
lea eax, [ecx + 6]
lea ebx, [edi + 6]
mov cx, word [edi]
and cx, 0x7f80
shr cx, 7
movzx ecx, cx
shl ecx, 1
call fcn.0042f617
mov ecx, dword [esp + 0x60]
mov ax, word [ecx]
and ax, 0x807f
mov bx, word [edi]
and bx, 0x7f80
shr bx, 7
shl bx, 7
and bx, 0x7f80
or ax, bx
mov word [ecx], ax
mov al, byte [ecx]
and al, 0xc7
mov ah, byte [edi]
and ah, 0x38
shr ah, 3
shl ah, 3
and ah, 0x38
or al, ah
mov byte [ecx], al
mov al, byte [ecx]
and al, 0xf8
mov ah, byte [edi]
and ah, 7
and ah, 7
or al, ah
mov byte [ecx], al
cmp dl, 0
je 0x431936
mov dword [esp + 0xb4], 0
mov eax, dword [esp + 0xb4]
mov bx, word [ecx]
and bx, 0x7f80
shr bx, 7
movzx ebx, bx
cmp eax, ebx
jae 0x432ad6
mov eax, dword [esp + 0xb4]
movzx eax, byte [ecx + eax*2 + 7]
cmp eax, 0x13
jne 0x431a00
cmp dl, 0
je 0x431a2a
mov ebx, dword [esp + 0xb4]
mov al, dl
mov byte [ecx + ebx*2 + 6], al
jmp 0x431a2a
cmp eax, 7
je 0x431a14
cmp eax, 8
je 0x431a14
cmp eax, 9
je 0x431a14
cmp eax, 0xa
jne 0x431a2a
cmp esi, 0
je 0x431a2a
mov ebx, dword [esp + 0xb4]
mov al, byte [esi + 0x70a5a4]
mov byte [ecx + ebx*2 + 6], al
inc dword [esp + 0xb4]
jmp 0x4319bd
cmp edi, 0x74
je 0x431a41
cmp edi, 0x54
jne 0x431d6d
mov al, byte [ecx]
and al, 0xf8
or al, 3
mov byte [ecx], al
mov al, byte [ecx]
and al, 0xc7
or al, 8
mov byte [ecx], al
mov al, byte [esp + 0x5b]
cmp al, 0x2e
je 0x431a65
cmp al, 0x2d
je 0x431a65
cmp al, 0x5f
je 0x431a65
cmp al, 0x60
jne 0x431a7a
mov ebx, dword [esp + 0x5c]
dec ebx
mov byte [ebx + 0x70a5a4], 0
call fcn.004312a0
mov dl, al
jmp 0x431a7c
mov dl, 0
mov dword [esp + 0xb4], 1
mov eax, dword [esp + 0xb4]
cmp byte [eax + 0x70a5a4], 0x30
je 0x431ab7
mov eax, dword [esp + 0xb4]
cmp byte [eax + 0x70a5a4], 0x5f
je 0x431ab7
mov eax, dword [esp + 0xb4]
cmp byte [eax + 0x70a5a4], 0x2a
jne 0x431ac8
inc dword [esp + 0xb4]
mov edi, dword [esp + 0xb4]
dec edi
jmp 0x431acd
mov edi, 0
mov eax, dword [esp + 0xb4]
lea eax, [eax + 0x70a5a4]
call fcn.004c2b08
mov byte [ecx + 5], al
mov eax, dword [esp + 0xb4]
lea eax, [eax + 0x70a5a4]
call fcn.004312f0
cmp eax, 0
jne 0x432acf
movsx eax, byte [ecx + 5]
cmp eax, 1
jne 0x431b30
mov eax, dword [esp + 0x75]
mov ebx, 0x543684
mov ecx, 0xa
call fcn.0042f5a4
mov ebx, dword [esp + 0x60]
mov ax, word [ebx]
and ax, 0x807f
or ax, 0x280
mov word [ebx], ax
jmp 0x431cec
cmp eax, 2
jne 0x431b5f
mov eax, dword [esp + 0x75]
mov ebx, str.__v0_v0_f0_fE
mov ecx, 8
call fcn.0042f5a4
mov ebx, dword [esp + 0x60]
mov ax, word [ebx]
and ax, 0x807f
or ax, 0x200
mov word [ebx], ax
jmp 0x431cec
cmp eax, 3
jne 0x431ba0
mov esi, dword [esp + 0x75]
mov eax, esi
mov ebx, 0x543684
mov ecx, 0xa
call fcn.0042f5a4
mov byte [esi + 0xa], 0x58
mov byte [esi + 0xb], 0x14
mov byte [esi + 0xc], 0x4d
mov byte [esi + 0xd], 0
mov ebx, dword [esp + 0x60]
mov ax, word [ebx]
and ax, 0x807f
or ax, 0x380
mov word [ebx], ax
jmp 0x431cec
cmp eax, 4
jne 0x431bed
mov esi, dword [esp + 0x75]
mov eax, esi
mov ebx, 0x543684
mov ecx, 0xa
call fcn.0042f5a4
mov byte [esi + 0xa], 0x3a
mov byte [esi + 0xb], 0x13
mov byte [esi + 0xe], 0x30
mov al, byte [esi + 0xe]
mov byte [esi + 0xc], al
mov byte [esi + 0xf], 0xd
mov al, byte [esi + 0xf]
mov byte [esi + 0xd], al
mov ebx, dword [esp + 0x60]
mov ax, word [ebx]
and ax, 0x807f
or ax, 0x400
mov word [ebx], ax
jmp 0x431cec
cmp eax, 5
jne 0x431c32
mov esi, dword [esp + 0x75]
mov eax, esi
mov ebx, str.__v0_v0_f0_fE
mov ecx, 8
call fcn.0042f5a4
mov byte [esi + 0xa], 0x30
mov al, byte [esi + 0xa]
mov byte [esi + 8], al
mov byte [esi + 0xb], 0xd
mov al, byte [esi + 0xb]
mov byte [esi + 9], al
mov ebx, dword [esp + 0x60]
mov ax, word [ebx]
and ax, 0x807f
or ax, 0x300
mov word [ebx], ax
jmp 0x431cec
cmp eax, 6
jne 0x431c8c
mov esi, dword [esp + 0x75]
mov eax, esi
mov ebx, 0x543684
mov ecx, 0xa
call fcn.0042f5a4
mov byte [esi + 0xa], 0x3a
mov byte [esi + 0xb], 0x13
mov byte [esi + 0xe], 0x30
mov al, byte [esi + 0xe]
mov byte [esi + 0xc], al
mov byte [esi + 0xf], 0xd
mov al, byte [esi + 0xf]
mov byte [esi + 0xd], al
mov byte [esi + 0x10], 0x58
mov byte [esi + 0x11], 0x14
mov byte [esi + 0x12], 0x4d
mov byte [esi + 0x13], 0
mov ebx, dword [esp + 0x60]
mov ax, word [ebx]
and ax, 0x807f
or ax, 0x500
mov word [ebx], ax
jmp 0x431cec
cmp eax, 7
je 0x431c9a
cmp eax, 8
jne 0x432acf
mov al, byte [ecx]
and al, 0x40
shr al, 6
movzx esi, al
cmp byte [ecx + 5], 7
jne 0x431cc7
mov eax, ecx
mov ebx, 0x543513
mov ecx, 0x1c
call fcn.0042f617
jmp 0x431cd8
cmp edi, 0
jne 0x431cf1
jmp 0x432ad6
mov eax, ecx
mov ebx, 0x54352f
mov ecx, 0x24
call fcn.0042f617
mov ebx, dword [esp + 0x60]
mov cl, byte [ebx]
and cl, 0xbf
mov eax, esi
shl al, 6
and al, 0x40
or cl, al
mov byte [ebx], cl
cmp dl, 0
je 0x431cbd
mov dword [esp + 0xb4], 0
mov eax, dword [esp + 0xb4]
mov cx, word [ebx]
and cx, 0x7f80
shr cx, 7
movzx ecx, cx
cmp eax, ecx
jae 0x432ad6
mov eax, dword [esp + 0xb4]
movzx eax, byte [ebx + eax*2 + 7]
cmp eax, 0x13
jne 0x431d3f
cmp dl, 0
je 0x431d64
mov ecx, dword [esp + 0xb4]
mov al, dl
mov byte [ebx + ecx*2 + 6], al
jmp 0x431d64
cmp eax, 0xb
je 0x431d4e
cmp eax, 0xc
je 0x431d4e
cmp eax, 0xd
jne 0x431d64
cmp edi, 0
je 0x431d64
mov ecx, dword [esp + 0xb4]
mov al, byte [edi + 0x70a5a4]
mov byte [ebx + ecx*2 + 6], al
inc dword [esp + 0xb4]
jmp 0x431cfc
cmp edi, 0x6e
pushfd
lea edi, [esp + 0xb4]
mov dword [esp + 0x75], edi
popfd
je 0x431d8c
mov edi, dword [esp + 0x31]
cmp edi, 0x4e
jne 0x43264f
and byte [ecx], 0xf8
mov al, byte [ecx]
and al, 0xc7
or al, 0x18
mov byte [ecx], al
mov dword [esp + 0xb4], 1
mov eax, dword [esp + 0xb4]
cmp byte [eax + 0x70a5a4], 0x24
jne 0x431e3c
mov esi, dword [esp + 0xb4]
mov dword [esp + 0x82], esi
inc dword [esp + 0xb4]
mov eax, dword [esp + 0xb4]
cmp byte [eax + 0x70a5a3], 0x24
jne 0x431e00
mov edi, 1
mov dword [esp + 0x8e], edi
jmp 0x431e65
inc dword [esp + 0xb4]
mov eax, dword [esp + 0xb4]
cmp byte [eax + 0x70a5a3], 0x7e
je 0x431e0f
mov ebx, dword [esp + 0xb4]
mov eax, dword [esp + 0x5c]
cmp ebx, eax
jb 0x431de9
mov edi, dword [esp + 0xb4]
sub edi, esi
sub edi, 2
mov dword [esp + 0x8e], edi
cmp edi, 1
jl 0x432acf
inc esi
mov dword [esp + 0x82], esi
jmp 0x431e65
inc edx
mov dword [esp + 0x57], edx
jmp 0x431ea4
mov eax, dword [esp + 0xb4]
cmp byte [eax + 0x70a5a4], 0x7e
je 0x431db6
mov edi, 0
mov dword [esp + 0x8e], edi
mov esi, edi
mov dword [esp + 0x82], esi
mov eax, dword [esp + 0xb4]
cmp byte [eax + 0x70a5a4], 0x2d
jne 0x431ed7
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x7a], eax
mov ebx, 0
mov dword [esp + 0x7e], ebx
mov eax, dword [esp + 0xb4]
cmp byte [eax + 0x70a5a4], 0x28
jne 0x431ece
mov edx, dword [esp + 0xb4]
mov dword [esp + 0x57], edx
mov eax, dword [esp + 0x5c]
cmp edx, eax
jae 0x431ec5
mov edx, dword [esp + 0x57]
mov eax, edx
cmp byte [eax + 0x70a5a4], 0x29
jne 0x431e35
mov ebx, edx
mov dword [esp + 0x7e], ebx
cmp ebx, 0
je 0x432acf
inc dword [esp + 0xb4]
jmp 0x431ef4
mov eax, dword [esp + 0xb4]
cmp byte [eax + 0x70a5a4], 0x28
je 0x431e75
mov eax, 0
mov dword [esp + 0x7e], eax
mov dword [esp + 0x7a], eax
mov eax, dword [esp + 0xb4]
cmp byte [eax + 0x70a5a4], 0x30
je 0x431f24
mov eax, dword [esp + 0xb4]
cmp byte [eax + 0x70a5a4], 0x5f
je 0x431f24
mov eax, dword [esp + 0xb4]
cmp byte [eax + 0x70a5a4], 0x2a
jne 0x431f39
inc dword [esp + 0xb4]
mov eax, dword [esp + 0xb4]
dec eax
mov dword [esp + 0x3d], eax
jmp 0x431f41
mov dword [esp + 0x3d], 0
mov edx, dword [esp + 0xb4]
mov dword [esp + 0x8a], edx
mov eax, dword [esp + 0xb4]
mov dword [esp + 0xb0], eax
mov ebx, dword [esp + 0x71]
mov eax, 0x70a5a4
call fcn.004312c4
mov dword [esp + 0x4e], eax
mov ebx, dword [esp + 0xb0]
cmp ebx, edx
je 0x432acf
cmp eax, 1
jb 0x432acf
cmp eax, 0xff
ja 0x432acf
mov eax, dword [esp + 0xb0]
mov dword [esp + 0xb4], eax
mov edx, 0
mov dword [esp + 0x41], edx
mov eax, edx
mov dword [esp + 0x52], eax
mov dword [esp + 0x39], eax
mov byte [esp + 0x49], al
mov eax, dword [esp + 0xb4]
mov al, byte [eax + 0x70a5a4]
mov byte [esp + 0x56], al
mov ebx, dword [esp + 0xb4]
mov eax, dword [esp + 0x5c]
cmp ebx, eax
jb 0x43200e
jmp 0x4320ff
mov ebx, dword [esp + 0xb4]
cmp byte [ebx + 0x70a5a4], 0x76
je 0x4320a1
jmp 0x4320aa
mov eax, dword [esp + 0xb4]
cmp byte [eax + 0x70a5a4], 0x7e
je 0x43217c
jmp 0x432207
mov bl, byte [esp + 0x56]
cmp bl, 0x56
je 0x43202f
cmp bl, 0x76
je 0x43202f
cmp bl, 0x2e
je 0x43202f
cmp bl, 0x60
je 0x43202f
cmp bl, 0x5f
jne 0x4320ff
mov ebx, dword [esp + 0xb4]
cmp ebx, eax
jae 0x4320ff
mov ebx, dword [esp + 0xb4]
mov bl, byte [ebx + 0x70a5a5]
cmp bl, 0x76
je 0x432069
cmp bl, 0x56
je 0x432069
cmp bl, 0
je 0x432069
cmp bl, 0x2e
je 0x432069
cmp bl, 0x60
je 0x432069
cmp bl, 0x5f
jne 0x43207c
inc dword [esp + 0xb4]
mov ebx, dword [esp + 0xb4]
dec ebx
mov dword [esp + 0x39], ebx
mov ebx, dword [esp + 0xb4]
mov bl, byte [ebx + 0x70a5a4]
mov byte [esp + 0x49], bl
mov ebx, dword [esp + 0xb4]
cmp byte [ebx + 0x70a5a4], 0x56
jne 0x431fdc
mov edx, 1
mov dword [esp + 0x41], edx
inc dword [esp + 0xb4]
mov ebx, dword [esp + 0xb4]
cmp ebx, eax
ja 0x4320ff
mov eax, dword [esp + 0xb4]
mov dword [esp + 0xb0], eax
mov ebx, dword [esp + 0x71]
mov eax, 0x70a5a4
call fcn.004312c4
mov dword [esp + 0x52], eax
mov ebx, dword [esp + 0xb0]
mov dword [esp + 0xb4], ebx
cmp eax, 0xff
ja 0x432acf
cmp eax, 0
jne 0x4320ff
mov byte [esp + 0x49], 0
mov ebx, dword [esp + 0xb4]
mov eax, dword [esp + 0x5c]
cmp ebx, eax
jae 0x432207
mov eax, dword [esp + 0xb4]
cmp byte [eax + 0x70a5a4], 0x2d
jne 0x432140
cmp dword [esp + 0x7a], 0
jne 0x432acf
inc dword [esp + 0xb4]
mov eax, dword [esp + 0xb4]
dec eax
mov dword [esp + 0x7a], eax
mov eax, dword [esp + 0xb4]
cmp byte [eax + 0x70a5a4], 0x29
jne 0x432168
mov eax, dword [esp + 0xb4]
cmp dword [esp + 0x7e], eax
jne 0x432acf
inc dword [esp + 0xb4]
mov eax, dword [esp + 0xb4]
cmp byte [eax + 0x70a5a4], 0x24
jne 0x431ff5
cmp dword [esp + 0x82], 0
jne 0x432acf
mov esi, dword [esp + 0xb4]
mov dword [esp + 0x82], esi
inc dword [esp + 0xb4]
mov eax, dword [esp + 0xb4]
cmp byte [eax + 0x70a5a3], 0x24
jne 0x4321d4
mov edi, 1
mov dword [esp + 0x8e], edi
jmp 0x432207
inc dword [esp + 0xb4]
mov eax, dword [esp + 0xb4]
cmp byte [eax + 0x70a5a3], 0x7e
je 0x4321e3
mov ebx, dword [esp + 0xb4]
mov eax, dword [esp + 0x5c]
cmp ebx, eax
jb 0x4321bd
mov edi, dword [esp + 0xb4]
sub edi, esi
sub edi, 2
mov dword [esp + 0x8e], edi
cmp edi, 1
jl 0x432acf
inc esi
mov dword [esp + 0x82], esi
mov ebx, dword [esp + 0xb4]
mov eax, dword [esp + 0x5c]
cmp ebx, eax
jb 0x432acf
cmp dword [esp + 0x7a], 0
je 0x432228
mov ebx, 1
jmp 0x43222d
mov ebx, 0
cmp dword [esp + 0x7e], 0
je 0x43223e
mov dword [esp + 0x6d], 1
jmp 0x432246
mov dword [esp + 0x6d], 0
mov eax, dword [esp + 0x52]
cmp eax, 0
je 0x432259
inc eax
mov dword [esp + 0x86], eax
jmp 0x432264
mov dword [esp + 0x86], 0
mov eax, edi
add eax, ebx
mov ebx, dword [esp + 0x6d]
add eax, ebx
add eax, dword [esp + 0x86]
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0xb4]
mov ebx, dword [esp + 0x4e]
cmp eax, ebx
ja 0x432acf
mov dword [esp + 0xb4], 0
mov eax, ebx
dec eax
mov dword [esp + 0x45], eax
cmp esi, 0
je 0x432330
mov ebx, dword [esp + 0x8a]
cmp esi, ebx
jae 0x4322d0
mov esi, dword [esp + 0xb4]
mov dword [esp + 0x4a], esi
mov ebx, dword [esp + 0x8e]
add dword [esp + 0xb4], ebx
jmp 0x432326
mov eax, dword [esp + 0x4e]
sub eax, edi
mov esi, eax
mov dword [esp + 0x4a], esi
dec eax
mov dword [esp + 0x45], eax
jmp 0x432326
mov edi, dword [esp + 0x8e]
dec edi
mov dword [esp + 0x8e], edi
inc edi
cmp edi, 0
jne 0x4322fa
jmp 0x432330
mov ebx, dword [esp + 0x82]
inc ebx
mov dword [esp + 0x82], ebx
mov bl, byte [ebx + 0x70a5a3]
mov edi, dword [esp + 0x75]
mov byte [edi + esi*2], bl
mov esi, dword [esp + 0x4a]
mov ebx, esi
mov byte [edi + ebx*2 + 1], 6
inc esi
mov dword [esp + 0x4a], esi
mov edi, esi
mov ebx, dword [esp + 0x4e]
cmp edi, ebx
jbe 0x4322e3
mov edi, dword [esp + 0x7a]
cmp edi, 0
je 0x432377
mov esi, dword [esp + 0x8a]
cmp edi, esi
jae 0x432355
inc dword [esp + 0xb4]
mov esi, dword [esp + 0xb4]
dec esi
jmp 0x43235d
dec eax
mov dword [esp + 0x45], eax
mov esi, eax
inc esi
mov dword [esp + 0x69], esi
mov al, byte [edi + 0x70a5a4]
mov edi, dword [esp + 0x75]
mov byte [edi + esi*2], al
mov eax, dword [esp + 0x69]
mov byte [edi + eax*2 + 1], 5
mov eax, dword [esp + 0x7e]
cmp eax, 0
je 0x4323a4
mov esi, dword [esp + 0x45]
dec esi
mov dword [esp + 0x45], esi
inc esi
mov dword [esp + 0x65], esi
mov al, byte [eax + 0x70a5a4]
mov edi, dword [esp + 0x75]
mov byte [edi + esi*2], al
mov eax, dword [esp + 0x65]
mov byte [edi + eax*2 + 1], 5
cmp dword [esp + 0x52], 0
je 0x432445
mov al, byte [esp + 0x49]
cmp al, 0
je 0x4323bc
movsx eax, al
jmp 0x4323c1
mov eax, 0x2e
call fcn.004312a0
mov edx, dword [esp + 0x52]
dec edx
mov dword [esp + 0x52], edx
inc edx
cmp edx, 0
je 0x4323f1
mov edx, dword [esp + 0x45]
mov edi, edx
mov esi, dword [esp + 0x75]
mov byte [esi + edi*2], 0x30
mov edi, edx
mov byte [esi + edi*2 + 1], 3
dec edx
mov dword [esp + 0x45], edx
jmp 0x4323c6
mov esi, dword [esp + 0x45]
mov edx, esi
mov dword [esp + 0x92], edx
mov edx, dword [esp + 0x92]
mov edi, dword [esp + 0x75]
mov byte [edi + edx*2], al
mov edx, dword [esp + 0x41]
cmp edx, 0
je 0x43241c
mov eax, 0x16
jmp 0x432421
mov eax, 2
mov dword [esp + 0x96], esi
mov esi, dword [esp + 0x96]
mov edi, dword [esp + 0x75]
mov byte [edi + esi*2 + 1], al
mov eax, dword [esp + 0x45]
cmp eax, 0
je 0x432445
dec eax
mov dword [esp + 0x45], eax
mov esi, dword [esp + 0x45]
mov edi, esi
mov eax, dword [esp + 0x75]
cmp byte [eax + edi*2 + 1], 0
jne 0x432494
mov edi, esi
mov byte [eax + edi*2], 0x30
cmp edx, 0
je 0x432477
mov eax, 4
jmp 0x43247c
cmp byte [eax + 0x70a5a4], 0x2a
jne 0x432473
jmp 0x43249d
mov al, 0
jmp 0x43249f
mov eax, 3
mov edx, esi
mov dword [esp + 0x9a], edx
mov edx, dword [esp + 0x9a]
mov edi, dword [esp + 0x75]
mov byte [edi + edx*2 + 1], al
mov eax, dword [esp + 0x3d]
cmp eax, 0
jne 0x432468
mov al, 0x2c
mov edx, dword [esp + 0x39]
cmp edx, 0
je 0x4324c5
mov al, byte [edx + 0x70a5a4]
jmp 0x43260f
cmp dword [esp + 0x52], 0
je 0x4324bc
jmp 0x4324ce
mov al, byte [esp + 0x49]
jmp 0x43260f
mov ah, byte [esp + 0x49]
cmp ah, 0
jne 0x4324b3
cmp al, 0
je 0x43260f
cmp ah, 0x60
jne 0x432606
mov al, 0x2e
jmp 0x43260f
cmp edx, 3
je 0x4324f9
jmp 0x43258a
cmp dword [esp + 0x3d], 0
jne 0x432528
jmp 0x432566
mov edx, dword [esp + 0xb4]
cmp esi, edx
jle 0x43258a
mov edx, esi
mov dword [esp + 0x9e], edx
mov edi, dword [esp + 0x9e]
mov edx, dword [esp + 0x75]
mov byte [edx + edi*2], al
cmp dword [esp + 0x39], 0
je 0x4324f0
jmp 0x432566
cmp byte [esp + 0x49], 0
jne 0x43255f
cmp byte [esp + 0xa2], 0x20
jne 0x432540
mov eax, 4
jmp 0x432545
mov eax, 3
mov edx, esi
mov dword [esp + 0xa3], edx
mov edx, dword [esp + 0xa3]
mov edi, dword [esp + 0x75]
mov byte [edi + edx*2 + 1], al
jmp 0x43256d
cmp dword [esp + 0x52], 0
jne 0x43252f
mov eax, esi
mov byte [edx + eax*2 + 1], 1
mov edx, 0
mov dword [esp + 0x35], edx
jmp 0x432603
mov al, byte [esp + 0xa2]
cmp al, 0
jne 0x4324e6
mov eax, dword [esp + 0x3d]
cmp eax, 0
je 0x43259c
movsx eax, byte [eax + 0x70a5a4]
jmp 0x4325a1
mov eax, 0x20
mov byte [esp + 0xab], al
cmp al, 0x5f
jne 0x4325b5
mov al, 0x20
mov byte [esp + 0xab], al
mov edx, esi
mov dword [esp + 0xa7], edx
mov edx, dword [esp + 0xa7]
mov edi, dword [esp + 0x75]
mov byte [edi + edx*2], al
cmp byte [esp + 0xab], 0x20
jne 0x4325dd
mov eax, 4
jmp 0x4325e2
mov eax, 3
mov edx, esi
mov dword [esp + 0xac], edx
mov edx, dword [esp + 0xac]
mov edi, dword [esp + 0x75]
mov byte [edi + edx*2 + 1], al
mov edx, dword [esp + 0x35]
inc edx
mov dword [esp + 0x35], edx
dec esi
jmp 0x432625
cmp dword [esp + 0x3d], 0
je 0x43260f
mov al, 0x2a
call fcn.004312a0
mov byte [esp + 0xa2], al
mov edx, 1
mov dword [esp + 0x35], edx
dec esi
mov eax, dword [esp + 0xb4]
cmp esi, eax
jge 0x43257b
mov ax, word [ecx]
and ax, 0x807f
shl bx, 7
and bx, 0x7f80
or ax, bx
mov word [ecx], ax
jmp 0x432ad6
cmp edi, 0x65
je 0x43265d
cmp edi, 0x45
jne 0x4328ad
mov al, byte [ecx]
and al, 0xf8
or al, 1
mov byte [ecx], al
mov al, byte [ecx]
and al, 0xc7
or al, 0x10
mov byte [ecx], al
mov dword [esp + 0xb0], 1
mov ebx, dword [esp + 0x71]
mov eax, 0x70a5a4
call fcn.004312c4
cmp eax, 7
jb 0x432acf
cmp eax, 0xff
ja 0x432acf
mov ebx, dword [esp + 0xb0]
mov dword [esp + 0xb4], ebx
mov bx, word [ecx]
and bx, 0x807f
shl ax, 7
and ax, 0x7f80
or bx, ax
mov word [ecx], bx
mov esi, 0
mov eax, 0
mov dword [esp + 0x2d], eax
mov bl, al
mov edx, dword [esp + 0xb4]
mov eax, dword [esp + 0x5c]
cmp edx, eax
jae 0x43274b
mov ebx, dword [esp + 0xb4]
mov bl, byte [ebx + 0x70a5a5]
cmp bl, 0x2e
je 0x4326f9
cmp bl, 0x60
je 0x4326f9
cmp bl, 0x5f
jne 0x43270c
inc dword [esp + 0xb4]
mov ebx, dword [esp + 0xb4]
dec ebx
mov dword [esp + 0x2d], ebx
mov ebx, dword [esp + 0xb4]
mov bl, byte [ebx + 0x70a5a4]
inc dword [esp + 0xb4]
mov edx, dword [esp + 0xb4]
cmp edx, eax
ja 0x43274b
mov eax, dword [esp + 0xb4]
lea eax, [eax + 0x70a5a4]
call fcn.004c2b08
mov esi, eax
cmp esi, 0xff
ja 0x432acf
cmp esi, 3
jbe 0x43275e
mov eax, esi
dec eax
mov edi, 3
sub edx, edx
div edi
jmp 0x432763
mov eax, 0
mov dword [esp + 0xb4], eax
mov ax, word [ecx]
and ax, 0x7f80
shr ax, 7
movzx edi, ax
mov edx, esi
mov eax, dword [esp + 0xb4]
add edx, eax
mov eax, edx
add eax, 7
cmp edi, eax
jb 0x432acf
cmp edx, 0
je 0x432829
mov edi, edx
mov eax, dword [esp + 0x75]
mov byte [eax + edi*2], 0x30
mov edi, edx
mov byte [eax + edi*2 + 1], 3
mov al, 0x2c
mov edi, dword [esp + 0x2d]
cmp edi, 0
je 0x432806
mov al, byte [edi + 0x70a5a4]
jmp 0x43280d
cmp edx, 1
jg 0x4327c4
jmp 0x4327ea
mov al, byte [esp + 0x64]
mov edi, dword [esp + 0x75]
mov byte [edi + edx*2], al
mov edx, dword [esp + 0x25]
mov eax, edx
mov byte [edi + eax*2 + 1], 1
mov eax, 0
mov dword [esp + 0x29], eax
jmp 0x43281f
cmp eax, 3
je 0x4327bd
mov eax, edx
mov edi, dword [esp + 0x75]
mov byte [edi + eax*2], 0x30
mov eax, edx
mov byte [edi + eax*2 + 1], 4
mov eax, dword [esp + 0x29]
inc eax
mov dword [esp + 0x29], eax
jmp 0x43281f
cmp bl, 0x60
jne 0x43280d
mov al, 0x2e
call fcn.004312a0
mov byte [esp + 0x64], al
mov eax, 1
mov dword [esp + 0x29], eax
dec edx
mov dword [esp + 0x25], edx
cmp edx, 0
jg 0x4327e5
mov eax, dword [esp + 0xb4]
add esi, eax
inc esi
cmp bl, 0
je 0x43283d
movsx eax, bl
jmp 0x432842
mov eax, 0x2e
call fcn.004312a0
mov edx, esi
mov ebx, dword [esp + 0x75]
mov byte [ebx + edx*2], al
mov eax, esi
mov byte [ebx + eax*2 + 1], 2
inc esi
mov eax, esi
mov dx, word [ecx]
and dx, 0x7f80
shr dx, 7
movzx edx, dx
sub edx, 5
cmp eax, edx
jae 0x432880
mov eax, esi
mov byte [ebx + eax*2], 0x30
mov eax, esi
mov byte [ebx + eax*2 + 1], 3
inc esi
jmp 0x432858
mov byte [ebx], 0x2d
mov byte [ebx + 1], 5
mov ax, word [ecx]
and ax, 0x7f80
shr ax, 7
movzx eax, ax
lea eax, [ebx + eax*2 - 0xa]
mov ebx, 0x543698
mov ecx, 0xa
call fcn.0042f5a4
jmp 0x432ad6
cmp edi, 0x6b
pushfd
movsx edx, dl
popfd
je 0x4328c0
cmp edi, 0x4b
jne 0x4329f5
cmp edx, esi
jne 0x432acf
mov eax, dword [esp + 0x5c]
dec eax
cmp eax, 2
jb 0x432acf
mov ecx, dword [esp + 0x60]
mov dl, byte [ecx]
and dl, 0xf8
or dl, 6
mov byte [ecx], dl
and byte [ecx], 0xc7
mov dword [esp + 0xb4], 1
mov esi, 0
mov edx, dword [esp + 0xb4]
cmp edx, eax
jae 0x4329d7
mov edx, esi
mov byte [ebx + edx*2], 0x20
mov edx, dword [esp + 0xb4]
movsx edx, byte [edx + 0x70a5a4]
cmp edx, 0x23
jne 0x432931
mov edx, esi
mov byte [ebx + edx*2], 0x30
mov edx, esi
mov byte [ebx + edx*2 + 1], 3
jmp 0x4329ca
cmp edx, 0x3c
jne 0x432942
mov edx, esi
mov byte [ebx + edx*2 + 1], 4
jmp 0x4329ca
cmp edx, 0x40
jne 0x432950
mov edx, esi
mov byte [ebx + edx*2 + 1], 0xe
jmp 0x4329ca
cmp edx, 0x5e
jne 0x43295e
mov edx, esi
mov byte [ebx + edx*2 + 1], 0xf
jmp 0x4329ca
cmp edx, 0x5f
jne 0x43296c
mov edx, esi
mov byte [ebx + edx*2 + 1], 0x10
jmp 0x4329ca
cmp edx, 0x3f
jne 0x43297a
mov edx, esi
mov byte [ebx + edx*2 + 1], 0x11
jmp 0x4329ca
cmp edx, 0x7c
jne 0x432988
mov edx, esi
mov byte [ebx + edx*2 + 1], 0x17
jmp 0x4329ca
cmp edx, 0x5c
jne 0x4329b1
mov edx, dword [esp + 0xb4]
cmp edx, eax
je 0x4329b1
inc dword [esp + 0xb4]
mov edi, esi
mov edx, dword [esp + 0xb4]
mov dl, byte [edx + 0x70a5a4]
mov byte [ebx + edi*2], dl
mov edi, esi
mov edx, dword [esp + 0xb4]
mov dl, byte [edx + 0x70a5a4]
mov byte [ebx + edi*2], dl
mov edx, esi
mov byte [ebx + edx*2 + 1], 0
inc dword [esp + 0xb4]
inc esi
jmp 0x4328f7
mov ax, word [ecx]
and ax, 0x807f
mov bx, si
shl bx, 7
and bx, 0x7f80
or ax, bx
mov word [ecx], ax
jmp 0x432ad6
cmp edi, 0x70
je 0x432a03
cmp edi, 0x50
jne 0x432acf
cmp edx, esi
jne 0x432acf
dec eax
mov dword [esp + 0x21], eax
cmp eax, 2
jb 0x432acf
mov eax, 0
mov dword [esp + 0xb4], 0
mov esi, dword [esp + 0xb4]
mov edx, dword [esp + 0x21]
cmp esi, edx
jae 0x432aa2
mov edx, dword [esp + 0xb4]
mov dl, byte [edx + 0x70a5a5]
cmp dl, 0x23
jne 0x432a64
mov edx, dword [esp + 0xb4]
mov byte [ebx + edx*2], 0x30
mov edx, dword [esp + 0xb4]
mov byte [ebx + edx*2 + 1], 3
inc eax
jmp 0x432a99
cmp dl, 0x3c
jne 0x432a83
mov edx, dword [esp + 0xb4]
mov byte [ebx + edx*2], 0x20
mov edx, dword [esp + 0xb4]
mov byte [ebx + edx*2 + 1], 4
inc eax
jmp 0x432a99
mov esi, dword [esp + 0xb4]
mov byte [ebx + esi*2], dl
mov edx, dword [esp + 0xb4]
mov byte [ebx + edx*2 + 1], 0
inc dword [esp + 0xb4]
jmp 0x432a29
mov al, byte [ecx]
and al, 0xf8
or al, 4
mov byte [ecx], al
mov al, byte [ecx]
and al, 0xc7
or al, 0x18
mov byte [ecx], al
mov ax, word [ecx]
and ax, 0x807f
mov bx, dx
dec bx
shl bx, 7
and bx, 0x7f80
or ax, bx
mov word [ecx], ax
jmp 0x432ad6
mov eax, ecx
call fcn.00432ae0
popal
add esp, 0x98
ret