Function at 0x43a2a4
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe0
cmp dword [0x45c3d4], 0
je 0x43b703
push dword [ebp + 8]
call fcn.00402874
pop ecx
mov eax, dword [ebp + 8]
cmp byte [eax], 0
je 0x43b703
mov edx, dword [ebp + 8]
movsx ecx, byte [edx]
cmp ecx, 0x25
jne 0x43a456
mov eax, dword [ebp + 8]
mov byte [eax], 0x55
mov edx, dword [ebp + 8]
mov byte [edx + 1], 0x55
mov ecx, dword [ebp + 8]
mov byte [ecx + 2], 0x4d
mov eax, dword [ebp + 8]
mov byte [eax + 3], 0x50
mov edx, dword [ebp + 8]
mov byte [edx + 4], 0x68
mov ecx, dword [ebp + 8]
mov byte [ecx + 5], 0x33
mov eax, dword [ebp + 8]
mov byte [eax + 6], 0x20
mov edx, dword [ebp + 8]
mov byte [edx + 7], 0x10
mov ecx, dword [ebp + 8]
mov byte [ecx + 8], 3
mov eax, dword [ebp + 8]
mov byte [eax + 9], 0xe5
mov edx, dword [ebp + 8]
mov byte [edx + 0xa], 0
mov ecx, dword [ebp + 8]
mov byte [ecx + 0xb], 0
mov eax, dword [ebp + 8]
mov byte [eax + 0xc], 0
mov edx, dword [ebp + 8]
mov byte [edx + 0xd], 0
mov ecx, dword [ebp + 8]
mov byte [ecx + 0xe], 0
mov eax, dword [ebp + 8]
mov byte [eax + 0xf], 0
mov edx, dword [ebp + 8]
mov byte [edx + 0x10], 0
mov ecx, dword [ebp + 8]
mov byte [ecx + 0x11], 0
mov eax, dword [ebp + 8]
mov byte [eax + 0x12], 9
mov edx, dword [ebp + 8]
mov byte [edx + 0x13], 0
mov ecx, dword [ebp + 8]
mov byte [ecx + 0x14], 0
mov eax, dword [ebp + 8]
mov byte [eax + 0x15], 0xa
mov edx, dword [ebp + 8]
mov byte [edx + 0x16], 0
mov ecx, dword [ebp + 8]
mov byte [ecx + 0x17], 0
mov eax, dword [ebp + 8]
mov byte [eax + 0x18], 0
mov edx, dword [ebp + 8]
mov byte [edx + 0x19], 0
mov ecx, dword [ebp + 8]
mov byte [ecx + 0x1a], 0
mov eax, dword [ebp + 8]
mov byte [eax + 0x1b], 0
mov edx, dword [ebp + 8]
mov byte [edx + 0x1c], 0
mov ecx, dword [ebp + 8]
mov byte [ecx + 0x1d], 0
mov eax, dword [ebp + 8]
mov byte [eax + 0x1e], 0
mov edx, dword [ebp + 8]
mov byte [edx + 0x1f], 0
mov ecx, dword [ebp + 8]
mov byte [ecx + 0x20], 0
mov eax, dword [ebp + 8]
mov byte [eax + 0x21], 0
mov edx, dword [ebp + 8]
mov byte [edx + 0x22], 0
mov ecx, dword [ebp + 8]
mov byte [ecx + 0x23], 0
mov eax, dword [ebp + 8]
mov byte [eax + 0x24], 0
mov edx, dword [ebp + 8]
mov byte [edx + 0x25], 0xc
mov ecx, dword [ebp + 8]
mov byte [ecx + 0x26], 0xd
mov eax, dword [ebp + 8]
mov byte [eax + 0x27], 0x26
mov edx, dword [ebp + 8]
mov byte [edx + 0x28], 0xc
mov ecx, dword [ebp + 8]
mov byte [ecx + 0x29], 0
mov eax, dword [ebp + 8]
mov byte [eax + 0x2a], 0
mov edx, dword [ebp + 8]
mov byte [edx + 0x2b], 2
mov ecx, dword [ebp + 8]
mov byte [ecx + 0x2c], 0
mov eax, dword [ebp + 8]
mov byte [eax + 0x2d], 0
mov edx, dword [ebp + 8]
mov byte [edx + 0x2e], 0
mov ecx, dword [ebp + 8]
mov byte [ecx + 0x2f], 0
mov eax, dword [ebp + 8]
mov byte [eax + 0x30], 0
mov edx, dword [ebp + 8]
mov byte [edx + 0x31], 0
mov ecx, dword [ebp + 8]
mov byte [ecx + 0x32], 0xb0
mov dword [ebp - 4], 0x33
push dword [ebp - 4]
push dword [ebp + 8]
call fcn.0043fd18
jmp 0x43b703
mov eax, dword [ebp + 8]
movsx edx, byte [eax]
cmp edx, 0x7e
jne 0x43a493
mov ecx, dword [ebp + 8]
inc ecx
push ecx
call fcn.004033f4
pop ecx
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 1
jl 0x43b703
cmp dword [ebp - 4], 3
jg 0x43b703
mov eax, dword [ebp - 4]
dec eax
push eax
call fcn.00431fc4
pop ecx
jmp 0x43b703
mov edx, dword [ebp + 8]
movsx ecx, byte [edx]
cmp ecx, 0x23
je 0x43a4c3
mov eax, dword [ebp + 8]
movsx edx, byte [eax]
cmp edx, 0x24
je 0x43a4c3
mov ecx, dword [ebp + 8]
movsx eax, byte [ecx]
cmp eax, 0x5e
je 0x43a4c3
mov edx, dword [ebp + 8]
movsx ecx, byte [edx]
cmp ecx, 0x21
jne 0x43b6e9
mov eax, dword [ebp + 8]
movsx edx, byte [eax]
cmp edx, 0x5e
jne 0x43a4dc
xor ecx, ecx
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x14], 3
jmp 0x43a520
mov eax, dword [ebp + 8]
movsx edx, byte [eax]
cmp edx, 0x24
jne 0x43a4f7
mov dword [ebp - 0x18], 1
mov dword [ebp - 0x14], 3
jmp 0x43a520
mov ecx, dword [ebp + 8]
movsx eax, byte [ecx]
cmp eax, 0x21
jne 0x43a512
mov dword [ebp - 0x18], 3
mov dword [ebp - 0x14], 5
jmp 0x43a520
mov dword [ebp - 0x18], 2
mov dword [ebp - 0x14], 5
add dword [ebp - 0x14], 3
mov edx, dword [ebp + 8]
inc edx
push edx
call fcn.004033f4
pop ecx
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0xffffd8f0
jle 0x43a544
cmp dword [ebp - 4], 0x2710
jle 0x43a54b
mov dword [ebp - 4], 0x64
mov ecx, dword [ebp + 8]
cmp byte [ecx + 1], 0
je 0x43a582
mov eax, dword [ebp + 8]
movsx edx, byte [eax + 2]
push edx
call fcn.00445f24
pop ecx
test eax, eax
je 0x43a582
mov ecx, dword [ebp + 8]
movsx eax, byte [ecx + 1]
mov dword [ebp - 8], eax
mov edx, dword [ebp + 8]
add edx, 2
push edx
call fcn.004033f4
pop ecx
mov dword [ebp - 0xc], eax
jmp 0x43a587
xor ecx, ecx
mov dword [ebp - 8], ecx
mov eax, dword [ebp + 8]
mov byte [eax], 0x55
mov edx, dword [ebp + 8]
mov byte [edx + 1], 0x51
mov ecx, dword [ebp + 8]
mov byte [ecx + 2], 0x55
cmp dword [ebp - 0x18], 0
jne 0x43a5b8
mov eax, dword [ebp + 8]
mov byte [eax + 3], 0x4d
mov edx, dword [ebp + 8]
mov byte [edx + 4], 0x50
mov ecx, dword [ebp + 8]
mov byte [ecx + 5], 0x54
jmp 0x43a623
cmp dword [ebp - 0x18], 1
jne 0x43a5d5
mov eax, dword [ebp + 8]
mov byte [eax + 3], 0x4d
mov edx, dword [ebp + 8]
mov byte [edx + 4], 0x50
mov ecx, dword [ebp + 8]
mov byte [ecx + 5], 0x74
jmp 0x43a623
cmp dword [ebp - 0x18], 3
jne 0x43a600
mov eax, dword [ebp + 8]
mov byte [eax + 3], 0x4d
mov edx, dword [ebp + 8]
mov byte [edx + 4], 0x50
mov ecx, dword [ebp + 8]
mov byte [ecx + 5], 0x68
mov eax, dword [ebp + 8]
mov byte [eax + 6], 0x2a
mov edx, dword [ebp + 8]
mov byte [edx + 7], 0x6c
jmp 0x43a623
mov ecx, dword [ebp + 8]
mov byte [ecx + 3], 0x4d
mov eax, dword [ebp + 8]
mov byte [eax + 4], 0x70
mov edx, dword [ebp + 8]
mov byte [edx + 5], 0x74
mov ecx, dword [ebp + 8]
mov byte [ecx + 6], 0x2a
mov eax, dword [ebp + 8]
mov byte [eax + 7], 0x6c
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp + 8]
mov byte [ecx + edx], 2
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp + 8]
mov byte [edx + eax + 1], 0x80
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp + 8]
mov byte [eax + ecx + 2], 5
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp + 8]
mov byte [ecx + edx + 3], 0x50
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp + 8]
mov byte [edx + eax + 4], 0
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp + 8]
mov byte [eax + ecx + 5], 0xe5
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp + 8]
mov byte [ecx + edx + 6], 0x10
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp + 8]
mov byte [edx + eax + 7], 0
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp + 8]
mov byte [eax + ecx + 8], 1
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp + 8]
mov byte [ecx + edx + 9], 0x30
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp + 8]
mov byte [edx + eax + 0xa], 0
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp + 8]
mov byte [eax + ecx + 0xb], 0x2e
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp + 8]
mov byte [ecx + edx + 0xc], 0xb0
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp + 8]
mov byte [edx + eax + 0xd], 1
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp + 8]
mov byte [eax + ecx + 0xe], 0
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp + 8]
mov byte [ecx + edx + 0xf], 0
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp + 8]
mov byte [edx + eax + 0x10], 0
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp + 8]
mov byte [eax + ecx + 0x11], 0
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp + 8]
mov byte [ecx + edx + 0x12], 0x3e
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp + 8]
mov byte [edx + eax + 0x13], 0
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp + 8]
mov byte [eax + ecx + 0x14], 1
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp + 8]
mov byte [ecx + edx + 0x15], 0
cmp dword [ebp - 0x18], 3
jne 0x43a74a
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp + 8]
mov byte [edx + eax + 0x16], 0x78
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp + 8]
mov byte [eax + ecx + 0x16], 0x78
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp + 8]
mov byte [ecx + edx + 0x16], 0x78
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp + 8]
mov byte [edx + eax + 0x16], 0x78
add dword [ebp - 0x14], 8
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp + 8]
mov byte [eax + ecx + 0x16], 0
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp + 8]
mov byte [ecx + edx + 0x17], 1
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp + 8]
mov byte [edx + eax + 0x18], 1
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp + 8]
mov byte [eax + ecx + 0x19], 0
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp + 8]
mov byte [ecx + edx + 0x1a], 1
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp + 8]
mov byte [edx + eax + 0x1b], 5
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp + 8]
mov byte [eax + ecx + 0x1c], 0
cmp dword [ebp - 0x18], 3
jne 0x43af7c
sub dword [ebp - 0x14], 8
mov edx, dword [ebp + 8]
add edx, dword [ebp - 0x14]
mov dword [ebp - 0x20], edx
cmp dword [0x45dfe4], 0
jne 0x43a7c1
cmp dword [ebp - 8], 0x21
jne 0x43a90f
xor ecx, ecx
mov dword [0x45dfe4], ecx
push 0x2c
push dword [ebp - 0x20]
push 0x187c072
call fcn.004413d8
add esp, 0xc
and byte [0x187c090], 0xfe
and byte [0x187c093], 0xfc
and byte [0x187c091], 0xfd
and byte [0x187c091], 0xf7
or byte [0x187c091], 1
and byte [0x187c091], 0xdf
or byte [0x187c091], 0x10
or byte [0x187c092], 0x20
mov byte [0x187c094], 1
mov al, byte [0x187c090]
and al, 3
or al, 0x14
mov byte [0x187c090], al
and byte [0x187c091], 0xf7
and byte [0x187c092], 0xfd
and byte [0x187c092], 0xfb
mov word [0x187c086], 0x6f
mov word [0x187c088], 0x70
mov word [0x187c08a], 0x71
mov word [0x187c08c], 0x1f4
mov word [0x187c08e], 0x1f5
mov dx, word [0x187c080]
and dx, 0xc000
or dx, 0x22b
mov word [0x187c080], dx
mov cx, word [0x187c082]
and cx, 0xc000
or cx, 0x613
mov word [0x187c082], cx
mov ax, word [0x187c084]
and ax, 0xc000
or ax, 0x3cbe
mov word [0x187c084], ax
mov dx, word [0x187c074]
and dx, 0xf000
or dx, 0xe6
mov word [0x187c074], dx
and byte [0x187c076], 0
mov cl, byte [0x187c075]
and cl, 0xf
or cl, 0
mov byte [0x187c075], cl
and byte [0x187c078], 0xf0
mov al, byte [0x187c077]
and al, 0
or al, 0xfa
mov byte [0x187c077], al
mov word [0x187c097], 0x2710
mov word [0x187c099], 0x22b
mov word [0x187c09b], 0xfc18
cmp dword [ebp - 8], 0x58
jne 0x43aa52
mov byte [0x187c072], 0xab
mov byte [0x187c073], 0x21
mov byte [0x187c074], 0xdf
mov byte [0x187c075], 0
mov byte [0x187c076], 0xe
mov byte [0x187c077], 0xdf
mov byte [0x187c078], 0
mov byte [0x187c079], 0
mov byte [0x187c07a], 0
mov byte [0x187c07b], 0
mov byte [0x187c07c], 0
mov byte [0x187c07d], 2
mov byte [0x187c07e], 0
mov byte [0x187c07f], 1
mov byte [0x187c080], 1
mov byte [0x187c081], 0
mov byte [0x187c082], 1
mov byte [0x187c083], 0
mov byte [0x187c084], 1
mov byte [0x187c085], 0
mov byte [0x187c086], 1
mov byte [0x187c087], 0
mov byte [0x187c088], 1
mov byte [0x187c089], 0
mov byte [0x187c08a], 0
mov byte [0x187c08b], 0
mov byte [0x187c08c], 0xc6
mov byte [0x187c08d], 0
mov byte [0x187c08e], 0
mov byte [0x187c08f], 0
mov byte [0x187c090], 0x60
mov byte [0x187c091], 0x14
mov byte [0x187c092], 0x27
mov byte [0x187c093], 0xc
mov byte [0x187c094], 0x24
mov byte [0x187c095], 1
mov byte [0x187c096], 3
mov byte [0x187c097], 0
mov byte [0x187c098], 0
mov byte [0x187c099], 0
mov byte [0x187c09a], 0
mov byte [0x187c09b], 0
mov byte [0x187c09c], 0
mov byte [0x187c09d], 0xd0
jmp 0x43b703
cmp dword [ebp - 8], 0x41
jne 0x43aa74
mov dl, byte [ebp - 0xc]
and dl, 3
mov cl, byte [0x187c093]
and cl, 0xfc
or dl, cl
mov byte [0x187c093], dl
jmp 0x43b703
cmp dword [ebp - 8], 0x53
jne 0x43aa94
mov al, byte [ebp - 0xc]
and al, 1
mov dl, byte [0x187c090]
and dl, 0xfe
or al, dl
mov byte [0x187c090], al
jmp 0x43b703
cmp dword [ebp - 8], 0x44
jne 0x43aab6
mov cl, byte [ebp - 0xc]
and cl, 1
add ecx, ecx
mov al, byte [0x187c091]
and al, 0xfd
or cl, al
mov byte [0x187c091], cl
jmp 0x43b703
cmp dword [ebp - 8], 0x4c
je 0x43b703
cmp dword [ebp - 8], 0x42
jne 0x43aae2
mov dl, byte [ebp - 0xc]
and dl, 1
mov cl, byte [0x187c091]
and cl, 0xfe
or dl, cl
mov byte [0x187c091], dl
jmp 0x43b703
cmp dword [ebp - 8], 0x40
jne 0x43af5b
and byte [0x187c091], 0xdf
or byte [0x187c091], 0x10
or byte [0x187c092], 0x20
mov byte [0x187c094], 1
and byte [0x187c092], 0xef
cmp dword [ebp - 0xc], 1
jne 0x43ab31
mov al, byte [0x187c090]
and al, 3
or al, 0x14
mov byte [0x187c090], al
mov word [0x187c086], 0x457
jmp 0x43af65
cmp dword [ebp - 0xc], 2
jne 0x43ab57
mov dl, byte [0x187c090]
and dl, 3
or dl, 0x18
mov byte [0x187c090], dl
mov word [0x187c088], 0x458
jmp 0x43af65
cmp dword [ebp - 0xc], 0x15
jne 0x43ab7d
mov cl, byte [0x187c090]
and cl, 3
or cl, 0x70
mov byte [0x187c090], cl
mov word [0x187c088], 0x459
jmp 0x43af65
cmp dword [ebp - 0xc], 3
jne 0x43ab9f
mov al, byte [0x187c090]
and al, 3
or al, 0x1c
mov byte [0x187c090], al
mov word [0x187c08c], 0x1f4
jmp 0x43af65
cmp dword [ebp - 0xc], 0x1f
jne 0x43abc5
mov dl, byte [0x187c090]
and dl, 3
or dl, 0x1c
mov byte [0x187c090], dl
mov word [0x187c08c], 0x258
jmp 0x43af65
cmp dword [ebp - 0xc], 0x20
jne 0x43abeb
mov cl, byte [0x187c090]
and cl, 3
or cl, 0x1c
mov byte [0x187c090], cl
mov word [0x187c08c], 0x190
jmp 0x43af65
cmp dword [ebp - 0xc], 0x21
jne 0x43ac0d
mov al, byte [0x187c090]
and al, 3
or al, 0x1c
mov byte [0x187c090], al
mov word [0x187c08c], 0xa
jmp 0x43af65
cmp dword [ebp - 0xc], 0x22
jne 0x43ac33
mov dl, byte [0x187c090]
and dl, 3
or dl, 0x68
mov byte [0x187c090], dl
mov word [0x187c08e], 0x22b
jmp 0x43af65
cmp dword [ebp - 0xc], 4
jne 0x43ac64
mov cl, byte [0x187c090]
and cl, 3
or cl, 0x20
mov byte [0x187c090], cl
mov ax, word [0x187c07e]
and ax, 0xf
or ax, 0x4c60
mov word [0x187c07e], ax
jmp 0x43af65
cmp dword [ebp - 0xc], 5
jne 0x43ac99
mov dl, byte [0x187c090]
and dl, 3
or dl, 0x24
mov byte [0x187c090], dl
mov cx, word [0x187c07e]
and cx, 0xf
or cx, 0x5350
mov word [0x187c07e], cx
jmp 0x43af65
cmp dword [ebp - 0xc], 6
jne 0x43acd6
mov al, byte [0x187c090]
and al, 3
or al, 0x30
mov byte [0x187c090], al
mov dl, byte [0x187c07d]
and dl, 0
or dl, 0xce
mov byte [0x187c07d], dl
mov cl, byte [0x187c07e]
and cl, 0xf0
or cl, 4
mov byte [0x187c07e], cl
jmp 0x43af65
cmp dword [ebp - 0xc], 7
jne 0x43ad13
mov al, byte [0x187c090]
and al, 3
or al, 0x34
mov byte [0x187c090], al
mov dl, byte [0x187c07d]
and dl, 0
or dl, 0x3c
mov byte [0x187c07d], dl
mov cl, byte [0x187c07e]
and cl, 0xf0
or cl, 5
mov byte [0x187c07e], cl
jmp 0x43af65
cmp dword [ebp - 0xc], 0x65
jne 0x43ad6c
mov al, byte [0x187c090]
and al, 3
or al, 0x30
mov byte [0x187c090], al
mov dl, byte [0x187c07d]
and dl, 0
or dl, 0xb0
mov byte [0x187c07d], dl
mov cl, byte [0x187c07e]
and cl, 0xf0
or cl, 4
mov byte [0x187c07e], cl
or byte [0x187c092], 0x40
mov al, byte [0x187c093]
and al, 0xfc
or al, 1
mov byte [0x187c093], al
or byte [0x187c091], 2
jmp 0x43af65
cmp dword [ebp - 0xc], 0x66
jne 0x43adc9
mov dl, byte [0x187c090]
and dl, 3
or dl, 0x30
mov byte [0x187c090], dl
mov cl, byte [0x187c07d]
and cl, 0
or cl, 0x14
mov byte [0x187c07d], cl
mov al, byte [0x187c07e]
and al, 0xf0
or al, 5
mov byte [0x187c07e], al
or byte [0x187c092], 0x40
mov dl, byte [0x187c093]
and dl, 0xfc
or dl, 1
mov byte [0x187c093], dl
or byte [0x187c091], 2
jmp 0x43af65
cmp dword [ebp - 0xc], 0x67
jne 0x43ae26
mov cl, byte [0x187c090]
and cl, 3
or cl, 0x30
mov byte [0x187c090], cl
mov al, byte [0x187c07d]
and al, 0
or al, 0x4c
mov byte [0x187c07d], al
mov dl, byte [0x187c07e]
and dl, 0xf0
or dl, 4
mov byte [0x187c07e], dl
or byte [0x187c092], 0x40
mov cl, byte [0x187c093]
and cl, 0xfc
or cl, 1
mov byte [0x187c093], cl
or byte [0x187c091], 2
jmp 0x43af65
cmp dword [ebp - 0xc], 0x68
jne 0x43ae7f
mov al, byte [0x187c090]
and al, 3
or al, 0x30
mov byte [0x187c090], al
mov dl, byte [0x187c07d]
and dl, 0
or dl, 0x70
mov byte [0x187c07d], dl
and byte [0x187c07e], 0xf0
or byte [0x187c092], 0x40
or byte [0x187c092], 0x10
mov cl, byte [0x187c093]
and cl, 0xfc
or cl, 1
mov byte [0x187c093], cl
or byte [0x187c091], 2
jmp 0x43af65
cmp dword [ebp - 0xc], 0xc9
jne 0x43aeb6
mov al, byte [0x187c093]
and al, 0xfc
or al, 2
mov byte [0x187c093], al
mov dl, byte [0x187c090]
and dl, 3
or dl, 0x14
mov byte [0x187c090], dl
mov word [0x187c086], 0x4bb
jmp 0x43af65
cmp dword [ebp - 0xc], 0xca
jne 0x43aef1
mov cl, byte [0x187c093]
and cl, 0xfc
or cl, 2
mov byte [0x187c093], cl
mov al, byte [0x187c090]
and al, 3
or al, 0x1c
mov byte [0x187c090], al
mov word [0x187c08c], 0x5dc
or byte [0x187c092], 0x10
jmp 0x43af65
cmp dword [ebp - 0xc], 0xcb
jne 0x43af29
mov dl, byte [0x187c093]
and dl, 0xfc
or dl, 2
mov byte [0x187c093], dl
mov cl, byte [0x187c090]
and cl, 3
or cl, 0x14
mov byte [0x187c090], cl
mov word [0x187c086], 0x51f
jmp 0x43af65
cmp dword [ebp - 0xc], 0x12c
jl 0x43af65
cmp dword [ebp - 0xc], 0x12f
jg 0x43af65
mov al, byte [ebp - 0xc]
add al, 0xd4
and al, 3
mov dl, byte [0x187c093]
and dl, 0xfc
or al, dl
mov byte [0x187c093], al
or byte [0x187c073], 0x40
jmp 0x43af65
cmp dword [ebp - 8], 0
jne 0x43b703
push 0x2c
push 0x187c072
push dword [ebp - 0x20]
call fcn.004413d8
add esp, 0xc
jmp 0x43b67e
mov ecx, dword [ebp + 8]
add ecx, dword [ebp - 0x14]
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x1c]
mov dl, byte [eax + 0x16]
and dl, 3
or dl, 0x14
mov ecx, dword [ebp - 0x1c]
mov byte [ecx + 0x16], dl
cmp dword [ebp - 4], 0
jl 0x43afb1
mov ax, word [ebp - 4]
mov edx, dword [ebp - 0x1c]
mov word [edx + 0x14], ax
mov ecx, dword [ebp - 0x1c]
mov byte [ecx + 0x1a], 1
jmp 0x43afc6
mov ax, word [ebp - 4]
neg ax
mov edx, dword [ebp - 0x1c]
mov word [edx + 0x14], ax
mov ecx, dword [ebp - 0x1c]
mov byte [ecx + 0x1a], 0
mov eax, dword [ebp - 0x1c]
or byte [eax + 0x18], 0x20
mov edx, dword [ebp - 0x1c]
or byte [edx + 0x17], 0x10
mov ecx, dword [ebp - 0x1c]
mov ax, word [ecx + 0xe]
and ax, 0xc000
or ax, 0x22b
mov edx, dword [ebp - 0x1c]
mov word [edx + 0xe], ax
mov ecx, dword [ebp - 0x1c]
mov ax, word [ecx + 0x10]
and ax, 0xc000
or ax, 0x613
mov edx, dword [ebp - 0x1c]
mov word [edx + 0x10], ax
mov ecx, dword [ebp - 0x1c]
mov ax, word [ecx + 0x12]
and ax, 0xc000
or ax, 0x3cbe
mov edx, dword [ebp - 0x1c]
mov word [edx + 0x12], ax
mov ecx, dword [ebp - 0x1c]
mov word [ecx + 0x1d], 0x2710
mov eax, dword [ebp - 0x1c]
mov word [eax + 0x1f], 0x7f10
mov edx, dword [ebp - 0x1c]
mov word [edx + 0x21], 0xfc18
cmp dword [ebp - 8], 0x4b
jne 0x43b049
mov cl, byte [ebp - 0xc]
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp + 8]
mov byte [edx + eax + 0x16], cl
jmp 0x43b67e
cmp dword [ebp - 8], 0x42
jne 0x43b061
mov cl, byte [ebp - 0xc]
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp + 8]
mov byte [edx + eax + 0x17], cl
jmp 0x43b67e
cmp dword [ebp - 8], 0x53
jne 0x43b079
mov cl, byte [ebp - 0xc]
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp + 8]
mov byte [edx + eax + 0x18], cl
jmp 0x43b67e
cmp dword [ebp - 8], 0x41
jne 0x43b0f3
cmp dword [ebp - 0xc], 0xa
jl 0x43b0e1
mov ecx, dword [ebp - 0x1c]
mov ax, word [ecx + 0xe]
and ax, 0xc000
or ax, 0x14d
mov edx, dword [ebp - 0x1c]
mov word [edx + 0xe], ax
mov ecx, dword [ebp - 0x1c]
mov ax, word [ecx + 0x10]
and ax, 0xc000
or ax, 0x535
mov edx, dword [ebp - 0x1c]
mov word [edx + 0x10], ax
mov ecx, dword [ebp - 0x1c]
mov ax, word [ecx + 0x12]
and ax, 0xc000
or ax, 0x3412
mov edx, dword [ebp - 0x1c]
mov word [edx + 0x12], ax
mov ecx, dword [ebp - 0x1c]
mov ax, word [ecx + 2]
and ax, 0xf000
or ax, 0xc9
mov edx, dword [ebp - 0x1c]
mov word [edx + 2], ax
sub dword [ebp - 0xc], 0xa
mov cl, byte [ebp - 0xc]
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp + 8]
mov byte [edx + eax + 0x19], cl
jmp 0x43b67e
cmp dword [ebp - 8], 0x43
jne 0x43b200
mov ecx, dword [ebp - 0x1c]
mov al, byte [ecx + 0x16]
and al, 3
or al, 0x30
mov edx, dword [ebp - 0x1c]
mov byte [edx + 0x16], al
mov ecx, dword [ebp - 0x1c]
and byte [ecx + 0x17], 0xfd
mov eax, dword [ebp - 0x1c]
and byte [eax + 0x17], 0xfb
mov edx, dword [ebp - 0x1c]
and byte [edx + 0x19], 0xfc
mov cx, word [ebp - 0xc]
add cx, 0x14d
and cx, 0x3fff
mov eax, dword [ebp - 0x1c]
mov dx, word [eax + 0xe]
and dx, 0xc000
or cx, dx
mov eax, dword [ebp - 0x1c]
mov word [eax + 0xe], cx
mov dx, word [ebp - 0xc]
add dx, 0x535
and dx, 0x3fff
mov ecx, dword [ebp - 0x1c]
mov ax, word [ecx + 0x10]
and ax, 0xc000
or dx, ax
mov ecx, dword [ebp - 0x1c]
mov word [ecx + 0x10], dx
mov dx, word [ebp - 0xc]
add dx, 0x3412
and dx, 0x3fff
mov eax, dword [ebp - 0x1c]
mov cx, word [eax + 0x12]
and cx, 0xc000
or dx, cx
mov eax, dword [ebp - 0x1c]
mov word [eax + 0x12], dx
mov dx, word [ebp - 0xc]
add dx, 0xc9
and dx, 0xfff
mov ecx, dword [ebp - 0x1c]
mov ax, word [ecx + 2]
and ax, 0xf000
or dx, ax
mov ecx, dword [ebp - 0x1c]
mov word [ecx + 2], dx
mov dx, word [ebp - 0xc]
add dx, 0xca
and dx, 0xfff
shl edx, 4
mov eax, dword [ebp - 0x1c]
mov cx, word [eax + 6]
and cx, 0xf
or dx, cx
mov eax, dword [ebp - 0x1c]
mov word [eax + 6], dx
mov edx, dword [ebp - 0x1c]
mov cl, byte [edx + 0xb]
and cl, 0
or cl, 0xe8
mov eax, dword [ebp - 0x1c]
mov byte [eax + 0xb], cl
mov edx, dword [ebp - 0x1c]
mov cl, byte [edx + 0xc]
and cl, 0xf0
or cl, 3
mov eax, dword [ebp - 0x1c]
mov byte [eax + 0xc], cl
jmp 0x43b67e
cmp dword [ebp - 8], 0x44
jne 0x43b30a
mov edx, dword [ebp - 0x1c]
mov cl, byte [edx + 0x16]
and cl, 3
or cl, 0x30
mov eax, dword [ebp - 0x1c]
mov byte [eax + 0x16], cl
mov edx, dword [ebp - 0x1c]
or byte [edx + 0x17], 2
mov ecx, dword [ebp - 0x1c]
and byte [ecx + 0x17], 0xfb
mov eax, dword [ebp - 0x1c]
and byte [eax + 0x19], 0xfc
mov dx, word [ebp - 0xc]
add dx, 0x14d
and dx, 0x3fff
mov ecx, dword [ebp - 0x1c]
mov ax, word [ecx + 0xe]
and ax, 0xc000
or dx, ax
mov ecx, dword [ebp - 0x1c]
mov word [ecx + 0xe], dx
mov dx, word [ebp - 0xc]
add dx, 0x535
and dx, 0x3fff
mov eax, dword [ebp - 0x1c]
mov cx, word [eax + 0x10]
and cx, 0xc000
or dx, cx
mov eax, dword [ebp - 0x1c]
mov word [eax + 0x10], dx
mov dx, word [ebp - 0xc]
add dx, 0x3412
and dx, 0x3fff
mov ecx, dword [ebp - 0x1c]
mov ax, word [ecx + 0x12]
and ax, 0xc000
or dx, ax
mov ecx, dword [ebp - 0x1c]
mov word [ecx + 0x12], dx
mov dx, word [ebp - 0xc]
add dx, 0xc9
and dx, 0xfff
mov eax, dword [ebp - 0x1c]
mov cx, word [eax + 2]
and cx, 0xf000
or dx, cx
mov eax, dword [ebp - 0x1c]
mov word [eax + 2], dx
mov dx, word [ebp - 0xc]
add dx, 0xca
and dx, 0xfff
shl edx, 4
mov ecx, dword [ebp - 0x1c]
mov ax, word [ecx + 6]
and ax, 0xf
or dx, ax
mov ecx, dword [ebp - 0x1c]
mov word [ecx + 6], dx
mov edx, dword [ebp - 0x1c]
mov al, byte [edx + 0xb]
and al, 0
or al, 0xe8
mov edx, dword [ebp - 0x1c]
mov byte [edx + 0xb], al
mov ecx, dword [ebp - 0x1c]
mov al, byte [ecx + 0xc]
and al, 0xf0
or al, 3
mov edx, dword [ebp - 0x1c]
mov byte [edx + 0xc], al
jmp 0x43b67e
cmp dword [ebp - 8], 0x50
jne 0x43b322
mov cl, byte [ebp - 0xc]
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp + 8]
mov byte [edx + eax + 0x1a], cl
jmp 0x43b67e
cmp dword [ebp - 8], 0x4c
jne 0x43b33a
mov cl, byte [ebp - 0xc]
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp + 8]
mov byte [edx + eax + 0x1b], cl
jmp 0x43b67e
cmp dword [ebp - 8], 0x51
jne 0x43b352
mov cl, byte [ebp - 0xc]
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp + 8]
mov byte [edx + eax + 0x1c], cl
jmp 0x43b67e
cmp dword [ebp - 8], 0x4d
jne 0x43b377
mov cl, byte [ebp - 0xc]
and cl, 1
shl ecx, 6
mov eax, dword [ebp - 0x1c]
mov dl, byte [eax + 1]
and dl, 0xbf
or cl, dl
mov eax, dword [ebp - 0x1c]
mov byte [eax + 1], cl
jmp 0x43b67e
cmp dword [ebp - 8], 0x45
jne 0x43b39e
mov dl, byte [ebp - 0xc]
and dl, 1
and dl, 1
shl edx, 7
mov ecx, dword [ebp - 0x1c]
mov al, byte [ecx + 1]
and al, 0x7f
or dl, al
mov ecx, dword [ebp - 0x1c]
mov byte [ecx + 1], dl
jmp 0x43b67e
cmp dword [ebp - 8], 0x49
jne 0x43b3c0
mov dl, byte [ebp - 0xc]
and dl, 0xf
mov eax, dword [ebp - 0x1c]
mov cl, byte [eax + 0xc]
and cl, 0xf0
or dl, cl
mov eax, dword [ebp - 0x1c]
mov byte [eax + 0xc], dl
jmp 0x43b67e
cmp dword [ebp - 8], 0x54
jne 0x43b3ec
movsx edx, byte [ebp - 0xc]
and dx, 0xfff
shl edx, 4
mov ecx, dword [ebp - 0x1c]
mov ax, word [ecx + 0xc]
and ax, 0xf
or dx, ax
mov ecx, dword [ebp - 0x1c]
mov word [ecx + 0xc], dx
jmp 0x43b67e
cmp dword [ebp - 8], 0x52
jne 0x43b411
mov dl, byte [ebp - 0xc]
and dl, 1
shl edx, 4
mov eax, dword [ebp - 0x1c]
mov cl, byte [eax + 0x18]
and cl, 0xef
or dl, cl
mov eax, dword [ebp - 0x1c]
mov byte [eax + 0x18], dl
jmp 0x43b67e
cmp dword [ebp - 8], 0x58
jne 0x43b43c
mov edx, dword [ebp - 0x1c]
or byte [edx + 0x16], 1
mov cl, byte [ebp - 0xc]
and cl, 1
add ecx, ecx
mov eax, dword [ebp - 0x1c]
mov dl, byte [eax + 0x18]
and dl, 0xfd
or cl, dl
mov eax, dword [ebp - 0x1c]
mov byte [eax + 0x18], cl
jmp 0x43b67e
cmp dword [ebp - 8], 0x40
jne 0x43b67e
cmp dword [ebp - 0xc], 1
jne 0x43b481
mov edx, dword [ebp - 0x1c]
mov cl, byte [edx + 0x16]
and cl, 3
or cl, 0x14
mov eax, dword [ebp - 0x1c]
mov byte [eax + 0x16], cl
mov edx, dword [ebp - 0x1c]
and byte [edx + 0x17], 0xef
mov ecx, dword [ebp - 0x1c]
and byte [ecx + 0x17], 0xdf
mov eax, dword [ebp - 0x1c]
and byte [eax + 0x18], 0xef
mov edx, dword [ebp - 0x1c]
mov word [edx + 0x14], 0xfa1
jmp 0x43b67e
cmp dword [ebp - 0xc], 2
jne 0x43b4ba
mov ecx, dword [ebp - 0x1c]
mov al, byte [ecx + 0x16]
and al, 3
or al, 0x14
mov edx, dword [ebp - 0x1c]
mov byte [edx + 0x16], al
mov ecx, dword [ebp - 0x1c]
and byte [ecx + 0x17], 0xef
mov eax, dword [ebp - 0x1c]
and byte [eax + 0x17], 0xdf
mov edx, dword [ebp - 0x1c]
and byte [edx + 0x18], 0xef
mov ecx, dword [ebp - 0x1c]
mov word [ecx + 0x14], 1
jmp 0x43b67e
cmp dword [ebp - 0xc], 3
jne 0x43b4f5
mov eax, dword [ebp - 0x1c]
mov dl, byte [eax + 0x16]
and dl, 3
or dl, 0x14
mov ecx, dword [ebp - 0x1c]
mov byte [ecx + 0x16], dl
mov eax, dword [ebp - 0x1c]
and byte [eax + 0x17], 0xef
mov edx, dword [ebp - 0x1c]
and byte [edx + 0x17], 0xdf
mov ecx, dword [ebp - 0x1c]
or byte [ecx + 0x18], 0x10
mov eax, dword [ebp - 0x1c]
mov word [eax + 0x14], 0xfa1
jmp 0x43b67e
cmp dword [ebp - 0xc], 4
jne 0x43b525
mov edx, dword [ebp - 0x1c]
and byte [edx + 0x16], 3
mov ecx, dword [ebp - 0x1c]
and byte [ecx + 0x17], 0xef
mov eax, dword [ebp - 0x1c]
or byte [eax + 0x17], 0x20
mov edx, dword [ebp - 0x1c]
and byte [edx + 0x18], 0xef
mov ecx, dword [ebp - 0x1c]
mov word [ecx + 0x14], 1
jmp 0x43b67e
cmp dword [ebp - 0xc], 5
jne 0x43b572
mov eax, dword [ebp - 0x1c]
mov dl, byte [eax + 0x16]
and dl, 3
or dl, 0x14
mov ecx, dword [ebp - 0x1c]
mov byte [ecx + 0x16], dl
mov eax, dword [ebp - 0x1c]
or byte [eax + 0x17], 0x10
mov edx, dword [ebp - 0x1c]
and byte [edx + 0x17], 0xdf
mov ecx, dword [ebp - 0x1c]
and byte [ecx + 0x18], 0xef
mov eax, dword [ebp - 0x1c]
mov word [eax + 0x14], 3
mov edx, dword [ebp - 0x1c]
mov cl, byte [edx + 0x19]
and cl, 0xfc
or cl, 1
mov eax, dword [ebp - 0x1c]
mov byte [eax + 0x19], cl
jmp 0x43b67e
cmp dword [ebp - 0xc], 6
jne 0x43b5d1
mov edx, dword [ebp - 0x1c]
mov cl, byte [edx + 0x16]
and cl, 3
or cl, 0x20
mov eax, dword [ebp - 0x1c]
mov byte [eax + 0x16], cl
mov edx, dword [ebp - 0x1c]
or byte [edx + 0x17], 0x10
mov ecx, dword [ebp - 0x1c]
and byte [ecx + 0x17], 0xdf
mov eax, dword [ebp - 0x1c]
or byte [eax + 0x17], 1
mov edx, dword [ebp - 0x1c]
and byte [edx + 0x18], 0xef
mov ecx, dword [ebp - 0x1c]
mov ax, word [ecx + 0xc]
and ax, 0xf
or ax, 0x6e0
mov edx, dword [ebp - 0x1c]
mov word [edx + 0xc], ax
mov ecx, dword [ebp - 0x1c]
mov al, byte [ecx + 0x19]
and al, 0xfc
or al, 1
mov edx, dword [ebp - 0x1c]
mov byte [edx + 0x19], al
jmp 0x43b67e
cmp dword [ebp - 0xc], 0xa
jl 0x43b67e
cmp dword [ebp - 0xc], 0xc
jg 0x43b67e
mov ecx, dword [ebp - 0x1c]
mov al, byte [ecx + 0x16]
and al, 3
or al, 0x30
mov edx, dword [ebp - 0x1c]
mov byte [edx + 0x16], al
mov ecx, dword [ebp - 0x1c]
or byte [ecx + 0x17], 0x10
mov eax, dword [ebp - 0x1c]
and byte [eax + 0x17], 0xdf
mov edx, dword [ebp - 0x1c]
or byte [edx + 0x17], 1
mov ecx, dword [ebp - 0x1c]
and byte [ecx + 0x18], 0xef
mov eax, dword [ebp - 0x1c]
and byte [eax + 0x17], 0xfd
mov edx, dword [ebp - 0x1c]
and byte [edx + 0x17], 0xfb
mov ecx, dword [ebp - 0x1c]
and byte [ecx + 0x19], 0xfc
cmp dword [ebp - 0xc], 0xa
jne 0x43b640
mov eax, dword [ebp - 0x1c]
mov dl, byte [eax + 0xb]
and dl, 0
or dl, 0xb0
mov ecx, dword [ebp - 0x1c]
mov byte [ecx + 0xb], dl
jmp 0x43b66c
cmp dword [ebp - 0xc], 0xb
jne 0x43b65a
mov eax, dword [ebp - 0x1c]
mov dl, byte [eax + 0xb]
and dl, 0
or dl, 0xe1
mov ecx, dword [ebp - 0x1c]
mov byte [ecx + 0xb], dl
jmp 0x43b66c
mov eax, dword [ebp - 0x1c]
mov dl, byte [eax + 0xb]
and dl, 0
or dl, 0x4c
mov ecx, dword [ebp - 0x1c]
mov byte [ecx + 0xb], dl
mov eax, dword [ebp - 0x1c]
mov dl, byte [eax + 0xc]
and dl, 0xf0
or dl, 4
mov ecx, dword [ebp - 0x1c]
mov byte [ecx + 0xc], dl
xor eax, eax
mov dword [ebp - 8], eax
cmp dword [ebp - 0x18], 2
jge 0x43b692
mov dword [ebp - 0x10], 0x21
jmp 0x43b6a8
cmp dword [ebp - 0x18], 3
jge 0x43b6a1
mov dword [ebp - 0x10], 0x29
jmp 0x43b6a8
mov dword [ebp - 0x10], 0x31
xor edx, edx
mov dword [ebp - 4], edx
jmp 0x43b6c0
mov ecx, dword [ebp - 4]
mov eax, dword [ebp + 8]
movsx edx, byte [eax + ecx + 3]
add dword [ebp - 8], edx
inc dword [ebp - 4]
mov ecx, dword [ebp - 0x10]
dec ecx
cmp ecx, dword [ebp - 4]
jg 0x43b6af
mov al, byte [ebp - 8]
and al, 0xff
mov edx, dword [ebp - 4]
mov ecx, dword [ebp + 8]
mov byte [ecx + edx + 3], al
mov eax, dword [ebp - 4]
add eax, 4
push eax
push dword [ebp + 8]
call fcn.0043fd18
jmp 0x43b703
push 0x45aff0
push dword [ebp + 8]
call fcn.004414ec
add esp, 8
push 0xffffffffffffffff
push dword [ebp + 8]
call fcn.0043fd18
mov esp, ebp
pop ebp
ret