Function at 0x4c3df0
Capabilities:
Read file on windows
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x6aacd1
mov eax, dword fs:[0]
push eax
mov eax, 0x1214
call fcn.00666cc0
mov eax, dword [0x7e2670]
xor eax, ebp
mov dword [ebp - 0x24], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x1220], ecx
mov dword [ebp - 0x294], 0x1c
mov dword [ebp - 0x2bc], 0x1c
mov dword [ebp - 0x51c], 0x1c
mov dword [ebp - 0x248], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x298], 0
mov byte [ebp - 0x244], 0
push 0x1ff
push 0
lea eax, [ebp - 0x243]
push eax
call fcn.006665c0
add esp, 0xc
mov dword [ebp - 0x518], 0
mov dword [ebp - 0x14], 0
mov byte [ebp - 0x44], 0
xor ecx, ecx
mov dword [ebp - 0x43], ecx
mov dword [ebp - 0x3f], ecx
mov dword [ebp - 0x3b], ecx
mov dword [ebp - 0x37], ecx
mov dword [ebp - 0x33], ecx
mov dword [ebp - 0x2f], ecx
mov dword [ebp - 0x2b], ecx
mov word [ebp - 0x27], cx
mov byte [ebp - 0x25], cl
mov byte [ebp - 0x514], 0
xor edx, edx
mov dword [ebp - 0x513], edx
mov dword [ebp - 0x50f], edx
mov dword [ebp - 0x50b], edx
mov dword [ebp - 0x507], edx
mov dword [ebp - 0x503], edx
mov dword [ebp - 0x4ff], edx
mov dword [ebp - 0x4fb], edx
mov word [ebp - 0x4f7], dx
mov byte [ebp - 0x4f5], dl
mov byte [ebp - 0x2b8], 0
xor eax, eax
mov dword [ebp - 0x2b7], eax
mov dword [ebp - 0x2b3], eax
mov dword [ebp - 0x2af], eax
mov dword [ebp - 0x2ab], eax
mov dword [ebp - 0x2a7], eax
mov dword [ebp - 0x2a3], eax
mov dword [ebp - 0x29f], eax
mov word [ebp - 0x29b], ax
mov byte [ebp - 0x299], al
mov byte [ebp - 0x2e8], 0
xor ecx, ecx
mov dword [ebp - 0x2e7], ecx
mov word [ebp - 0x2e3], cx
mov byte [ebp - 0x2e1], cl
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x10], str.._cachedKey.data
mov byte [ebp - 0x2bd], 0
mov dword [ebp - 0x290], 0
movzx edx, byte [ebp + 0xc]
push edx
push str.LoadLakalaTmk_tmkSlot11__d_r_n
call fcn.0066610b
add esp, 8
mov byte [ebp - 0x19], 0
movzx eax, byte [ebp + 0x24]
test eax, eax
je 0x4c407e
push 0x730400
mov ecx, dword [ebp - 0x10]
push ecx
call fcn.00669fd1
add esp, 8
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0
je 0x4c4079
push 0
push 4
mov edx, dword [ebp - 0x20]
push edx
call fcn.00669e99
add esp, 0xc
mov eax, dword [ebp - 0x20]
push eax
push 1
push 0x10
lea ecx, [ebp - 0x2e0]
push ecx
call fcn.00669b18
add esp, 0x10
push 0x10
mov edx, dword [ebp + 0x18]
push edx
lea eax, [ebp - 0x2e0]
push eax
call fcn.00666d7b
add esp, 0xc
test eax, eax
jne 0x4c406d
mov dword [ebp - 0x51c], 0x1c
mov ecx, dword [ebp - 0x51c]
mov dword [ebp - 0x2bc], ecx
mov edx, dword [ebp - 0x2bc]
mov dword [ebp - 0x294], edx
mov eax, dword [ebp - 0x20]
push eax
push 1
mov ecx, dword [ebp - 0x294]
push ecx
lea edx, [ebp - 0x44]
push edx
call fcn.00669b18
add esp, 0x10
mov eax, dword [ebp - 0x20]
push eax
push 1
mov ecx, dword [ebp - 0x2bc]
push ecx
lea edx, [ebp - 0x514]
push edx
call fcn.00669b18
add esp, 0x10
mov eax, dword [ebp - 0x20]
push eax
push 1
mov ecx, dword [ebp - 0x51c]
push ecx
lea edx, [ebp - 0x2b8]
push edx
call fcn.00669b18
add esp, 0x10
push str.Use_the_cached_KSN_and_TMK__n
call fcn.0066610b
add esp, 4
mov eax, dword [ebp - 0x20]
push eax
call fcn.00669ba2
add esp, 4
jmp 0x4c42c1
mov ecx, dword [ebp + 0x28]
push ecx
call fcn.00666cf0
add esp, 4
cmp eax, 2
jb 0x4c40b5
mov edx, dword [ebp + 0x2c]
push edx
call fcn.00666cf0
add esp, 4
cmp eax, 2
jb 0x4c40b5
mov eax, dword [ebp + 0x30]
push eax
call fcn.00666cf0
add esp, 4
cmp eax, 2
jae 0x4c416d
lea ecx, [ebp - 0x608]
call fcn.004ce8e0
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x51c]
push ecx
lea edx, [ebp - 0x2b8]
push edx
lea eax, [ebp - 0x2bc]
push eax
lea ecx, [ebp - 0x514]
push ecx
lea edx, [ebp - 0x294]
push edx
lea eax, [ebp - 0x44]
push eax
mov ecx, dword [ebp + 0x18]
push ecx
mov edx, dword [ebp + 0x14]
push edx
mov eax, dword [ebp + 0x10]
push eax
lea ecx, [ebp - 0x608]
push ecx
mov ecx, dword [ebp - 0x1220]
call fcn.004c34a0
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0
je 0x4c4152
push 0x1388
call dword [sym.imp.KERNEL32.dll_Sleep]
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x290], edx
mov eax, dword [ebp - 0x290]
mov dword [ebp - 0x121c], eax
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x608]
call fcn.004ce910
mov eax, dword [ebp - 0x121c]
jmp 0x4c4950
mov byte [ebp - 0x19], 1
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x608]
call fcn.004ce910
jmp 0x4c421f
push str.using_ppq_data_r_n
call fcn.0066610b
add esp, 4
mov ecx, dword [ebp + 0x28]
push ecx
call fcn.00666cf0
add esp, 4
mov dword [ebp - 0x60c], eax
mov edx, dword [ebp + 0x28]
push edx
lea eax, [ebp - 0x60c]
push eax
lea ecx, [ebp - 0x44]
push ecx
call fcn.0049f060
add esp, 0xc
mov edx, dword [ebp - 0x60c]
mov dword [ebp - 0x294], edx
mov eax, dword [ebp + 0x2c]
push eax
call fcn.00666cf0
add esp, 4
mov dword [ebp - 0x60c], eax
mov ecx, dword [ebp + 0x2c]
push ecx
lea edx, [ebp - 0x60c]
push edx
lea eax, [ebp - 0x514]
push eax
call fcn.0049f060
add esp, 0xc
mov ecx, dword [ebp - 0x60c]
mov dword [ebp - 0x2bc], ecx
mov edx, dword [ebp + 0x30]
push edx
call fcn.00666cf0
add esp, 4
mov dword [ebp - 0x60c], eax
mov eax, dword [ebp + 0x30]
push eax
lea ecx, [ebp - 0x60c]
push ecx
lea edx, [ebp - 0x2b8]
push edx
call fcn.0049f060
add esp, 0xc
mov eax, dword [ebp - 0x60c]
mov dword [ebp - 0x51c], eax
push 0x730438
mov ecx, dword [ebp - 0x10]
push ecx
call fcn.00669fd1
add esp, 8
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0
je 0x4c42c1
mov edx, dword [ebp - 0x20]
push edx
push 1
push 4
push 0x73043c
call fcn.00669854
add esp, 0x10
mov eax, dword [ebp - 0x20]
push eax
push 1
push 0x10
mov ecx, dword [ebp + 0x18]
push ecx
call fcn.00669854
add esp, 0x10
mov edx, dword [ebp - 0x20]
push edx
push 1
push 0x1c
lea eax, [ebp - 0x44]
push eax
call fcn.00669854
add esp, 0x10
mov ecx, dword [ebp - 0x20]
push ecx
push 1
push 0x1c
lea edx, [ebp - 0x514]
push edx
call fcn.00669854
add esp, 0x10
mov eax, dword [ebp - 0x20]
push eax
push 1
push 0x1c
lea ecx, [ebp - 0x2b8]
push ecx
call fcn.00669854
add esp, 0x10
mov edx, dword [ebp - 0x20]
push edx
call fcn.00669ba2
add esp, 4
push str.Cache_the_KSN_and_TMK__n
call fcn.0066610b
add esp, 4
mov al, byte [ebp + 0xc]
mov byte [ebp - 0x5fc], al
mov ecx, dword [ebp - 0x294]
mov dword [ebp - 0x5f8], ecx
mov edx, dword [ebp - 0x294]
push edx
lea eax, [ebp - 0x44]
push eax
lea ecx, [ebp - 0x5f4]
push ecx
call fcn.00668860
add esp, 0xc
mov edx, dword [ebp - 0x2bc]
mov dword [ebp - 0x5d4], edx
mov eax, dword [ebp - 0x2bc]
push eax
lea ecx, [ebp - 0x514]
push ecx
lea edx, [ebp - 0x5d0]
push edx
call fcn.00668860
add esp, 0xc
mov eax, dword [ebp - 0x51c]
mov dword [ebp - 0x5b0], eax
mov ecx, dword [ebp - 0x51c]
push ecx
lea edx, [ebp - 0x2b8]
push edx
lea eax, [ebp - 0x5ac]
push eax
call fcn.00668860
add esp, 0xc
lea ecx, [ebp - 0x2e8]
push ecx
lea edx, [ebp - 0x2b8]
push edx
lea eax, [ebp - 0x514]
push eax
lea ecx, [ebp - 0x44]
push ecx
call fcn.004c4970
add esp, 0x10
movzx edx, byte [ebp - 0x19]
test edx, edx
je 0x4c4500
mov byte [ebp - 0x120c], 0
push 0x3ff
push 0
lea eax, [ebp - 0x120b]
push eax
call fcn.006665c0
add esp, 0xc
mov byte [ebp - 0xe0c], 0
push 0x3ff
push 0
lea ecx, [ebp - 0xe0b]
push ecx
call fcn.006665c0
add esp, 0xc
mov byte [ebp - 0xa0c], 0
push 0x3ff
push 0
lea edx, [ebp - 0xa0b]
push edx
call fcn.006665c0
add esp, 0xc
mov eax, dword [ebp - 0x294]
push eax
lea ecx, [ebp - 0x44]
push ecx
lea edx, [ebp - 0x120c]
push edx
call fcn.004c4c70
add esp, 0xc
mov eax, dword [ebp - 0x2bc]
push eax
lea ecx, [ebp - 0x514]
push ecx
lea edx, [ebp - 0xe0c]
push edx
call fcn.004c4c70
add esp, 0xc
mov eax, dword [ebp - 0x51c]
push eax
lea ecx, [ebp - 0x2b8]
push ecx
lea edx, [ebp - 0xa0c]
push edx
call fcn.004c4c70
add esp, 0xc
call fcn.006684b5
add eax, 0x20
push eax
call fcn.00668459
add esp, 4
mov eax, dword [ebp + 0x18]
push eax
push str.LKL_KSN_s_r_n
call fcn.0066610b
add esp, 8
mov ecx, dword [ebp + 0x1c]
push ecx
push str.LKL_CSN_s_r_n
call fcn.0066610b
add esp, 8
movzx edx, byte [ebp + 0xc]
push edx
push str.LKL_SLOT_d_r_n
call fcn.0066610b
add esp, 8
mov eax, dword [ebp + 0x10]
push eax
push str.LKL_XIKAPIN_s_r_n
call fcn.0066610b
add esp, 8
mov ecx, dword [ebp + 0x14]
push ecx
push str.LKL_FAKAPIN_s_r_n
call fcn.0066610b
add esp, 8
lea edx, [ebp - 0x120c]
push edx
push str.LKL_CCK_s_r_n
call fcn.0066610b
add esp, 8
lea eax, [ebp - 0xe0c]
push eax
push str.LKL_KEK_s_r_n
call fcn.0066610b
add esp, 8
lea ecx, [ebp - 0xa0c]
push ecx
push str.LKL_MK_s_r_n
call fcn.0066610b
add esp, 8
movzx edx, byte [ebp - 0x2e6]
push edx
movzx eax, byte [ebp - 0x2e7]
push eax
movzx ecx, byte [ebp - 0x2e8]
push ecx
push str.LKL_KCV_02x_02x_02x_r_n
call fcn.0066610b
add esp, 0x10
call fcn.006684b5
add eax, 0x20
push eax
call fcn.00668459
add esp, 4
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x4c4525
movzx edx, byte [ebp - 0x2e6]
push edx
movzx eax, byte [ebp - 0x2e7]
push eax
movzx ecx, byte [ebp - 0x2e8]
push ecx
push str.card_kcv:_02x_02x_02x_n
call fcn.0066610b
add esp, 0x10
lea edx, [ebp - 0x518]
push edx
lea eax, [ebp - 0x4f4]
push eax
lea ecx, [ebp - 0x5fc]
push ecx
push 1
push 0xe
mov edx, dword [ebp + 0x1c]
push edx
push 0x10
mov eax, dword [ebp + 0x18]
push eax
call fcn.004c27c0
add esp, 0x20
movzx ecx, byte [ebp + 8]
test ecx, ecx
jne 0x4c470e
mov dword [ebp - 0x1210], 3
mov edx, dword [ebp - 0x1210]
mov eax, dword [ebp - 0x1210]
sub eax, 1
mov dword [ebp - 0x1210], eax
test edx, edx
je 0x4c45c9
push 0x4e20
lea ecx, [ebp - 0x298]
push ecx
lea edx, [ebp - 0x244]
push edx
mov eax, dword [ebp - 0x518]
push eax
lea ecx, [ebp - 0x4f4]
push ecx
mov ecx, dword [ebp - 0x1220]
call fcn.004c4cc0
mov dword [ebp - 0x290], eax
cmp dword [ebp - 0x290], 0
jne 0x4c45bc
jmp 0x4c45c9
push 0xc8
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x4c4566
cmp dword [ebp - 0x290], 0
jne 0x4c4703
push 0x40
push 0
lea edx, [ebp - 0x28c]
push edx
call fcn.006665c0
add esp, 0xc
lea eax, [ebp - 0x2f0]
push eax
lea ecx, [ebp - 0x14]
push ecx
lea edx, [ebp - 0x28c]
push edx
mov eax, dword [ebp + 0x20]
push eax
mov ecx, dword [ebp - 0x298]
push ecx
lea edx, [ebp - 0x244]
push edx
call fcn.004c2930
add esp, 0x18
mov eax, dword [ebp + 0x20]
cmp dword [eax], 0
jne 0x4c4701
lea ecx, [ebp - 0x28c]
push ecx
push 0x730510
call fcn.0066610b
add esp, 8
push 3
lea edx, [ebp - 0x2e8]
push edx
mov eax, dword [ebp - 0x298]
lea ecx, [ebp + eax - 0x247]
push ecx
call fcn.00666d7b
add esp, 0xc
test eax, eax
je 0x4c466f
push str.KCV_not_the_same_n
call fcn.0066610b
add esp, 4
or eax, 0xffffffff
jmp 0x4c4950
push str.KCV_check_OK_n
call fcn.0066610b
add esp, 4
movzx edx, byte [ebp + 0xc]
cmp edx, 1
je 0x4c4690
mov ecx, dword [ebp - 0x1220]
call fcn.004c3b00
mov dword [ebp - 0x248], 0
jmp 0x4c46ab
mov eax, dword [ebp - 0x248]
add eax, 1
mov dword [ebp - 0x248], eax
mov ecx, dword [ebp - 0x248]
cmp ecx, dword [ebp - 0x14]
jge 0x4c4701
mov edx, dword [ebp - 0x248]
movzx eax, byte [ebp + edx*4 - 0x2ed]
push eax
mov ecx, dword [ebp - 0x248]
movzx edx, byte [ebp + ecx*4 - 0x2ee]
push edx
mov eax, dword [ebp - 0x248]
movzx ecx, byte [ebp + eax*4 - 0x2ef]
push ecx
mov edx, dword [ebp - 0x248]
movzx eax, byte [ebp + edx*4 - 0x2f0]
push eax
push str.KID_d_nKCV_02x_02x_02x_n
call fcn.0066610b
add esp, 0x14
jmp 0x4c469c
jmp 0x4c470e
mov eax, dword [ebp - 0x290]
jmp 0x4c4950
movzx ecx, byte [ebp + 8]
cmp ecx, 1
jne 0x4c494a
push 8
push 0
lea edx, [ebp - 0x1218]
push edx
call fcn.006665c0
add esp, 0xc
push 0x4e20
mov eax, dword [ebp - 0x518]
push eax
lea ecx, [ebp - 0x4f4]
push ecx
push 0xd0
mov ecx, dword [ebp - 0x1220]
call fcn.004c6900
mov dword [ebp - 0x290], eax
cmp dword [ebp - 0x290], 0
jne 0x4c494a
push 0x4e20
lea edx, [ebp - 0x244]
push edx
lea eax, [ebp - 0x1218]
push eax
mov ecx, dword [ebp - 0x1220]
call fcn.004c6320
mov dword [ebp - 0x290], eax
movzx ecx, byte [ebp - 0x1216]
push ecx
push str.type:__x_n
call fcn.0066610b
add esp, 8
movzx edx, byte [ebp - 0x1215]
push edx
push str.code:__x_n
call fcn.0066610b
add esp, 8
movzx eax, word [ebp - 0x1214]
push eax
push 0x730574
call fcn.0066610b
add esp, 8
push 0x730580
call fcn.0066610b
add esp, 4
mov dword [ebp - 0x248], 0
jmp 0x4c47ef
mov ecx, dword [ebp - 0x248]
add ecx, 1
mov dword [ebp - 0x248], ecx
movzx edx, word [ebp - 0x1214]
cmp dword [ebp - 0x248], edx
jge 0x4c481c
mov eax, dword [ebp - 0x248]
movzx ecx, byte [ebp + eax - 0x244]
push ecx
push 0x73058c
call fcn.0066610b
add esp, 8
jmp 0x4c47e0
push 0x730594
call fcn.0066610b
add esp, 4
cmp dword [ebp - 0x290], 0
jne 0x4c4841
movzx edx, byte [ebp - 0x1215]
cmp edx, 0xd0
je 0x4c4850
xor ecx, ecx
jne 0x4c4841
mov eax, dword [ebp - 0x290]
jmp 0x4c4950
movzx edx, byte [ebp - 0x244]
test edx, edx
je 0x4c4876
movzx eax, byte [ebp - 0x244]
add eax, 0x300
mov dword [ebp - 0x290], eax
xor ecx, ecx
jne 0x4c486d
jmp 0x4c494a
push 0x40
push 0
lea edx, [ebp - 0x28c]
push edx
call fcn.006665c0
add esp, 0xc
lea eax, [ebp - 0x2f0]
push eax
lea ecx, [ebp - 0x14]
push ecx
lea edx, [ebp - 0x28c]
push edx
mov eax, dword [ebp + 0x20]
push eax
movzx ecx, word [ebp - 0x1214]
sub ecx, 1
push ecx
lea edx, [ebp - 0x243]
push edx
call fcn.004c2930
add esp, 0x18
mov eax, dword [ebp + 0x20]
cmp dword [eax], 0
jne 0x4c494a
lea ecx, [ebp - 0x28c]
push ecx
push str.EXSN_s_n
call fcn.0066610b
add esp, 8
mov dword [ebp - 0x248], 0
jmp 0x4c48f4
mov edx, dword [ebp - 0x248]
add edx, 1
mov dword [ebp - 0x248], edx
mov eax, dword [ebp - 0x248]
cmp eax, dword [ebp - 0x14]
jge 0x4c494a
mov ecx, dword [ebp - 0x248]
movzx edx, byte [ebp + ecx*4 - 0x2ed]
push edx
mov eax, dword [ebp - 0x248]
movzx ecx, byte [ebp + eax*4 - 0x2ee]
push ecx
mov edx, dword [ebp - 0x248]
movzx eax, byte [ebp + edx*4 - 0x2ef]
push eax
mov ecx, dword [ebp - 0x248]
movzx edx, byte [ebp + ecx*4 - 0x2f0]
push edx
push str.KID_d_nKCV_02X_02X_02X_n
call fcn.0066610b
add esp, 0x14
jmp 0x4c48e5
mov eax, dword [ebp - 0x290]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x24]
xor ecx, ebp
call fcn.006665ac
mov esp, ebp
pop ebp
ret 0x2c