Function at 0x5a3910
Capabilities:
Parse credit card information
Resolve function by parsing pe exports

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x3c]
cmp eax, dword [ecx + 8]
jbe 0x5a4848
sub esp, 0xbc
movzx eax, word [esp + 0xc8]
test ax, 2
jne 0x5a47b3
lea ecx, [0x631400]
mov dword [esp], ecx
call fcn.0040cd50
mov eax, dword [esp + 4]
mov dword [esp + 0x7c], eax
movzx ecx, word [esp + 0xc8]
mov word [eax], cx
mov ecx, dword [esp + 0xc4]
mov dword [eax + 0x1c], ecx
mov edx, dword [0x77c810]
lea ebx, [eax + 0x18]
test edx, edx
jne 0x5a4789
mov edx, dword [esp + 0xc0]
mov dword [eax + 0x18], edx
mov ebx, edx
mov ebp, ecx
xor esi, esi
xor edi, edi
xor ecx, ecx
mov dword [esp + 0x4c], ecx
mov ecx, ebp
mov dword [esp + 0x74], edx
mov dword [esp + 0x50], ecx
xchg esi, eax
mov byte [esp + 0x3b], al
xchg esi, eax
mov dword [esp + 0x70], edi
test ecx, ecx
je 0x5a465a
movzx ebx, byte [edx]
cmp bl, 0x2e
ja 0x5a3d0b
cmp bl, 0x28
ja 0x5a3b75
cmp bl, 0x24
jne 0x5a3a43
movzx ebx, word [eax]
test bx, 0x10
je 0x5a3a34
mov dword [esp], eax
mov byte [esp + 4], 0xa
call fcn.005a0790
mov eax, dword [esp + 8]
movzx ecx, word [eax + 2]
or ecx, 0x100
mov word [eax + 2], cx
mov ecx, dword [esp + 0x50]
lea edx, [ecx - 2]
sar edx, 0x1f
xor edx, 0xffffffff
and edx, 1
mov ebx, dword [esp + 0x74]
add edx, ebx
dec ecx
movzx eax, byte [esp + 0x3b]
xor ebx, ebx
xor ebp, ebp
mov esi, eax
mov edi, ebp
mov dword [esp + 0x4c], ebx
mov eax, dword [esp + 0x7c]
mov ebx, dword [esp + 0xc0]
mov ebp, dword [esp + 0xc4]
jmp 0x5a3998
mov dword [esp], eax
mov byte [esp + 4], 8
call fcn.005a0790
jmp 0x5a39f5
cmp bl, 0x28
jne 0x5a3b03
movzx ebx, word [eax]
test bx, 0x40
je 0x5a3a64
cmp ecx, 2
jl 0x5a3a64
movzx ebx, byte [edx + 1]
cmp bl, 0x3f
je 0x5a3aad
mov ebx, dword [eax + 0x14]
inc ebx
mov dword [eax + 0x14], ebx
mov dword [esp], eax
mov byte [esp + 4], pe_nt_image_headers32
call fcn.005a0790
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x7c]
mov edx, dword [ecx + 0x14]
mov dword [eax + 0x30], edx
mov eax, dword [esp + 0x50]
lea edx, [eax - 2]
sar edx, 0x1f
xor edx, 0xffffffff
and edx, 1
mov ebx, dword [esp + 0x74]
add edx, ebx
dec eax
mov ecx, eax
movzx eax, byte [esp + 0x3b]
xor ebx, ebx
xor ebp, ebp
jmp 0x5a3a15
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.005a4a80
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0xc]
test eax, eax
jne 0x5a3ae3
mov ecx, edx
movzx eax, byte [esp + 0x3b]
xor ebp, ebp
mov edx, ebx
xor ebx, ebx
jmp 0x5a3a15
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], ecx
add esp, 0xbc
ret
mov dword [esp], edx
mov dword [esp + 4], ecx
call fcn.005a8a30
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x3c], ebx
mov ebp, dword [esp + 0xc]
mov dword [esp + 0x58], ebp
test edx, edx
jne 0x5a3b55
mov ecx, dword [esp + 0x7c]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.005a0740
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x3c]
movzx eax, byte [esp + 0x3b]
xor ebx, ebx
xor ebp, ebp
jmp 0x5a3a15
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], edx
mov dword [esp + 0xd4], ecx
add esp, 0xbc
ret
cmp bl, 0x29
je 0x5a3cb0
lea ebp, [ebx - 0x2a]
xchg ebp, eax
cmp al, 1
xchg ebp, eax
jbe 0x5a3be6
cmp bl, 0x2e
jne 0x5a3bda
movzx ebx, word [eax]
test bx, 8
je 0x5a3bcb
mov dword [esp], eax
mov byte [esp + 4], 6
call fcn.005a0790
mov eax, dword [esp + 0x50]
lea ecx, [eax - 2]
sar ecx, 0x1f
xor ecx, 0xffffffff
and ecx, 1
mov edx, dword [esp + 0x74]
add edx, ecx
lea ecx, [eax - 1]
movzx eax, byte [esp + 0x3b]
xor ebx, ebx
xor ebp, ebp
jmp 0x5a3a15
mov dword [esp], eax
mov byte [esp + 4], 5
call fcn.005a0790
jmp 0x5a3ba4
mov ebp, dword [esp + 0xc4]
jmp 0x5a3b03
cmp bl, 0x2a
jne 0x5a3c8b
mov ebx, 0xe
mov byte [esp + 0x3b], bl
mov dword [esp], eax
mov byte [esp + 4], bl
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
lea ebp, [ecx - 2]
sar ebp, 0x1f
xor ebp, 0xffffffff
and ebp, 1
add ebp, edx
mov dword [esp + 0x18], ebp
lea ebp, [ecx - 1]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], edi
mov ebp, dword [esp + 0x4c]
mov dword [esp + 0x24], ebp
call fcn.005a0880
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x30]
mov ebx, dword [esp + 0x2c]
test edx, edx
jne 0x5a3c6b
mov edx, eax
mov ecx, ebx
movzx eax, byte [esp + 0x3b]
mov ebx, dword [esp + 0x50]
mov ebp, dword [esp + 0x74]
jmp 0x5a3a15
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], edx
mov dword [esp + 0xd4], ecx
add esp, 0xbc
ret
cmp bl, 0x2b
jne 0x5a3c9a
mov ebx, 0xf
jmp 0x5a3bf4
cmp bl, 0x3f
jne 0x5a3ca9
mov ebx, 0x10
jmp 0x5a3bf4
mov ebx, esi
jmp 0x5a3bf4
mov dword [esp], eax
call fcn.005a5950
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
test ecx, ecx
jne 0x5a3ceb
mov eax, dword [esp + 0x50]
lea ecx, [eax - 2]
sar ecx, 0x1f
xor ecx, 0xffffffff
and ecx, 1
mov edx, dword [esp + 0x74]
add edx, ecx
lea ecx, [eax - 1]
movzx eax, byte [esp + 0x3b]
xor ebx, ebx
xor ebp, ebp
jmp 0x5a3a15
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], ecx
mov dword [esp + 0xd4], eax
add esp, 0xbc
ret
cmp bl, 0x5c
ja 0x5a43d7
cmp bl, 0x3f
je 0x5a3be6
cmp bl, 0x5b
je 0x5a4381
cmp bl, 0x5c
jne 0x5a3b03
movzx ebx, word [eax]
test bx, 0x40
je 0x5a3d66
cmp ecx, 2
jl 0x5a3d66
movzx ebx, byte [edx + 1]
cmp bl, 0x43
ja 0x5a41d8
cmp bl, 0x41
je 0x5a41a4
cmp bl, 0x42
je 0x5a4170
cmp bl, 0x43
je 0x5a40d2
mov ebx, dword [eax + 0x10]
mov dword [esp + 0x68], ebx
test ebx, ebx
je 0x5a40b5
mov edi, ebp
mov ebp, dword [0x77c810]
mov edx, dword [ebx + 0x10]
lea ecx, [eax + 0x10]
test ebp, ebp
jne 0x5a4090
mov dword [eax + 0x10], edx
lea edi, [esp + 0x80]
mov edx, eax
xor eax, eax
call fcn.0044a0c1
mov ecx, dword [0x77c810]
test ecx, ecx
jne 0x5a4064
mov edi, ebx
lea esi, [esp + 0x80]
call fcn.0044a54a
mov dword [esp + 0x6c], ebx
mov byte [ebx], 4
movzx ecx, word [edx]
mov word [ebx + 2], cx
mov ecx, dword [esp + 0x50]
cmp ecx, 2
jl 0x5a405b
mov ebp, dword [esp + 0x74]
movzx esi, byte [ebp + 1]
xchg esi, eax
cmp al, 0x70
xchg esi, eax
je 0x5a3f75
xchg esi, eax
cmp al, 0x50
xchg esi, eax
je 0x5a3f75
lea esi, [ebx + 0x20]
test byte [esi], al
mov dword [esp], edx
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 2
call fcn.005a6380
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x48], ecx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x64], edx
mov ebx, dword [esp + 0x20]
mov ebp, dword [esp + 0x18]
test ebp, ebp
je 0x5a3e96
mov esi, dword [esp + 0x6c]
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], ebx
mov eax, dword [0x77c810]
lea ebx, [esi + 0x14]
test eax, eax
jne 0x5a3e7c
mov dword [esi + 0x14], ebp
mov eax, dword [esp + 0x7c]
mov dword [esp], eax
mov dword [esp + 4], esi
call fcn.005a0020
mov edx, dword [esp + 0x64]
mov ecx, dword [esp + 0x48]
movzx eax, byte [esp + 0x3b]
xor ebx, ebx
xor ebp, ebp
jmp 0x5a3a15
mov dword [esp], ebx
mov dword [esp + 4], ebp
call fcn.0040d580
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x64]
mov esi, dword [esp + 0x6c]
jmp 0x5a3e56
mov eax, dword [esp + 0x7c]
mov ecx, dword [eax + 0x10]
mov edx, dword [0x77c810]
mov ebx, dword [esp + 0x6c]
lea ebp, [ebx + 0x10]
test edx, edx
jne 0x5a3f5c
mov dword [ebx + 0x10], ecx
mov ecx, dword [0x77c810]
lea edx, [eax + 0x10]
test ecx, ecx
jne 0x5a3f47
mov dword [eax + 0x10], ebx
mov dword [esp], eax
mov ecx, dword [esp + 0x74]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 8], ecx
call fcn.005a5c00
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x3c], edx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x58], ebx
mov ebp, dword [esp + 0x1c]
test ecx, ecx
jne 0x5a3f27
mov ecx, dword [esp + 0x7c]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.005a0740
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x3c]
movzx eax, byte [esp + 0x3b]
xor ebx, ebx
xor ebp, ebp
jmp 0x5a3a15
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], ecx
mov dword [esp + 0xd4], ebp
add esp, 0xbc
ret
mov dword [esp], edx
mov dword [esp + 4], ebx
call fcn.0040d580
mov eax, dword [esp + 0x7c]
jmp 0x5a3ec9
mov dword [esp], ebp
mov dword [esp + 4], ecx
call fcn.0040d580
mov eax, dword [esp + 0x7c]
mov ebx, dword [esp + 0x6c]
jmp 0x5a3eb5
lea esi, [ebx + 0x20]
test byte [esi], al
mov dword [esp], edx
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 2
call fcn.005a6950
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x40], edx
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x5c], ebx
mov ebp, dword [esp + 0x20]
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
test ecx, ecx
jne 0x5a403b
test esi, esi
je 0x5a4024
mov eax, dword [esp + 0x6c]
mov dword [eax + 0x18], edi
mov dword [eax + 0x1c], ebp
mov ecx, dword [0x77c810]
lea ebp, [eax + 0x14]
test ecx, ecx
jne 0x5a400a
mov dword [eax + 0x14], esi
mov ecx, dword [esp + 0x7c]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.005a0020
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x40]
movzx eax, byte [esp + 0x3b]
xor ebx, ebx
xor ebp, ebp
jmp 0x5a3a15
mov dword [esp], ebp
mov dword [esp + 4], esi
call fcn.0040d580
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x40]
mov ebx, dword [esp + 0x5c]
jmp 0x5a3fe4
xor eax, eax
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x7c]
mov ebx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x74]
jmp 0x5a3df3
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], ecx
mov dword [esp + 0xd4], eax
add esp, 0xbc
ret
mov ebp, dword [esp + 0x74]
jmp 0x5a3df3
lea ecx, [0x638be0]
mov dword [esp], ecx
mov dword [esp + 4], ebx
lea ecx, [esp + 0x80]
mov dword [esp + 8], ecx
call fcn.0040d690
xor eax, eax
mov edx, dword [esp + 0x7c]
mov ebx, dword [esp + 0x68]
jmp 0x5a3dba
mov dword [esp], ecx
mov dword [esp + 4], edx
call fcn.0040d580
mov eax, dword [esp + 0x7c]
mov ebx, dword [esp + 0x68]
movzx esi, byte [esp + 0x3b]
mov edi, dword [esp + 0xc4]
jmp 0x5a3d8e
lea ebx, [0x638be0]
mov dword [esp], ebx
call fcn.0040cd50
mov ebx, dword [esp + 4]
xor eax, eax
mov edx, dword [esp + 0x7c]
jmp 0x5a3dba
lea eax, [0x61e2c0]
mov dword [esp], eax
call fcn.0040cd50
mov eax, dword [esp + 4]
mov dword [esp + 0x78], eax
mov dword [eax + 4], 0x17
mov ecx, dword [0x77c810]
test ecx, ecx
jne 0x5a4158
lea ecx, [0x6515a3]
mov dword [eax], ecx
mov dword [eax + 0xc], 2
mov ecx, dword [0x77c810]
lea edx, [eax + 8]
test ecx, ecx
jne 0x5a4142
mov ecx, dword [esp + 0x74]
mov dword [eax + 8], ecx
mov dword [esp + 0xcc], 0
lea ecx, [0x742000]
mov dword [esp + 0xd0], ecx
mov dword [esp + 0xd4], eax
add esp, 0xbc
ret
mov dword [esp], edx
mov ecx, dword [esp + 0x74]
mov dword [esp + 4], ecx
call fcn.0040d580
mov eax, dword [esp + 0x78]
jmp 0x5a411c
mov dword [esp], eax
lea ecx, [0x6515a3]
mov dword [esp + 4], ecx
call fcn.0040d580
mov eax, dword [esp + 0x78]
jmp 0x5a4101
mov dword [esp], eax
mov byte [esp + 4], 0xc
call fcn.005a0790
mov eax, dword [esp + 0x50]
lea ecx, [eax - 3]
sar ecx, 0x1f
xor ecx, 0xffffffff
and ecx, 2
mov edx, dword [esp + 0x74]
add edx, ecx
lea ecx, [eax - 2]
movzx eax, byte [esp + 0x3b]
xor ebx, ebx
xor ebp, ebp
jmp 0x5a3a15
mov dword [esp], eax
mov byte [esp + 4], 9
call fcn.005a0790
mov eax, dword [esp + 0x50]
lea ecx, [eax - 3]
sar ecx, 0x1f
xor ecx, 0xffffffff
and ecx, 2
mov edx, dword [esp + 0x74]
add edx, ecx
lea ecx, [eax - 2]
movzx eax, byte [esp + 0x3b]
xor ebx, ebx
xor ebp, ebp
jmp 0x5a3a15
cmp bl, 0x51
je 0x5a4254
cmp bl, 0x62
je 0x5a4220
cmp bl, 0x7a
je 0x5a41ec
jmp 0x5a3d66
mov dword [esp], eax
mov byte [esp + 4], 0xa
call fcn.005a0790
mov eax, dword [esp + 0x50]
lea ecx, [eax - 3]
sar ecx, 0x1f
xor ecx, 0xffffffff
and ecx, 2
mov edx, dword [esp + 0x74]
add edx, ecx
lea ecx, [eax - 2]
movzx eax, byte [esp + 0x3b]
xor ebx, ebx
xor ebp, ebp
jmp 0x5a3a15
mov dword [esp], eax
mov byte [esp + 4], 0xb
call fcn.005a0790
mov eax, dword [esp + 0x50]
lea ecx, [eax - 3]
sar ecx, 0x1f
xor ecx, 0xffffffff
and ecx, 2
mov edx, dword [esp + 0x74]
add edx, ecx
lea ecx, [eax - 2]
movzx eax, byte [esp + 0x3b]
xor ebx, ebx
xor ebp, ebp
jmp 0x5a3a15
mov dword [esp], edx
mov dword [esp + 4], ecx
lea ebx, [0x64ad14]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 2
call fcn.004c0f10
mov eax, dword [esp + 0x10]
test eax, eax
jge 0x5a4329
mov ecx, dword [esp + 0x50]
lea edx, [ecx - 3]
sar edx, 0x1f
xor edx, 0xffffffff
and edx, 2
mov ebx, dword [esp + 0x74]
add edx, ebx
add ecx, 0xfffffffe
xor eax, eax
xor ebx, ebx
mov dword [esp + 0x58], eax
mov dword [esp + 0x3c], ebx
test ecx, ecx
je 0x5a42f7
mov dword [esp], edx
mov dword [esp + 4], ecx
call fcn.005a8a30
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov dword [esp + 0x44], edx
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x60], ebx
mov ebp, dword [esp + 8]
test ecx, ecx
jne 0x5a4309
mov eax, dword [esp + 0x7c]
mov dword [esp], eax
mov dword [esp + 4], ebp
call fcn.005a0740
mov eax, dword [esp + 0x58]
mov ebx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x60]
test ecx, ecx
jne 0x5a42a7
mov edx, eax
mov ecx, ebx
movzx eax, byte [esp + 0x3b]
xor ebx, ebx
xor ebp, ebp
jmp 0x5a3a15
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], ecx
mov dword [esp + 0xd4], eax
add esp, 0xbc
ret
cmp eax, 2
jb 0x5a437a
mov ecx, dword [esp + 0x50]
cmp eax, ecx
ja 0x5a437a
lea edx, [eax - 3]
sar edx, 0x1f
xor edx, 0xffffffff
and edx, 2
mov ebx, dword [esp + 0x74]
add edx, ebx
lea ebp, [eax - 2]
mov esi, edx
lea edx, [eax + 2]
cmp edx, ecx
ja 0x5a4373
sub ecx, edx
mov eax, ebp
lea ebp, [ecx - 1]
sar ebp, 0x1f
xor ebp, 0xffffffff
and edx, ebp
lea ebp, [edx + ebx]
mov ebx, ecx
mov ecx, eax
mov edx, esi
mov eax, ebp
jmp 0x5a429b
call fcn.004246c0
ud2
call fcn.004246c0
ud2
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.005a7130
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0xc]
test ecx, ecx
jne 0x5a43b7
mov ecx, edx
movzx eax, byte [esp + 0x3b]
xor ebp, ebp
mov edx, ebx
xor ebx, ebx
jmp 0x5a3a15
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], ecx
mov dword [esp + 0xd4], eax
add esp, 0xbc
ret
cmp bl, 0x5e
jne 0x5a4429
movzx ebx, word [eax]
test bx, 0x10
je 0x5a441a
mov dword [esp], eax
mov byte [esp + 4], 9
call fcn.005a0790
mov eax, dword [esp + 0x50]
lea ecx, [eax - 2]
sar ecx, 0x1f
xor ecx, 0xffffffff
and ecx, 1
mov edx, dword [esp + 0x74]
add edx, ecx
lea ecx, [eax - 1]
movzx eax, byte [esp + 0x3b]
xor ebx, ebx
xor ebp, ebp
jmp 0x5a3a15
mov dword [esp], eax
mov byte [esp + 4], 7
call fcn.005a0790
jmp 0x5a43f3
cmp bl, 0x7b
je 0x5a4493
cmp bl, 0x7c
je 0x5a4438
jmp 0x5a3b03
mov dword [esp], eax
call fcn.005a5310
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
test ecx, ecx
jne 0x5a4473
mov eax, dword [esp + 0x50]
lea ecx, [eax - 2]
sar ecx, 0x1f
xor ecx, 0xffffffff
and ecx, 1
mov edx, dword [esp + 0x74]
add edx, ecx
lea ecx, [eax - 1]
movzx eax, byte [esp + 0x3b]
xor ebx, ebx
xor ebp, ebp
jmp 0x5a3a15
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], ecx
mov dword [esp + 0xd4], eax
add esp, 0xbc
ret
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.005a4860
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
movzx edx, byte [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x14]
test dl, dl
jne 0x5a44f7
mov eax, dword [esp + 0x7c]
mov dword [esp], eax
mov dword [esp + 4], 0x7b
call fcn.005a0740
mov eax, dword [esp + 0x50]
lea ecx, [eax - 2]
sar ecx, 0x1f
xor ecx, 0xffffffff
and ecx, 1
mov edx, dword [esp + 0x74]
add edx, ecx
lea ecx, [eax - 1]
mov eax, 0x11
xor ebx, ebx
xor ebp, ebp
jmp 0x5a3a15
cmp eax, 0x3e8
ja 0x5a45a1
cmp ecx, 0x3e8
jg 0x5a45a1
test ecx, ecx
jl 0x5a451a
cmp eax, ecx
jg 0x5a45a1
mov edx, dword [esp + 0x7c]
mov dword [esp], edx
mov byte [esp + 4], 0x11
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0x74]
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x70]
mov dword [esp + 0x20], ebx
mov ebx, dword [esp + 0x4c]
mov dword [esp + 0x24], ebx
call fcn.005a0880
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 0x34]
test eax, eax
jne 0x5a4581
mov eax, 0x11
mov ebx, dword [esp + 0x50]
mov ebp, dword [esp + 0x74]
jmp 0x5a3a15
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], ebx
add esp, 0xbc
ret
mov eax, dword [esp + 0x50]
mov ecx, eax
sub eax, ebx
mov dword [esp + 0x54], eax
cmp eax, ecx
ja 0x5a4653
lea ecx, [0x61e2c0]
mov dword [esp], ecx
call fcn.0040cd50
mov eax, dword [esp + 4]
mov dword [esp + 0x78], eax
mov dword [eax + 4], 0x14
mov ecx, dword [0x77c810]
test ecx, ecx
jne 0x5a463b
lea ecx, [0x650190]
mov dword [eax], ecx
mov ecx, dword [esp + 0x54]
mov dword [eax + 0xc], ecx
mov ecx, dword [0x77c810]
lea edx, [eax + 8]
test ecx, ecx
jne 0x5a4625
mov ecx, dword [esp + 0x74]
mov dword [eax + 8], ecx
mov dword [esp + 0xcc], 0
lea ecx, [0x742000]
mov dword [esp + 0xd0], ecx
mov dword [esp + 0xd4], eax
add esp, 0xbc
ret
mov dword [esp], edx
mov ecx, dword [esp + 0x74]
mov dword [esp + 4], ecx
call fcn.0040d580
mov eax, dword [esp + 0x78]
jmp 0x5a45ff
mov dword [esp], eax
lea ecx, [0x650190]
mov dword [esp + 4], ecx
call fcn.0040d580
mov eax, dword [esp + 0x78]
jmp 0x5a45e4
call fcn.004246c0
ud2
mov dword [esp], eax
call fcn.005a0fc0
mov eax, dword [esp + 0x7c]
mov dword [esp], eax
call fcn.005a5630
movzx eax, byte [esp + 4]
test al, al
je 0x5a4780
mov eax, dword [esp + 0x7c]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0xc]
dec ecx
cmp ecx, edx
ja 0x5a4779
mov dword [eax + 8], ecx
mov dword [esp], eax
call fcn.005a1180
mov eax, dword [esp + 0x7c]
mov ecx, dword [eax + 8]
mov eax, dword [eax + 4]
cmp ecx, 1
je 0x5a4753
lea eax, [0x61e2c0]
mov dword [esp], eax
call fcn.0040cd50
mov eax, dword [esp + 4]
mov dword [esp + 0x78], eax
mov dword [eax + 4], 0x11
mov ecx, dword [0x77c810]
test ecx, ecx
jne 0x5a473b
lea ecx, [0x64ee1c]
mov dword [eax], ecx
mov ecx, dword [esp + 0xc4]
mov dword [eax + 0xc], ecx
mov ecx, dword [0x77c810]
lea edx, [eax + 8]
test ecx, ecx
jne 0x5a4722
mov ecx, dword [esp + 0xc0]
mov dword [eax + 8], ecx
mov dword [esp + 0xcc], 0
lea ecx, [0x742000]
mov dword [esp + 0xd0], ecx
mov dword [esp + 0xd4], eax
add esp, 0xbc
ret
mov dword [esp], edx
mov ecx, dword [esp + 0xc0]
mov dword [esp + 4], ecx
call fcn.0040d580
mov eax, dword [esp + 0x78]
jmp 0x5a46fc
mov dword [esp], eax
lea ecx, [0x64ee1c]
mov dword [esp + 4], ecx
call fcn.0040d580
mov eax, dword [esp + 0x78]
jmp 0x5a46db
mov eax, dword [eax]
mov dword [esp + 0xcc], eax
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 0
add esp, 0xbc
ret
call fcn.004246c0
ud2
mov eax, dword [esp + 0x7c]
jmp 0x5a4691
mov dword [esp], ebx
mov edx, dword [esp + 0xc0]
mov dword [esp + 4], edx
call fcn.0040d580
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0xc4]
mov edx, dword [esp + 0xc0]
jmp 0x5a3988
mov ecx, dword [esp + 0xc0]
mov dword [esp], ecx
mov edx, dword [esp + 0xc4]
mov dword [esp + 4], edx
call fcn.005a8900
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
test ecx, ecx
je 0x5a47f9
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], ecx
mov dword [esp + 0xd4], eax
add esp, 0xbc
ret
mov eax, dword [esp + 0xc0]
mov dword [esp], eax
mov eax, dword [esp + 0xc4]
mov dword [esp + 4], eax
movzx eax, word [esp + 0xc8]
mov word [esp + 8], ax
call fcn.005a3730
mov eax, dword [esp + 0xc]
mov dword [esp + 0xcc], eax
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 0
add esp, 0xbc
ret
call fcn.00448420
jmp fcn.005a3910