Function at 0x54c950
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
mov eax, 0x2690
call fcn.007ce210
mov edi, edx
mov dword [esp + 0x4c], ecx
mov eax, dword [ebp + 0x1c]
mov ebx, 0x3d429992
cmp eax, 0x12
je 0x54ca65
cmp eax, 0x13
jne 0x54cae3
mov eax, dword [ebp + 0x2c]
mov ecx, dword [ebp + 0x28]
mov edx, dword [ebp + 0x18]
mov esi, dword [ebp + 0x14]
mov edi, dword [ebp + 0x10]
mov ebx, 0x3d429992
add bl, 0xd6
mov dword [esp + 0x120], ecx
mov dword [esp + 0x124], eax
mov dword [esp + 0x11c], edx
mov dword [esp + 0x118], esi
xorpd xmm0, xmm0
movapd xmmword [esp + 0x100], xmm0
movapd xmmword [esp + 0xf0], xmm0
movapd xmmword [esp + 0xe0], xmm0
movapd xmmword [esp + 0xd0], xmm0
movapd xmmword [esp + 0xc0], xmm0
movapd xmmword [esp + 0xb0], xmm0
movapd xmmword [esp + 0xa0], xmm0
movapd xmmword [esp + 0x90], xmm0
mov dword [esp + 0x8c], 0
mov dword [esp + 0x88], 0
movapd xmmword [esp + 0x70], xmm0
movapd xmmword [esp + 0x60], xmm0
mov dword [esp + 0x54], 0
mov dword [esp + 0x60], 1
mov dword [esp + 0x64], 2
lea eax, [esp + 0x58]
mov dword [esp + 4], eax
lea eax, [esp + 0x60]
mov dword [esp], eax
call fcn.005953b0
test eax, eax
jne 0x54ce28
mov dword [esp + 0x48], eax
mov dword [esp + 0x30], eax
jmp 0x54d408
mov dword [esp + 0x134], 0xa
mov dword [esp + 0x130], 0
lea eax, [esp + 0x130]
mov dword [esp + 8], eax
mov dword [esp], edi
mov dword [esp + 4], 0xc
call fcn.0063c210
xor ecx, ecx
test eax, eax
je 0x54ce90
xor ebx, 0x3d429985
xor eax, eax
mov dword [esp + 0x44], edx
mov dword [esp + 0x50], edx
mov dword [esp + 0x34], edx
mov dword [esp + 0x4c], edx
mov dword [esp + 0x2c], esi
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], edi
mov eax, 0x70000052
cmp ebx, 7
mov esi, dword [esp + 0x4c]
mov ecx, dword [esp + 0x34]
jne 0x54cfa2
jmp 0x54d400
mov dword [esp + 0x2684], 0
mov dword [esp + 0x2680], 0
mov dword [esp], str.sober128
call fcn.007ae810
mov dword [esp], 3
call fcn.007ae890
lea ecx, [esp + 0x138]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp], pe_nt_image_headers32
call fcn.007ae8d0
mov ecx, 0x700002bb
test eax, eax
jne 0x54ce21
add bl, 0xb2
mov dword [esp + 0x48], ebx
mov byte [esp + 0x50], al
nop word cs:[eax + eax]
mov esi, ecx
lea eax, [esp + 0x138]
mov dword [esp + 8], eax
lea eax, [esp + 0x2680]
mov dword [esp], eax
mov dword [esp + 4], 8
call fcn.007ad7c0
cmp eax, 8
jne 0x54cc20
mov eax, dword [esp + 0x48]
movzx eax, al
cmp eax, 0x44
jne 0x54cc30
mov ebx, 0x1d
mov byte [esp + 0x50], 0x57
mov eax, dword [esp + 0x2680]
mov ecx, 0xffffffff
and eax, ecx
mov ecx, dword [esp + 0x2684]
mov edx, 0xfffffff
and ecx, edx
mov dword [esp + 0x2684], ecx
mov dword [esp + 0x2680], eax
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00420320
test eax, eax
jne 0x54cca3
mov al, 0x44
mov dword [esp + 0x48], eax
mov edi, 7
mov eax, dword [esp + 0x2684]
mov ecx, 0xa7640000
cmp dword [esp + 0x2680], ecx
mov ecx, 0xde0b6b3
sbb eax, ecx
mov ecx, esi
jae 0x54ce1c
jmp 0x54cddf
mov edi, 0xb
mov bl, 0x6d
mov ecx, esi
jmp 0x54ccc0
mov edi, 0x10
mov byte [esp + 0x50], 0x57
mov eax, dword [esp + 0x2680]
mov ecx, 0xffffffff
and eax, ecx
mov ecx, dword [esp + 0x2684]
mov edx, 0xfffffff
and ecx, edx
mov dword [esp + 0x2684], ecx
mov dword [esp + 0x2680], eax
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00420320
test eax, eax
jne 0x54ccb0
mov al, 0x16
mov dword [esp + 0x48], eax
mov ebx, 0x15
mov eax, dword [esp + 0x2684]
mov ecx, 0xa7640000
cmp dword [esp + 0x2680], ecx
mov ecx, 0xde0b6b3
sbb eax, ecx
mov ecx, esi
jae 0x54cd37
jmp 0x54ccfd
mov al, 0x44
mov dword [esp + 0x48], eax
mov ecx, esi
jmp 0x54cddf
mov al, 0x16
mov dword [esp + 0x48], eax
mov ecx, esi
jmp 0x54ccfd
cmp edi, 0xb
jne 0x54ce21
mov esi, 0xffffffff
movzx eax, bl
cmp eax, 0x5f
je 0x54cd10
mov ebx, 0xb
cmp eax, 0x68
jne 0x54cd80
mov edi, 0x12
lea eax, [esp + 0x138]
mov dword [esp], eax
call fcn.004b0080
mov ecx, 0x700002bb
cmp edi, 0x10
je 0x54cb60
jmp 0x54ce21
lea edi, [esp + 0x138]
jmp 0x54cd32
mov ebx, 0xc
mov dword [esp], edi
call fcn.004b0080
mov ecx, 0x700002bb
add esi, 1
jb 0x54cd20
cmp ebx, 0xc
jne 0x54cdd0
jmp 0x54ce21
mov edi, 0x17
mov bl, 0x5f
lea eax, [esp + 0x138]
mov dword [esp], eax
call fcn.004b0080
mov ecx, 0x700002bb
add esi, 1
jb 0x54cd50
jmp 0x54ccc0
mov esi, 0xffffffff
cmp ebx, 0xb
je 0x54cd6b
jmp 0x54ce21
mov ebx, 0x15
mov byte [esp + 0x50], 0x57
lea eax, [esp + 0x138]
mov dword [esp], eax
call fcn.004b0080
movsd xmm0, qword [esp + 0x2680]
mov eax, dword [esp + 0x4c]
movsd qword [eax], xmm0
xor ecx, ecx
add edi, 1
jb 0x54cd90
jmp 0x54cd80
mov ebx, 0x10
movzx eax, byte [esp + 0x50]
cmp eax, 0x57
jne 0x54cdf0
mov edi, 0xffffffff
cmp ebx, 0x10
jne 0x54cb60
jmp 0x54cdbc
mov edi, 0xe
mov byte [esp + 0x50], 0x3a
lea eax, [esp + 0x138]
mov dword [esp], eax
call fcn.004b0080
movsd xmm0, qword [esp + 0x2680]
mov eax, dword [esp + 0x4c]
movsd qword [eax], xmm0
xor ecx, ecx
cmp edi, 7
je 0x54cdd0
mov eax, ecx
jmp 0x54d400
mov eax, 0x3d429992
add al, 0xab
movzx eax, al
cmp eax, 0x3d
je 0x54cf2e
cmp eax, 0x7c
jne 0x54cf51
lea eax, [esp + 0x60]
mov dword [esp], eax
mov dword [esp + 4], 0
call fcn.00595480
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
mov edx, 0x7000002b
cmp eax, ecx
jne 0x54d9af
mov dword [esp + 0x30], 0x7000002b
mov eax, 0x17
mov dword [esp + 0x48], ecx
mov byte [esp + 0x34], cl
jmp 0x54d50d
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], edi
mov edi, 0xffffffff
mov esi, 0x80000001
mov dword [esp + 0x38], 0
jmp 0x54cf14
mov ebx, 0x1b
mov dword [esp + 0x128], 0
lea eax, [esp + 0x128]
mov dword [esp], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 4
call fcn.007ca970
mov ecx, eax
mul esi
shr edx, 0x1f
neg edx
neg edx
lea eax, [ecx + edx + 1]
mov ecx, dword [esp + 0x130]
mov edx, dword [esp + 0x40]
mov edx, dword [edx + 8]
mov ecx, dword [edx + ecx*4]
cmp dword [ecx + 4], eax
setne al
movzx eax, al
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], 1
add edi, 1
mov dword [esp + 0x50], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x48], eax
jb 0x54ceb0
jmp 0x54d0ab
lea eax, [esp + 0x60]
mov dword [esp], eax
mov dword [esp + 4], 0
call fcn.00595480
mov edx, 0x7000002b
test eax, eax
jne 0x54d9af
jmp 0x54cf83
lea eax, [esp + 0x60]
mov dword [esp], eax
mov dword [esp + 4], 0
call fcn.00595480
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
mov edx, 0x7000002b
cmp eax, ecx
jne 0x54d9af
mov dword [esp + 0x30], 0x7000002b
mov dword [esp + 0x48], eax
jmp 0x54d408
mov dword [esp + 0x2c], 8
mov esi, eax
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x48], edx
mov dword [esp + 0x34], ecx
mov edx, esi
mov ecx, dword [ebp + 8]
mov esi, dword [ecx + 0x20]
cmp esi, 0xffffffff
je 0x54cfeb
mov eax, 3
mov ecx, dword [ecx + 0x24]
cmp ecx, 0xffffffff
je 0x54cfef
mov dword [esp + 0x44], ecx
mov dword [esp + 0x28], 9
mov eax, 0x7000004d
cmp dword [esp + 0x3c], 0
mov edi, edx
mov ebx, dword [esp + 0x34]
jne case.0x54d129.6
jmp 0x54d400
mov edx, esi
jmp 0x54cffc
mov dword [esp + 0x30], esi
mov dword [esp + 0x44], ecx
jmp 0x54d0f8
mov dword [esp + 0x30], edx
mov eax, dword [ebp + 8]
mov edi, dword [eax + 0x1c]
xor ebx, ebx
xor esi, esi
xor edx, edx
test edi, edi
je 0x54d042
mov dword [esp + 0x2c], 4
cmp edi, 2
je 0x54d075
mov dword [esp + 0x48], edx
mov edx, esi
cmp edi, 1
mov dword [esp + 0x34], edi
jne 0x54d088
mov dword [esp], str.The_license_is_using_deprecated_cloning_algorithm_n
call fcn.004414c0
mov eax, 0x7000001d
jmp 0x54d400
mov eax, dword [esp + 0x40]
mov dword [esp], eax
mov dword [esp + 4], 0xd
mov dword [esp + 0x48], edx
call fcn.0063c260
mov edx, dword [esp + 0x48]
mov ecx, eax
mov dword [esp + 0x2c], 7
mov eax, 0x7000004d
test ecx, ecx
je 0x54d400
mov dword [esp + 0x48], edx
mov dword [esp + 0x34], edi
mov edx, esi
mov eax, 0xc
test ebx, ebx
je 0x54d0f8
mov dword [esp + 0x4c], edx
mov ebx, 0xb
mov dword [esp + 0x2c], 8
mov eax, dword [esp + 0x40]
cmp dword [eax + 0xc], 2
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x30]
jae 0x54d10d
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], ecx
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x4c]
cmp ebx, 0xb
jne 0x54cf94
mov eax, dword [esp + 0x40]
mov dword [esp], eax
mov dword [esp + 4], 0xe
call fcn.0063c260
mov ecx, eax
mov dword [esp + 0x2c], 8
mov eax, 0x7000004d
test ecx, ecx
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x30]
jne 0x54d10d
jmp 0x54d400
mov dword [esp + 0x4c], edx
cmp eax, 3
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x30]
je 0x54cffc
mov edi, dword [esp + 0x4c]
lea eax, [ecx - 3]
cmp eax, 6
ja case.default.0x54d129
mov dword [esp + 0x28], 0x13
mov ebx, ecx
mov ecx, dword [esp + 0x2c]
mov esi, edx
jmp dword [eax*4 + 0x7dbd18]
mov dword [esp + 0x34], 5
mov eax, dword [esp + 0x40]
mov dword [esp], eax
mov dword [esp + 4], 0xe
call fcn.0063c260
test eax, eax
je 0x54d1ad
mov ecx, dword [esp + 0x2c]
jmp case.0x54d129.4
mov dword [esp + 0x30], esi
cmp dword [esp + 0x28], 9
jne 0x54d1ca
mov eax, dword [esp + 0x38]
test eax, eax
je 0x54d233
mov eax, dword [ebp + 8]
mov esi, dword [eax + 0x30]
mov edx, dword [eax + 0x34]
mov ebx, 1
mov edi, dword [esp + 0x44]
jmp 0x54d00c
cmp ecx, 0x66
mov ebx, ecx
jne 0x54d22a
mov dword [esp + 0x34], 0x13
mov eax, 0x7000004d
mov ecx, dword [esp + 0x40]
cmp dword [ecx + 0xc], 4
jb 0x54d400
mov esi, ebx
mov ebx, dword [esp + 0x48]
cmp dword [esp + 0x34], 5
jne 0x54d265
mov dword [esp], str.The_recipient_fingerprint_misses_the_domain_machine_name_information_n
jmp 0x54d2ca
mov ecx, 0xa
jmp case.0x54d129.4
mov eax, 0x7000004d
mov ecx, dword [esp + 0x40]
cmp dword [ecx + 0xc], 2
jb 0x54d400
mov esi, ebx
mov ebx, dword [esp + 0x48]
lea eax, [esp + 0x130]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x40]
mov dword [esp], eax
mov dword [esp + 4], 0x15
call fcn.0063c210
test eax, eax
je 0x54d2bb
mov dword [esp], str.The_recipient_fingerprint_misses_the_virtual_machine_information_n
jmp 0x54d2ca
mov ecx, 0xf
jmp case.0x54d129.4
mov ecx, dword [esp + 0x2c]
jmp case.0x54d129.4
mov eax, 0xffffffff
mov ecx, dword [ebp + 8]
mov edi, dword [esp + 0x30]
jmp 0x54d256
mov esi, dword [ecx + 0x28]
mov edx, dword [ecx + 0x2c]
add eax, 1
mov ebx, 1
jb 0x54d250
jmp 0x54d00c
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x18], edi
mov eax, dword [esp + 0x38]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x12c]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 4], eax
mov dword [esp], eax
mov dword [esp + 0xc], 0x29e
mov dword [esp + 8], 0x80767e
call fcn.0063c9d0
mov edx, 5
mov ecx, eax
mov eax, 0x700002bb
test ecx, ecx
mov ebx, esi
jne 0x54d400
jmp 0x54d3de
mov ecx, 0xd
mov eax, 0x7000004d
jmp 0x54d3c0
call fcn.004414c0
mov eax, 0x70000052
jmp 0x54d400
mov dword [esp + 0x34], esi
mov dword [esp + 0x48], ebx
mov dword [esp + 0x4c], edi
lea eax, [esp + 0x134]
mov dword [esp], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 4
call fcn.007ca970
mov ecx, eax
mov edx, 0x80000001
mul edx
shr edx, 0x1f
neg edx
neg edx
lea eax, [ecx + edx + 1]
mov ecx, dword [esp + 0x130]
mov edi, dword [esp + 0x40]
mov edx, dword [edi + 8]
mov ecx, dword [edx + ecx*4]
cmp dword [ecx + 4], eax
jne 0x54d35b
mov dword [esp], edi
mov dword [esp + 4], 0x14
call fcn.0063c260
mov ecx, 0xc
test eax, eax
mov edi, dword [esp + 0x4c]
mov ebx, dword [esp + 0x34]
jne case.0x54d129.4
mov dword [esp], str.The_recipient_fingerprint_misses_the_mainboard_information_n
jmp 0x54d2ca
mov esi, 0xffffffff
jmp 0x54d381
mov ebx, 7
mov dword [esp], str.The_recipient_machine_is_not_Azure_n
call fcn.004414c0
add esi, 1
jb 0x54d370
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x48]
mov esi, dword [esp + 0x2c]
jmp 0x54cab8
mov ecx, 0xe
cmp dword [esp + 0x12c], 0
je 0x54d3cb
mov dword [esp], str.The_recipient_fingerprint_has_not_enough_elements_n
call fcn.004414c0
mov ecx, 5
mov eax, 0x70000052
cmp ecx, 5
jne 0x54d2d9
jmp 0x54d400
mov ebx, esi
mov edx, 1
xor eax, eax
cmp dword [ebp + 0xc], 0
mov dword [esp + 0x50], ecx
je 0x54d400
mov esi, ebx
mov ebx, dword [esp + 0x48]
cmp edx, 1
jne 0x54d39b
mov ecx, 0xffffffff
jmp 0x54d3f9
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x50]
mov dword [eax], edx
xor eax, eax
add ecx, 1
jb 0x54d3f0
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, 8
movzx ecx, bl
cmp ecx, 0x22
mov dword [esp + 0x50], esi
mov dword [esp + 0x4c], esi
mov dword [esp + 0x38], esi
mov byte [esp + 0x44], dl
je 0x54da36
cmp ecx, 0x32
je 0x54d459
mov esi, 0xf
cmp ecx, 0x4d
jne 0x54d4cd
mov dword [esp + 0x50], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x40], eax
mov byte [esp + 0x44], al
mov byte [esp + 0x3c], cl
mov ebx, dword [esp + 0x30]
jmp 0x54db42
mov ebx, 0xd
mov byte [esp + 0x34], 0x70
mov dword [esp + 0x60], 2
mov dword [esp + 0x64], 2
lea eax, [esp + 0x68]
mov dword [esp + 0x48], eax
mov dword [esp + 0x68], edi
lea eax, [esp + 0x58]
mov dword [esp + 4], eax
lea eax, [esp + 0x60]
mov dword [esp], eax
call fcn.005953b0
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
mov dword [esp + 0x40], eax
mov byte [esp + 0x44], cl
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], ecx
mov dword [esp + 0x2c], ecx
mov byte [esp + 0x3c], cl
mov edx, dword [esp + 0x30]
je 0x54d596
jmp 0x54d8fc
mov byte [esp + 0x34], 0x70
mov dword [esp + 0x60], 2
mov dword [esp + 0x64], 2
lea eax, [esp + 0x68]
mov dword [esp + 0x48], eax
mov dword [esp + 0x68], edi
lea eax, [esp + 0x58]
mov dword [esp + 4], eax
lea eax, [esp + 0x60]
mov dword [esp], eax
call fcn.005953b0
test eax, eax
je 0x54d538
mov eax, 0xe
mov bl, 0x68
cmp eax, 0xe
jne 0x54d52f
mov dword [esp + 0x50], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x40], eax
mov byte [esp + 0x44], al
mov dword [esp + 0x2c], eax
mov byte [esp + 0x3c], al
jmp 0x54daa9
mov dh, byte [esp + 0x34]
jmp 0x54d408
mov esi, 9
mov dword [esp + 0x50], eax
mov dword [esp + 0x40], eax
jmp 0x54dcff
mov dword [esp + 0x38], eax
lea eax, [esp + 0x60]
mov dword [esp], eax
mov dword [esp + 4], 0
call fcn.00595480
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x54d57f
mov byte [esp + 0x34], 0x70
mov eax, dword [esp + 0x38]
jmp 0x54d596
mov edx, 0xc
mov esi, 0x7000002b
mov ebx, dword [esp + 0x50]
mov eax, dword [esp + 0x2c]
jmp 0x54d8cf
xor edi, edi
lea edx, [esp + 0x6c]
mov bh, byte [esp + 0x44]
jmp 0x54d5d5
mov esi, 6
mov bl, 0x6c
mov ecx, edi
and ecx, 1
xor ecx, edi
cmp ecx, 0xffffffff
setne cl
movzx ecx, cl
add edi, ecx
mov dword [esp + 0x4c], 1
mov dword [esp + 0x50], edx
mov ecx, edi
imul ecx, ecx
and ecx, 3
test edi, edi
je 0x54d5b0
cmp ecx, 3
je 0x54d5b0
mov ecx, eax
mov edi, dword [ebp + 0x10]
cmp esi, 6
je 0x54d608
mov byte [esp + 0x44], bh
imul esi, esi
and esi, 3
cmp esi, 2
jne 0x54dd8b
jmp 0x54dd73
mov byte [esp + 0x44], bh
jmp 0x54dd73
lea eax, [esp + 0x60]
mov dword [esp], eax
mov dword [esp + 4], 0
mov esi, ecx
call fcn.00595480
mov ecx, esi
mov edx, 0x7000002b
test eax, eax
jne 0x54d9af
mov dword [esp + 0x3c], 0xc
mov bl, 0x68
mov eax, ecx
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x4c]
jmp 0x54dc61
mov dword [esp + 0x38], eax
mov ecx, dword [ebp + 0x24]
mov edx, dword [ebp + 0x20]
mov al, 3
mov esi, dword [esp + 0x40]
mov dword [edx], esi
mov dword [esp + 0x60], 4
mov dword [esp + 0x64], 2
mov edx, dword [esp + 0x48]
mov dword [edx], edi
mov ebx, dword [esp + 0x50]
mov dword [ebx], esi
mov dword [esp + 0x70], 0xfffffffe
mov dword [esp + 0x8c], 0x636f6964
mov edx, ecx
imul edx, edx
and edx, 3
cmp edx, 3
sete dl
movzx edx, dl
cmp ecx, edx
jne 0x54d6bf
mov ecx, dword [esp + 0x54]
mov edx, ecx
imul edx, edx
and edx, 3
cmp edx, 2
sbb edx, edx
and edx, 1
or edx, ecx
mov dword [esp + 0x54], edx
movzx eax, al
cmp eax, 3
jne 0x54d7d1
mov ebx, 1
mov byte [esp + 0x3c], 5
lea esi, [esp + 0x90]
mov dword [esp], esi
mov dword [esp + 8], pe_nt_image_headers32
mov dword [esp + 4], 0
call fcn.007c51a0
lea eax, [esp + 0x8c]
mov dword [esp + 4], eax
mov dword [esp], esi
mov dword [esp + 8], 4
call fcn.007c51d0
lea eax, [esp + 0x94]
lea ecx, [esp + 0x118]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], 8
call fcn.007c51d0
lea eax, [esp + 0x9c]
lea ecx, [esp + 0x88]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], 4
call fcn.007c51d0
lea eax, [esp + 0xa0]
lea ecx, [esp + 0x54]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], 4
call fcn.007c51d0
lea eax, [esp + 0xa4]
lea ecx, [esp + 0x120]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], 8
call fcn.007c51d0
mov dword [esp + 4], esi
lea eax, [esp + 0x60]
mov dword [esp], eax
mov dword [esp + 8], 0x1c
call fcn.00593cf0
xor edx, edx
test eax, eax
je 0x54d8f4
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
mov dword [esp + 0x2c], eax
mov ecx, dword [esp + 0x38]
jne 0x54d90e
jmp 0x54d8fc
lea esi, [esp + 0x90]
mov dword [esp], esi
mov dword [esp + 8], pe_nt_image_headers32
mov dword [esp + 4], 0
call fcn.007c51a0
lea eax, [esp + 0x8c]
mov dword [esp + 4], eax
mov dword [esp], esi
mov dword [esp + 8], 4
call fcn.007c51d0
lea eax, [esp + 0x94]
lea ecx, [esp + 0x118]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], 8
call fcn.007c51d0
lea eax, [esp + 0x9c]
lea ecx, [esp + 0x88]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], 4
call fcn.007c51d0
lea eax, [esp + 0xa0]
lea ecx, [esp + 0x54]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], 4
call fcn.007c51d0
lea eax, [esp + 0xa4]
lea ecx, [esp + 0x120]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], 8
call fcn.007c51d0
mov dword [esp + 4], esi
lea eax, [esp + 0x60]
mov dword [esp], eax
mov dword [esp + 8], 0x1c
call fcn.00593cf0
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
xor edx, edx
cmp eax, ecx
je 0x54d9af
xor esi, esi
mov edx, 0x10
mov byte [esp + 0x3c], 5
mov dword [esp + 0x2c], eax
mov dword [esp + 0x50], ebx
cmp edx, 0xc
jne 0x54d90a
mov ecx, edx
or ecx, 2
xor edx, 2
add edx, ecx
mov ecx, dword [esp + 0x38]
mov edx, esi
jne 0x54d9af
jmp 0x54d90e
mov dword [esp + 0x2c], eax
mov ecx, dword [esp + 0x38]
cmp ebx, 1
je 0x54d9af
jmp 0x54daa9
mov ecx, dword [esp + 0x38]
mov edx, ecx
mov eax, 0xc
mov cl, byte [esp + 0x3c]
movzx ecx, cl
cmp ecx, 5
je 0x54d954
cmp ecx, 0xf
jne 0x54d95b
mov dword [esp + 0x60], 3
mov dword [esp + 0x64], 2
mov eax, dword [esp + 0x48]
mov dword [eax], edi
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x40]
mov dword [eax], ecx
lea eax, [esp + 0x60]
mov dword [esp], eax
call fcn.00595550
jmp 0x54d9ab
mov ebx, edx
jmp 0x54dac9
xor esi, esi
mov ebx, dword [esp + 0x50]
jmp 0x54d999
inc esi
mov dword [esp + 0x60], 3
mov dword [esp + 0x64], 2
mov eax, dword [esp + 0x48]
mov dword [eax], edi
mov eax, dword [esp + 0x40]
mov dword [ebx], eax
lea eax, [esp + 0x60]
mov dword [esp], eax
call fcn.00595550
test esi, esi
jne 0x54d9ab
mov eax, esi
or eax, 2
mov ecx, esi
xor ecx, 2
add ecx, eax
jne 0x54d970
mov edx, dword [esp + 0x2c]
mov eax, edx
jmp 0x54d400
mov byte [esp + 0x34], 0x4c
lea eax, [esp + 0x60]
mov dword [esp], eax
mov dword [esp + 4], 0
call fcn.00595480
test eax, eax
jne 0x54d9d7
mov eax, ebx
jmp 0x54d9e8
mov esi, 0x10
mov edx, 0x7000002b
mov ecx, ebx
jmp 0x54dbb1
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], ecx
jmp 0x54d596
lea eax, [esp + 0x60]
mov dword [esp], eax
mov dword [esp + 4], 0
call fcn.00595480
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
mov edx, 0x7000002b
cmp eax, ecx
jne 0x54d9af
mov eax, 0x10
mov dh, 0x1b
mov esi, dword [esp + 0x40]
mov ebx, dword [esp + 0x2c]
mov dl, byte [esp + 0x3c]
mov byte [esp + 0x3c], dl
mov dword [esp + 0x2c], ebx
mov byte [esp + 0x34], dh
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x40], esi
cmp eax, 8
jne 0x54daa2
mov esi, 0x12
mov byte [esp + 0x34], 0x70
mov dword [esp + 0x60], 2
mov dword [esp + 0x64], 2
lea eax, [esp + 0x68]
mov dword [esp + 0x48], eax
mov dword [esp + 0x68], edi
lea eax, [esp + 0x58]
mov dword [esp + 4], eax
lea eax, [esp + 0x60]
mov dword [esp], eax
call fcn.005953b0
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
mov ecx, ebx
jne 0x54daa9
jmp 0x54dcdf
mov eax, ebx
jmp 0x54d596
mov eax, ecx
movzx ecx, byte [esp + 0x34]
cmp ecx, 0x1b
je 0x54d54a
mov ebx, eax
mov eax, 0x19
cmp ecx, 0x70
jne 0x54d9b6
mov dword [esp + 0x38], ebx
cmp eax, 0xc
jne 0x54d9f5
xor ebx, ebx
jmp 0x54db24
mov eax, ebx
imul eax, eax
and eax, 3
cmp eax, 2
mov esi, 7
mov byte [esp + 0x3c], 5
adc ebx, 0
mov dword [esp + 0x60], 3
mov dword [esp + 0x64], 2
mov eax, dword [esp + 0x48]
mov dword [eax], edi
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x40]
mov dword [eax], ecx
lea eax, [esp + 0x60]
mov dword [esp], eax
call fcn.00595550
mov eax, ebx
and eax, 1
xor eax, ebx
cmp eax, 0xffffffff
setne al
movzx eax, al
cmp ebx, eax
jb 0x54dae0
mov eax, dword [esp + 0x2c]
mov ebx, eax
mov edx, dword [esp + 0x38]
mov dword [esp + 0x38], edx
mov dword [esp + 0x2c], eax
cmp esi, 7
jne 0x54db58
mov edx, ebx
mov eax, edx
jmp 0x54d400
mov esi, 0x1a
mov byte [esp + 0x34], 0x70
mov dword [esp + 0x60], 2
mov dword [esp + 0x64], 2
lea eax, [esp + 0x68]
mov dword [esp + 0x48], eax
mov dword [esp + 0x68], edi
lea eax, [esp + 0x58]
mov dword [esp + 4], eax
lea eax, [esp + 0x60]
mov dword [esp], eax
call fcn.005953b0
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
mov ecx, dword [esp + 0x38]
mov edx, ebx
jne 0x54daa9
cmp esi, 0x10
je 0x54d9af
xor eax, eax
test al, al
jne 0x54d9af
mov eax, ecx
jmp 0x54d9e8
movzx ecx, bl
cmp ecx, 2
jne 0x54dc4a
mov byte [esp + 0x44], 0x17
mov dword [esp + 0x60], 3
mov dword [esp + 0x64], 2
mov eax, dword [esp + 0x48]
mov ecx, dword [ebp + 0x10]
mov dword [eax], ecx
mov eax, dword [esp + 0x50]
mov dword [eax], edx
lea eax, [esp + 0x58]
mov dword [esp + 4], eax
lea eax, [esp + 0x60]
mov dword [esp], eax
mov ebx, edx
call fcn.005953b0
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
mov edx, ebx
and edx, 1
xor edx, ebx
cmp edx, 0xffffffff
setne dl
movzx edx, dl
add edx, ebx
cmp eax, ecx
mov ecx, ebx
mov bl, 2
mov eax, ecx
je 0x54dbd0
mov dword [esp + 0x4c], edx
mov edi, dword [ebp + 0x10]
mov bh, 0x17
jmp 0x54d5eb
cmp ecx, 0x5e
mov ecx, edx
mov edi, dword [ebp + 0x10]
mov bl, byte [esp + 0x44]
mov esi, 0x16
jne 0x54dcff
mov edx, ecx
cmp dword [esp + 0x3c], 8
je 0x54dc7d
xor ecx, ecx
test cl, cl
jne 0x54dc7d
mov byte [esp + 0x44], bl
mov dword [esp + 0x4c], edx
jmp 0x54d64f
mov esi, 0xf
mov bl, 0x5e
mov byte [esp + 0x44], 0x17
mov dword [esp + 0x60], 3
mov dword [esp + 0x64], 2
mov eax, dword [esp + 0x48]
mov dword [eax], edi
mov eax, dword [esp + 0x50]
mov dword [eax], edx
lea eax, [esp + 0x58]
mov dword [esp + 4], eax
lea eax, [esp + 0x60]
mov dword [esp], eax
mov edi, edx
call fcn.005953b0
mov edx, edi
mov edi, dword [ebp + 0x10]
mov ecx, edx
not ecx
and ecx, 1
add ecx, edx
setne cl
movzx ecx, cl
add ecx, edx
mov dword [esp + 0x4c], ecx
mov ecx, edx
test eax, eax
je 0x54dd73
cmp esi, 0xf
jne 0x54de01
mov eax, esi
or eax, 2
xor esi, 2
add esi, eax
mov eax, ecx
jne 0x54dd8b
jmp 0x54d596
mov byte [esp + 0x44], bl
cmp esi, 9
jne 0x54dd1e
mov ecx, esi
and ecx, 1
xor ecx, esi
not ecx
test ecx, ecx
je 0x54dd1e
mov dword [esp + 0x4c], edx
jmp 0x54d596
mov bl, 0x6c
mov byte [esp + 0x44], 0x17
mov dword [esp + 0x60], 3
mov dword [esp + 0x64], 2
mov eax, dword [esp + 0x48]
mov dword [eax], edi
mov eax, dword [esp + 0x50]
mov dword [eax], edx
lea eax, [esp + 0x58]
mov dword [esp + 4], eax
lea eax, [esp + 0x60]
mov dword [esp], eax
mov esi, edx
call fcn.005953b0
mov ecx, esi
and ecx, 1
xor ecx, esi
cmp ecx, 0xffffffff
setne cl
movzx ecx, cl
add ecx, esi
mov dword [esp + 0x4c], ecx
mov ecx, esi
test eax, eax
jne 0x54dd8b
mov dword [esp + 0x3c], 8
mov eax, ecx
mov edx, dword [esp + 0x4c]
mov esi, 0xb
jmp 0x54dbd0
movzx eax, byte [esp + 0x44]
cmp eax, 0x5d
je 0x54d611
mov esi, ecx
cmp eax, 0x68
jne 0x54ddd0
mov byte [esp + 0x44], 0x17
lea eax, [esp + 0x60]
mov dword [esp], eax
mov dword [esp + 4], 0
call fcn.00595480
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
mov edx, 0x7000002b
cmp eax, ecx
jmp 0x54ddf0
mov byte [esp + 0x44], 0x5d
lea eax, [esp + 0x60]
mov dword [esp], eax
mov dword [esp + 4], 0
call fcn.00595480
mov edx, 0x7000002b
test eax, eax
mov eax, esi
mov dword [esp + 0x40], eax
je 0x54d64f
jmp 0x54d9af
mov eax, ecx
jmp 0x54d596