Function at 0x42ef10
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x56ef10
mov eax, dword fs:[0]
push eax
sub esp, 0x68
mov eax, dword [0x5d480c]
xor eax, esp
mov dword [esp + 0x64], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x5d480c]
xor eax, esp
push eax
lea eax, [esp + 0x7c]
mov dword fs:[0], eax
mov esi, ecx
call fcn.0045e1b2
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x42ef5e
push 0x80004005
call fcn.004017e0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x40], eax
lea eax, [esi + 0x3250]
push str.config.ini
push eax
lea ecx, [esp + 0x44]
push ecx
mov dword [esp + 0x90], 0
call fcn.00407ab0
add esp, 0xc
push eax
lea ecx, [esp + 0x44]
mov byte [esp + 0x88], 1
call fcn.0041a0d0
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
mov byte [esp + 0x84], 0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42efcc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [esp + 0x40]
push ecx
lea ebp, [edi - 0x10]
mov dword [esp + 0x40], esp
mov ebx, esp
push ebp
call fcn.00406320
add eax, 0x10
add esp, 4
mov dword [ebx], eax
call fcn.00533380
add esp, 4
test eax, eax
jne 0x42f037
mov eax, dword [0x5d7f84]
test eax, eax
je 0x42f00b
push str.LoadConfig___PathFileExists_failed
push eax
call fcn.00527ec0
add esp, 8
mov dword [esp + 0x84], 0xffffffff
lea ecx, [ebp + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42f030
mov ecx, dword [ebp]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push ebp
call edx
xor eax, eax
jmp 0x430492
xor eax, eax
mov word [esp + 0x24], ax
mov eax, edi
mov dword [esp + 0x38], 7
mov dword [esp + 0x34], 0
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x42f053
sub eax, edx
sar eax, 1
push eax
push edi
lea ecx, [esp + 0x28]
call fcn.00419290
push 0
lea edx, [esp + 0x24]
lea ecx, [esi + 0x325c]
push edx
mov byte [esp + 0x8c], 2
call fcn.00527050
cmp dword [esp + 0x38], 8
mov bl, al
mov byte [esp + 0x84], 0
jb 0x42f0a5
mov eax, dword [esp + 0x24]
push eax
call fcn.00450c56
add esp, 4
test bl, bl
jne 0x42f0f0
mov eax, dword [0x5d7f84]
test eax, eax
je 0x42f0c0
push str.LoadConfig___Load_file_failed
push eax
call fcn.00527ec0
add esp, 8
mov dword [esp + 0x84], 0xffffffff
lea ecx, [ebp + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42f030
mov ecx, dword [ebp]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push ebp
call edx
xor eax, eax
jmp 0x430492
mov ecx, dword [0x586214]
mov edx, dword [0x586218]
mov eax, dword [str.Language]
mov dword [esp + 0x68], ecx
mov cx, word [0x586220]
sub esp, 0x1c
mov dword [esp + 0x88], edx
mov dword [esp + 0x80], eax
mov eax, dword [0x58621c]
mov word [esp + 0x90], cx
lea edx, [esp + 0x80]
mov ecx, esp
mov dword [esp + 0x58], esp
push edx
mov dword [esp + 0x90], eax
call fcn.0041c310
lea ecx, [esi + 0x325c]
call fcn.005195e0
mov edi, eax
mov dword [esp + 0x44], edi
test edi, edi
jne 0x42f19c
mov eax, dword [0x5d7f84]
test eax, eax
je 0x42f170
push str.LoadConfig___GetSection_Language_failed
push eax
call fcn.00527ec0
add esp, 8
mov dword [esp + 0x84], 0xffffffff
lea eax, [ebp + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42f195
mov ecx, dword [ebp]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push ebp
call eax
xor eax, eax
jmp 0x430492
call fcn.0045e1b2
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x42f1b6
push 0x80004005
call fcn.004017e0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x14], eax
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x58], esp
mov bl, 3
push str.Kinds
mov byte [esp + 0xa4], bl
call fcn.0041c310
lea ecx, [esp + 0x3c]
push ecx
mov ecx, edi
call fcn.0051bf70
cmp dword [eax + 0x18], 8
mov byte [esp + 0x84], 4
jb 0x42f201
mov eax, dword [eax + 4]
jmp 0x42f204
add eax, 4
push eax
lea edx, [esp + 0x18]
push 0x5859d4
push edx
call fcn.00404280
add esp, 0xc
lea ecx, [esp + 0x20]
mov byte [esp + 0x84], bl
call fcn.00417200
mov eax, dword [esp + 0x14]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x40], esp
mov edi, esp
push eax
call fcn.00406320
add eax, 0x10
add esp, 4
mov dword [edi], eax
call fcn.0052f670
add esp, 4
mov dword [esp + 0x3c], eax
test eax, eax
jg 0x42f283
mov eax, dword [0x5d7f84]
test eax, eax
je 0x42f26a
push str.LoadConfig___GetKeyValue_kinds_failed
push eax
call fcn.00527ec0
add esp, 8
lea ecx, [esp + 0x14]
call fcn.00403e00
lea ecx, [esp + 0x40]
call fcn.00403e00
xor eax, eax
jmp 0x430492
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x38], esp
push str.Selected
call fcn.0041c310
mov edi, dword [esp + 0x60]
lea eax, [esp + 0x3c]
push eax
mov ecx, edi
call fcn.0051bf70
mov ebp, 8
mov byte [esp + 0x84], 5
cmp dword [eax + 0x18], ebp
jb 0x42f2bd
mov eax, dword [eax + 4]
jmp 0x42f2c0
add eax, 4
push eax
lea ecx, [esp + 0x18]
push 0x5859d4
push ecx
call fcn.00404280
add esp, 0xc
lea ecx, [esp + 0x20]
mov byte [esp + 0x84], bl
call fcn.00417200
push ecx
lea edx, [esp + 0x18]
mov ecx, esp
mov dword [esp + 0x20], esp
push edx
call fcn.004071f0
call fcn.0052f670
add esp, 4
test eax, eax
jg 0x42f330
mov eax, dword [0x5d7f84]
test eax, eax
je 0x42f317
push str.LoadConfig___GetKeyValue_Selected_failed
push eax
call fcn.00527ec0
add esp, 8
lea ecx, [esp + 0x14]
call fcn.00403e00
lea ecx, [esp + 0x40]
call fcn.00403e00
xor eax, eax
jmp 0x430492
sub esp, 0x1c
dec al
mov ecx, esp
mov dword [esp + 0x38], esp
push str.LangPath
mov byte [esi + 0x32d4], al
call fcn.0041c310
lea eax, [esp + 0x3c]
push eax
mov ecx, edi
call fcn.0051bf70
mov byte [esp + 0x84], 6
cmp dword [eax + 0x18], ebp
jb 0x42f369
mov eax, dword [eax + 4]
jmp 0x42f36c
add eax, 4
push eax
lea ecx, [esp + 0x18]
push 0x5859d4
push ecx
call fcn.00404280
add esp, 0xc
lea ecx, [esp + 0x20]
mov byte [esp + 0x84], bl
call fcn.00417200
push 1
push ecx
mov edx, esp
mov dword [esp + 0x24], esp
lea eax, [esp + 0x1c]
push eax
lea eax, [esi + 0x3250]
push eax
push edx
call fcn.0041a190
lea ecx, [esp + 0x30]
add esp, 0xc
push ecx
call fcn.0052dbb0
add esp, 0xc
lea edi, [esi + 0x3258]
push eax
mov ecx, edi
mov byte [esp + 0x88], 7
call fcn.0041b2f0
lea ecx, [esp + 0x1c]
mov byte [esp + 0x84], bl
call fcn.00403e00
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push edi
call fcn.004071f0
call fcn.00533380
add esp, 4
test eax, eax
jne 0x42f429
mov eax, dword [0x5d7f84]
test eax, eax
je 0x42f410
push str.LoadConfig___PathFileExists_LangPath_failed
push eax
call fcn.00527ec0
add esp, 8
lea ecx, [esp + 0x14]
call fcn.00403e00
lea ecx, [esp + 0x40]
call fcn.00403e00
xor eax, eax
jmp 0x430492
lea ecx, [esp + 0x1c]
call fcn.00403dd0
lea ecx, [esp + 0x48]
call fcn.004161f0
cmp dword [esp + 0x3c], 0
mov ebx, 9
mov byte [esp + 0x84], bl
jle 0x42f626
mov edi, 1
jmp 0x42f460
push edi
lea edx, [esp + 0x20]
push str.Lang_dFile
push edx
call fcn.00404280
mov eax, dword [esp + 0x28]
sub esp, 0x10
mov ecx, esp
mov dword [esp + 0x34], esp
push eax
call fcn.0041c310
lea ecx, [esp + 0x3c]
push ecx
mov ecx, dword [esp + 0x64]
call fcn.0051bf70
mov byte [esp + 0x84], 0xa
cmp dword [eax + 0x18], ebp
jb 0x42f4a3
mov eax, dword [eax + 4]
jmp 0x42f4a6
add eax, 4
push eax
lea edx, [esp + 0x18]
push 0x5859d4
push edx
call fcn.00404280
add esp, 0xc
lea ecx, [esp + 0x20]
mov byte [esp + 0x84], bl
call fcn.00417200
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
lea edx, [esp + 0x18]
push edx
lea eax, [esi + 0x3258]
push eax
push ecx
call fcn.0041a190
add esp, 0xc
call fcn.00533380
add esp, 4
test eax, eax
je 0x42f68e
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x4c]
call fcn.0041a0d0
push edi
lea ecx, [esp + 0x20]
push str.Lang_dFontName
push ecx
call fcn.00404280
mov edx, dword [esp + 0x28]
sub esp, 0x10
mov ecx, esp
mov dword [esp + 0x34], esp
push edx
call fcn.0041c310
mov ecx, dword [esp + 0x60]
lea eax, [esp + 0x3c]
push eax
call fcn.0051bf70
mov byte [esp + 0x84], 0xb
cmp dword [eax + 0x18], ebp
jb 0x42f546
mov eax, dword [eax + 4]
jmp 0x42f549
add eax, 4
push eax
lea ecx, [esp + 0x18]
push 0x5859d4
push ecx
call fcn.00404280
add esp, 0xc
lea ecx, [esp + 0x20]
mov byte [esp + 0x84], bl
call fcn.00417200
lea edx, [esp + 0x14]
push edx
lea ecx, [esp + 0x50]
call fcn.0041a0d0
push edi
lea eax, [esp + 0x20]
push str.Lang_dFontSize
push eax
call fcn.00404280
mov edx, dword [esp + 0x28]
sub esp, 0x10
mov ecx, esp
mov dword [esp + 0x34], esp
push edx
call fcn.0041c310
mov ecx, dword [esp + 0x60]
lea eax, [esp + 0x3c]
push eax
call fcn.0051bf70
mov byte [esp + 0x84], 0xc
cmp dword [eax + 0x18], ebp
jb 0x42f5bd
mov eax, dword [eax + 4]
jmp 0x42f5c0
add eax, 4
push eax
lea ecx, [esp + 0x18]
push 0x5859d4
push ecx
call fcn.00404280
add esp, 0xc
lea ecx, [esp + 0x20]
mov byte [esp + 0x84], bl
call fcn.00417200
push ecx
lea edx, [esp + 0x18]
mov ecx, esp
mov dword [esp + 0x1c], esp
push edx
call fcn.004071f0
call fcn.0052f670
add esp, 4
mov dword [esp + 0x50], eax
test eax, eax
ja 0x42f608
mov dword [esp + 0x50], ebx
lea eax, [esp + 0x48]
push eax
lea ecx, [esi + 0x32bc]
call fcn.0042d6f0
inc edi
lea ecx, [edi - 1]
cmp ecx, dword [esp + 0x3c]
jl 0x42f460
mov edx, dword [0x58602c]
mov eax, dword [str.System]
mov ecx, dword [0x586028]
sub esp, 0x1c
mov dword [esp + 0x78], edx
mov dword [esp + 0x70], eax
mov ax, word [0x586030]
mov dword [esp + 0x74], ecx
lea edx, [esp + 0x70]
mov ecx, esp
mov dword [esp + 0x34], esp
push edx
mov word [esp + 0x80], ax
call fcn.0041c310
lea ecx, [esi + 0x325c]
call fcn.005195e0
mov edi, eax
test edi, edi
jne 0x42f6c1
mov eax, dword [0x5d7f84]
test eax, eax
je 0x42f6aa
push str.LoadConfig___GetSection_System_failed
push eax
call fcn.00527ec0
add esp, 8
jmp 0x42f6aa
mov eax, dword [0x5d7f84]
test eax, eax
je 0x42f6aa
mov edx, dword [esp + 0x14]
push edx
push str.LoadConfig___PathFileExists__s_failed
push eax
call fcn.00527ec0
add esp, 0xc
lea ecx, [esp + 0x48]
call fcn.0040a870
lea ecx, [esp + 0x1c]
call fcn.00403e00
jmp 0x42f26a
lea ecx, [esp + 0x14]
call fcn.004062b0
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x34], esp
push str.MSC_VID
call fcn.0041c310
lea eax, [esp + 0x3c]
push eax
mov ecx, edi
call fcn.0051bf70
mov byte [esp + 0x84], 0xd
cmp dword [eax + 0x18], ebp
jb 0x42f6fb
mov eax, dword [eax + 4]
jmp 0x42f6fe
add eax, 4
push eax
lea ecx, [esp + 0x18]
push 0x5859d4
push ecx
call fcn.00404280
add esp, 0xc
lea ecx, [esp + 0x20]
mov byte [esp + 0x84], bl
call fcn.00417200
push 0
push ecx
lea edx, [esp + 0x1c]
mov ecx, esp
mov dword [esp + 0x20], esp
push edx
call fcn.004071f0
call fcn.0052f630
xor ecx, ecx
add esp, 8
test eax, eax
setle cl
dec ecx
and ecx, eax
mov dword [esi + 0x32ec], ecx
lea ecx, [esp + 0x14]
call fcn.004062b0
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x34], esp
push str.MSC_PID
call fcn.0041c310
lea edx, [esp + 0x3c]
push edx
mov ecx, edi
call fcn.0051bf70
mov byte [esp + 0x84], 0xe
cmp dword [eax + 0x18], ebp
jb 0x42f786
mov eax, dword [eax + 4]
jmp 0x42f789
add eax, 4
push eax
lea eax, [esp + 0x18]
push 0x5859d4
push eax
call fcn.00404280
add esp, 0xc
lea ecx, [esp + 0x20]
mov byte [esp + 0x84], bl
call fcn.00417200
push 0
push ecx
lea edx, [esp + 0x1c]
mov ecx, esp
mov dword [esp + 0x20], esp
push edx
call fcn.004071f0
call fcn.0052f630
xor ecx, ecx
add esp, 8
test eax, eax
setle cl
dec ecx
and ecx, eax
mov dword [esi + 0x32f0], ecx
lea ecx, [esp + 0x14]
call fcn.004062b0
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x34], esp
push str.SUPPORTLOWUSB
call fcn.0041c310
lea edx, [esp + 0x3c]
push edx
mov ecx, edi
call fcn.0051bf70
mov byte [esp + 0x84], 0xf
cmp dword [eax + 0x18], ebp
jb 0x42f811
mov eax, dword [eax + 4]
jmp 0x42f814
add eax, 4
push eax
lea eax, [esp + 0x18]
push 0x5859d4
push eax
call fcn.00404280
add esp, 0xc
lea ecx, [esp + 0x20]
mov byte [esp + 0x84], bl
call fcn.00417200
push str.TRUE
lea ecx, [esp + 0x18]
call fcn.00411300
neg eax
sbb eax, eax
inc eax
lea ecx, [esp + 0x14]
mov dword [esi + 0x32d8], eax
call fcn.004062b0
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x34], esp
push str.FW_NOT_CHECK
call fcn.0041c310
lea ecx, [esp + 0x3c]
push ecx
mov ecx, edi
call fcn.0051bf70
mov byte [esp + 0x84], 0x10
cmp dword [eax + 0x18], ebp
jb 0x42f88a
mov eax, dword [eax + 4]
jmp 0x42f88d
add eax, 4
push eax
lea edx, [esp + 0x18]
push 0x5859d4
push edx
call fcn.00404280
add esp, 0xc
lea ecx, [esp + 0x20]
mov byte [esp + 0x84], bl
call fcn.00417200
push str.TRUE
lea ecx, [esp + 0x18]
call fcn.00411300
neg eax
sbb eax, eax
neg eax
lea ecx, [esp + 0x14]
mov dword [esi + 0x31fc], eax
call fcn.004062b0
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x34], esp
push str.FW_CHCEK_EFUSE
call fcn.0041c310
lea eax, [esp + 0x3c]
push eax
mov ecx, edi
call fcn.0051bf70
mov byte [esp + 0x84], 0x11
cmp dword [eax + 0x18], ebp
jb 0x42f904
mov eax, dword [eax + 4]
jmp 0x42f907
add eax, 4
push eax
lea ecx, [esp + 0x18]
push 0x5859d4
push ecx
call fcn.00404280
add esp, 0xc
lea ecx, [esp + 0x20]
mov byte [esp + 0x84], bl
call fcn.00417200
push str.TRUE
lea ecx, [esp + 0x18]
call fcn.00411300
neg eax
sbb eax, eax
inc eax
lea ecx, [esp + 0x14]
mov dword [esi + 0x3200], eax
call fcn.004062b0
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x34], esp
push str.RB_CHECK_OFF
call fcn.0041c310
lea edx, [esp + 0x3c]
push edx
mov ecx, edi
call fcn.0051bf70
mov byte [esp + 0x84], 0x12
cmp dword [eax + 0x18], ebp
jb 0x42f97d
mov eax, dword [eax + 4]
jmp 0x42f980
add eax, 4
push eax
lea eax, [esp + 0x18]
push 0x5859d4
push eax
call fcn.00404280
add esp, 0xc
lea ecx, [esp + 0x20]
mov byte [esp + 0x84], bl
call fcn.00417200
push str.TRUE
lea ecx, [esp + 0x18]
call fcn.00411300
neg eax
sbb eax, eax
inc eax
lea ecx, [esp + 0x14]
mov dword [esi + 0x3218], eax
call fcn.004062b0
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x34], esp
push str.FW_BURN_EFUSE
call fcn.0041c310
lea ecx, [esp + 0x3c]
push ecx
mov ecx, edi
call fcn.0051bf70
mov byte [esp + 0x84], 0x13
cmp dword [eax + 0x18], ebp
jb 0x42f9f6
mov eax, dword [eax + 4]
jmp 0x42f9f9
add eax, 4
push eax
lea edx, [esp + 0x18]
push 0x5859d4
push edx
call fcn.00404280
add esp, 0xc
lea ecx, [esp + 0x20]
mov byte [esp + 0x84], bl
call fcn.00417200
push str.TRUE
lea ecx, [esp + 0x18]
call fcn.00411300
neg eax
sbb eax, eax
inc eax
lea ecx, [esp + 0x14]
mov dword [esi + 0x3204], eax
call fcn.004062b0
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x34], esp
push str.ENFORCE_MASKROOM
call fcn.0041c310
lea eax, [esp + 0x3c]
push eax
mov ecx, edi
call fcn.0051bf70
mov byte [esp + 0x84], 0x14
cmp dword [eax + 0x18], ebp
jb 0x42fa6f
mov eax, dword [eax + 4]
jmp 0x42fa72
add eax, 4
push eax
lea ecx, [esp + 0x18]
push 0x5859d4
push ecx
call fcn.00404280
add esp, 0xc
lea ecx, [esp + 0x20]
mov byte [esp + 0x84], bl
call fcn.00417200
push str.TRUE
lea ecx, [esp + 0x18]
call fcn.00411300
neg eax
sbb eax, eax
inc eax
lea ecx, [esp + 0x14]
mov dword [esi + 0x3214], eax
call fcn.004062b0
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x34], esp
push str.MSC_UPGRADE_SUPPORT
call fcn.0041c310
lea edx, [esp + 0x3c]
push edx
mov ecx, edi
call fcn.0051bf70
mov byte [esp + 0x84], 0x15
cmp dword [eax + 0x18], ebp
jb 0x42fae8
mov eax, dword [eax + 4]
jmp 0x42faeb
add eax, 4
push eax
lea eax, [esp + 0x18]
push 0x5859d4
push eax
call fcn.00404280
add esp, 0xc
lea ecx, [esp + 0x20]
mov byte [esp + 0x84], bl
call fcn.00417200
push str.TRUE
lea ecx, [esp + 0x18]
call fcn.00411300
neg eax
sbb eax, eax
inc eax
lea ecx, [esp + 0x14]
mov dword [esi + 0x3224], eax
call fcn.004062b0
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x34], esp
push str.FORCE_MASKROM_UPGRADE
call fcn.0041c310
lea ecx, [esp + 0x3c]
push ecx
mov ecx, edi
call fcn.0051bf70
mov byte [esp + 0x84], 0x16
cmp dword [eax + 0x18], ebp
jb 0x42fb61
mov eax, dword [eax + 4]
jmp 0x42fb64
add eax, 4
push eax
lea edx, [esp + 0x18]
push 0x5859d4
push edx
call fcn.00404280
add esp, 0xc
lea ecx, [esp + 0x20]
mov byte [esp + 0x84], bl
call fcn.00417200
push str.TRUE
lea ecx, [esp + 0x18]
call fcn.00411300
neg eax
sbb eax, eax
inc eax
lea ecx, [esp + 0x14]
mov dword [esi + 0x3228], eax
call fcn.004062b0
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x34], esp
push str.READSN_BEFORE_FALSH
call fcn.0041c310
lea eax, [esp + 0x3c]
push eax
mov ecx, edi
call fcn.0051bf70
mov byte [esp + 0x84], 0x17
cmp dword [eax + 0x18], ebp
jb 0x42fbda
mov eax, dword [eax + 4]
jmp 0x42fbdd
add eax, 4
push eax
lea ecx, [esp + 0x18]
push 0x5859d4
push ecx
call fcn.00404280
add esp, 0xc
lea ecx, [esp + 0x20]
mov byte [esp + 0x84], bl
call fcn.00417200
push str.TRUE
lea ecx, [esp + 0x18]
call fcn.00411300
neg eax
sbb eax, eax
inc eax
lea ecx, [esp + 0x14]
mov dword [esi + 0x322c], eax
call fcn.004062b0
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x34], esp
push str.READSN_AFTER_FALSH
call fcn.0041c310
lea edx, [esp + 0x3c]
push edx
mov ecx, edi
call fcn.0051bf70
mov byte [esp + 0x84], 0x18
cmp dword [eax + 0x18], ebp
jb 0x42fc53
mov eax, dword [eax + 4]
jmp 0x42fc56
add eax, 4
push eax
lea eax, [esp + 0x18]
push 0x5859d4
push eax
call fcn.00404280
add esp, 0xc
lea ecx, [esp + 0x20]
mov byte [esp + 0x84], bl
call fcn.00417200
push str.TRUE
lea ecx, [esp + 0x18]
call fcn.00411300
neg eax
sbb eax, eax
inc eax
lea ecx, [esp + 0x14]
mov dword [esi + 0x3230], eax
call fcn.004062b0
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x34], esp
push str.DISKVOLUME
call fcn.0041c310
lea ecx, [esp + 0x3c]
push ecx
mov ecx, edi
call fcn.0051bf70
mov byte [esp + 0x84], 0x19
cmp dword [eax + 0x18], ebp
jb 0x42fccc
mov eax, dword [eax + 4]
jmp 0x42fccf
add eax, 4
push eax
lea edx, [esp + 0x18]
push 0x5859d4
push edx
call fcn.00404280
add esp, 0xc
lea ecx, [esp + 0x20]
mov byte [esp + 0x84], bl
call fcn.00417200
lea eax, [esp + 0x14]
lea ecx, [esi + 0x3338]
push eax
call fcn.0041a0d0
lea ecx, [esp + 0x14]
call fcn.004062b0
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x34], esp
push str.DEMOPATH
call fcn.0041c310
lea ecx, [esp + 0x3c]
push ecx
mov ecx, edi
call fcn.0051bf70
mov byte [esp + 0x84], 0x1a
cmp dword [eax + 0x18], ebp
jb 0x42fd3c
mov eax, dword [eax + 4]
jmp 0x42fd3f
add eax, 4
push eax
lea edx, [esp + 0x18]
push 0x5859d4
push edx
call fcn.00404280
add esp, 0xc
lea ecx, [esp + 0x20]
mov byte [esp + 0x84], bl
call fcn.00417200
lea eax, [esp + 0x14]
lea ecx, [esi + 0x333c]
push eax
call fcn.0041a0d0
lea ecx, [esp + 0x14]
call fcn.004062b0
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x34], esp
push str.DEFAULT_FIRMWARE
call fcn.0041c310
lea ecx, [esp + 0x3c]
push ecx
mov ecx, edi
call fcn.0051bf70
mov byte [esp + 0x84], 0x1b
cmp dword [eax + 0x18], ebp
jb 0x42fdac
mov eax, dword [eax + 4]
jmp 0x42fdaf
add eax, 4
push eax
lea edx, [esp + 0x18]
push 0x5859d4
push edx
call fcn.00404280
add esp, 0xc
lea ecx, [esp + 0x20]
mov byte [esp + 0x84], bl
call fcn.00417200
lea eax, [esp + 0x14]
lea ecx, [esi + 0x3340]
push eax
call fcn.0041a0d0
lea ecx, [esp + 0x14]
call fcn.004062b0
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x34], esp
push str.UID_STRING
call fcn.0041c310
lea ecx, [esp + 0x3c]
push ecx
mov ecx, edi
call fcn.0051bf70
mov byte [esp + 0x84], 0x1c
cmp dword [eax + 0x18], ebp
jb 0x42fe1c
mov eax, dword [eax + 4]
jmp 0x42fe1f
add eax, 4
push eax
lea edx, [esp + 0x18]
push 0x5859d4
push edx
call fcn.00404280
add esp, 0xc
lea ecx, [esp + 0x20]
mov byte [esp + 0x84], bl
call fcn.00417200
lea eax, [esp + 0x14]
lea ecx, [esi + 0x3344]
push eax
call fcn.0041a0d0
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x34], esp
push str.MSC_TIMEOUT
call fcn.0041c310
lea ecx, [esp + 0x3c]
push ecx
mov ecx, edi
call fcn.0051bf70
mov byte [esp + 0x84], 0x1d
cmp dword [eax + 0x18], ebp
jb 0x42fe83
mov eax, dword [eax + 4]
jmp 0x42fe86
add eax, 4
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push eax
call fcn.00409120
call fcn.0052f670
add esp, 4
lea ecx, [esp + 0x20]
mov dword [esi + 0x3314], eax
mov byte [esp + 0x84], bl
call fcn.00417200
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x34], esp
push str.ROCKUSB_TIMEOUT
call fcn.0041c310
lea edx, [esp + 0x3c]
push edx
mov ecx, edi
call fcn.0051bf70
mov byte [esp + 0x84], 0x1e
cmp dword [eax + 0x18], ebp
jb 0x42fee2
mov eax, dword [eax + 4]
jmp 0x42fee5
add eax, 4
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push eax
call fcn.00409120
call fcn.0052f670
add esp, 4
lea ecx, [esp + 0x20]
mov dword [esi + 0x3324], eax
mov byte [esp + 0x84], bl
call fcn.00417200
cmp dword [esi + 0x3314], 0
jg 0x42ff23
mov dword [esi + 0x3314], 0x14
cmp dword [esi + 0x3324], 0
jg 0x42ff36
mov dword [esi + 0x3324], 0x14
lea ecx, [esp + 0x14]
call fcn.004062b0
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x34], esp
push str.RESET_COPYDEMO
call fcn.0041c310
lea eax, [esp + 0x3c]
push eax
mov ecx, edi
call fcn.0051bf70
mov byte [esp + 0x84], 0x1f
cmp dword [eax + 0x18], ebp
jb 0x42ff70
mov eax, dword [eax + 4]
jmp 0x42ff73
add eax, 4
push eax
lea ecx, [esp + 0x18]
push 0x5859d4
push ecx
call fcn.00404280
add esp, 0xc
lea ecx, [esp + 0x20]
mov byte [esp + 0x84], bl
call fcn.00417200
push str.TRUE
lea ecx, [esp + 0x18]
call fcn.00411300
neg eax
sbb eax, eax
inc eax
lea ecx, [esp + 0x14]
mov dword [esi + 0x32dc], eax
call fcn.004062b0
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x34], esp
push str.NOTRESET_AFTER_UPGRADE
call fcn.0041c310
lea edx, [esp + 0x3c]
push edx
mov ecx, edi
call fcn.0051bf70
mov byte [esp + 0x84], 0x20
cmp dword [eax + 0x18], ebp
jb 0x42ffe9
mov eax, dword [eax + 4]
jmp 0x42ffec
add eax, 4
push eax
lea eax, [esp + 0x18]
push 0x5859d4
push eax
call fcn.00404280
add esp, 0xc
lea ecx, [esp + 0x20]
mov byte [esp + 0x84], bl
call fcn.00417200
push str.TRUE
lea ecx, [esp + 0x18]
call fcn.00411300
neg eax
sbb eax, eax
neg eax
lea ecx, [esp + 0x14]
mov dword [esi + 0x32e0], eax
call fcn.004062b0
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x34], esp
push str.FW_VERSION_MOD
call fcn.0041c310
lea ecx, [esp + 0x3c]
push ecx
mov ecx, edi
call fcn.0051bf70
mov byte [esp + 0x84], 0x21
cmp dword [eax + 0x18], ebp
jb 0x430063
mov eax, dword [eax + 4]
jmp 0x430066
add eax, 4
push eax
lea edx, [esp + 0x18]
push 0x5859d4
push edx
call fcn.00404280
add esp, 0xc
lea ecx, [esp + 0x20]
mov byte [esp + 0x84], bl
call fcn.00417200
push 0x585cf8
lea ecx, [esp + 0x18]
call fcn.00411300
neg eax
sbb eax, eax
neg eax
lea ecx, [esp + 0x14]
mov dword [esi + 0x32e4], eax
call fcn.004062b0
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x34], esp
push str.MISC_MODIFY_MODE
call fcn.0041c310
lea eax, [esp + 0x3c]
push eax
mov ecx, edi
call fcn.0051bf70
mov byte [esp + 0x84], 0x22
cmp dword [eax + 0x18], ebp
jb 0x4300dd
mov eax, dword [eax + 4]
jmp 0x4300e0
add eax, 4
push eax
lea ecx, [esp + 0x18]
push 0x5859d4
push ecx
call fcn.00404280
add esp, 0xc
lea ecx, [esp + 0x20]
mov byte [esp + 0x84], bl
call fcn.00417200
push str.WIPE_ALL
lea ecx, [esp + 0x18]
call fcn.00411300
test eax, eax
jne 0x430121
mov dword [esi + 0x3334], 1
jmp 0x43013f
push str.WIPE_DATA
lea ecx, [esp + 0x18]
call fcn.00411300
neg eax
sbb eax, eax
and eax, 0xfffffffe
add eax, 2
mov dword [esi + 0x3334], eax
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x34], esp
push str.FORCE_DATA_BAND
call fcn.0041c310
lea edx, [esp + 0x3c]
push edx
mov ecx, edi
call fcn.0051bf70
mov byte [esp + 0x84], 0x23
cmp dword [eax + 0x18], ebp
jb 0x430170
mov eax, dword [eax + 4]
jmp 0x430173
add eax, 4
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push eax
call fcn.00409120
call fcn.0052f670
add esp, 4
lea ecx, [esp + 0x20]
mov ebp, eax
mov byte [esp + 0x84], bl
call fcn.00417200
lea eax, [ebp - 1]
mov ecx, 5
cmp ecx, eax
sbb edx, edx
not edx
and edx, ebp
lea ecx, [esp + 0x14]
mov dword [esi + 0x3330], edx
call fcn.004062b0
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x34], esp
push str.LOOP_TEST
call fcn.0041c310
lea eax, [esp + 0x3c]
push eax
mov ecx, edi
call fcn.0051bf70
cmp dword [eax + 0x18], 8
mov byte [esp + 0x84], 0x24
jb 0x4301eb
mov eax, dword [eax + 4]
jmp 0x4301ee
add eax, 4
push eax
lea ecx, [esp + 0x18]
push 0x5859d4
push ecx
call fcn.00404280
add esp, 0xc
lea ecx, [esp + 0x20]
mov byte [esp + 0x84], bl
call fcn.00417200
push str.TRUE
lea ecx, [esp + 0x18]
call fcn.00411300
neg eax
sbb eax, eax
inc eax
lea ecx, [esp + 0x14]
mov dword [esi + 0x3234], eax
call fcn.004062b0
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x34], esp
push str.ENFORCE_PCBA
call fcn.0041c310
lea edx, [esp + 0x3c]
push edx
mov ecx, edi
call fcn.0051bf70
mov ebp, 8
mov byte [esp + 0x84], 0x25
cmp dword [eax + 0x18], ebp
jb 0x430269
mov eax, dword [eax + 4]
jmp 0x43026c
add eax, 4
push eax
lea eax, [esp + 0x18]
push 0x5859d4
push eax
call fcn.00404280
add esp, 0xc
lea ecx, [esp + 0x20]
mov byte [esp + 0x84], bl
call fcn.00417200
push str.TRUE
lea ecx, [esp + 0x18]
call fcn.00411300
neg eax
sbb eax, eax
sub esp, 0x1c
inc eax
mov ecx, esp
mov dword [esp + 0x34], esp
push str.RESTART_TIMEOUT
mov dword [esi + 0x3210], eax
call fcn.0041c310
lea ecx, [esp + 0x3c]
push ecx
mov ecx, edi
call fcn.0051bf70
mov byte [esp + 0x84], 0x26
cmp dword [eax + 0x18], ebp
jb 0x4302d9
mov eax, dword [eax + 4]
jmp 0x4302dc
add eax, 4
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push eax
call fcn.00409120
call fcn.0052f670
add esp, 4
lea ecx, [esp + 0x20]
mov dword [esi + 0x321c], eax
mov byte [esp + 0x84], bl
call fcn.00417200
mov eax, dword [esi + 0x321c]
test eax, eax
jle 0x430316
cmp eax, 0x3c
jle 0x430320
mov dword [esi + 0x321c], 5
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x34], esp
push str.SWITCH_RETRY_INTERVAL
call fcn.0041c310
lea edx, [esp + 0x3c]
push edx
mov ecx, edi
call fcn.0051bf70
mov byte [esp + 0x84], 0x27
cmp dword [eax + 0x18], ebp
jb 0x430351
mov eax, dword [eax + 4]
jmp 0x430354
add eax, 4
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push eax
call fcn.00409120
call fcn.0052f670
add esp, 4
lea ecx, [esp + 0x20]
mov dword [esi + 0x3220], eax
mov byte [esp + 0x84], bl
call fcn.00417200
mov eax, dword [esi + 0x3220]
test eax, eax
jle 0x43038e
cmp eax, 0x3c
jle 0x430398
mov dword [esi + 0x3220], 5
lea ecx, [esp + 0x14]
call fcn.004062b0
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x34], esp
push str.SN_DLL_ON
call fcn.0041c310
lea eax, [esp + 0x3c]
push eax
mov ecx, edi
call fcn.0051bf70
mov byte [esp + 0x84], 0x28
cmp dword [eax + 0x18], ebp
jb 0x4303d2
mov eax, dword [eax + 4]
jmp 0x4303d5
add eax, 4
push eax
lea ecx, [esp + 0x18]
push 0x5859d4
push ecx
call fcn.00404280
add esp, 0xc
lea ecx, [esp + 0x20]
mov byte [esp + 0x84], bl
call fcn.00417200
push str.TRUE
lea ecx, [esp + 0x18]
call fcn.00411300
neg eax
sbb eax, eax
sub esp, 0x1c
inc eax
mov ecx, esp
mov dword [esp + 0x34], esp
push str.MEMORY_CHECK_INTERVAL
mov dword [esi + 0x340c], eax
call fcn.0041c310
lea edx, [esp + 0x3c]
push edx
mov ecx, edi
call fcn.0051bf70
mov byte [esp + 0x84], 0x29
cmp dword [eax + 0x18], ebp
jb 0x430442
mov eax, dword [eax + 4]
jmp 0x430445
add eax, 4
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push eax
call fcn.00409120
call fcn.0052f670
add esp, 4
lea ecx, [esp + 0x20]
mov dword [esi + 0x3460], eax
call fcn.00417200
lea ecx, [esp + 0x48]
call fcn.0040a870
lea ecx, [esp + 0x1c]
call fcn.00403e00
lea ecx, [esp + 0x14]
call fcn.00403e00
lea ecx, [esp + 0x40]
call fcn.00403e00
mov eax, 1
mov ecx, dword [esp + 0x7c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x64]
xor ecx, esp
call fcn.00493eee
add esp, 0x74
ret