Function at 0x10001020
Capabilities:
Check if file exists
Query or enumerate registry value
Read file on windows

Disassembly:
sub esp, 0x620
lea eax, [esp + 4]
push eax
push str.SoftwareJBridge
push 0x80000002
mov byte [esp + 0x24], 0
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyA]
test eax, eax
jne 0x10001073
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x1c]
push edx
push eax
push eax
mov eax, dword [esp + 0x14]
push str.Proxy32
push eax
mov dword [esp + 0x28], 0x104
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov ecx, dword [esp + 4]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp byte [esp + 0x18], 0
jne 0x1000109c
push 0x10
push str.JBridge
push str.Unable_to_locate_proxy_DLL
call dword [sym.imp.USER32.dll_GetActiveWindow]
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
xor eax, eax
add esp, 0x620
ret
mov eax, dword [section..data]
push esi
mov esi, dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push 0x200
lea edx, [esp + 0x428]
push edx
push eax
call esi
lea ecx, [esp + 0x424]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
lea eax, [esp + eax + 0x424]
mov cl, 0x5c
cmp byte [eax - 1], cl
je 0x100010da
dec eax
cmp byte [eax - 1], cl
jne 0x100010d4
mov cl, byte [eax]
push ebx
push edi
mov edi, dword [sym.imp.KERNEL32.dll_lstrcpyA]
test cl, cl
je 0x10001115
mov bl, 0x33
mov dl, 0x32
lea esp, [esp]
cmp cl, 0x2e
jne 0x10001104
cmp byte [eax + 1], bl
jne 0x10001104
cmp byte [eax + 2], dl
jne 0x10001104
cmp byte [eax + 3], cl
je 0x1000110e
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x100010f0
jmp 0x10001115
lea edx, [eax + 3]
push edx
push eax
call edi
mov ecx, dword [section..data]
push 0x200
lea eax, [esp + 0x230]
push eax
push ecx
call esi
mov cl, byte [esp + 0x22c]
lea eax, [esp + 0x22c]
test cl, cl
je 0x10001166
mov bl, 0x64
mov dl, 0x6c
cmp cl, 0x2e
jne 0x10001155
cmp byte [eax + 1], bl
jne 0x10001155
cmp byte [eax + 2], dl
jne 0x10001155
cmp byte [eax + 3], dl
je 0x1000115f
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x10001141
jmp 0x10001166
lea edx, [eax + 4]
push edx
push eax
call edi
mov eax, dword [str..txt]
mov cl, byte [0x10002090]
push ebp
lea edx, [esp + 0x18]
mov dword [esp + 0x18], eax
push edx
lea eax, [esp + 0x234]
push eax
mov byte [esp + 0x24], cl
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push 0
push 0x80
push 3
push 0
push 1
push 0x80000000
lea ecx, [esp + 0x248]
push ecx
mov byte [esp + 0x2f], 1
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov ebx, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
jne 0x100011c3
xor bl, bl
jmp 0x10001216
xor edi, edi
xor ebp, ebp
push 0
lea edx, [esp + 0x28]
push edx
push 1
lea esi, [esp + edi + 0x138]
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x100011ec
cmp ebp, 2
jl 0x1000127d
mov al, byte [esi]
cmp al, 0x22
jne 0x100011f5
inc ebp
jmp 0x100011fe
cmp al, 0x20
jne 0x100011fd
test ebp, ebp
jle 0x100011fe
inc edi
cmp ebp, 2
jne 0x100011c7
push ebx
mov byte [esp + edi + 0x130], 0
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov bl, byte [esp + 0x13]
lea eax, [esp + 0x28]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov esi, eax
test esi, esi
jne 0x1000124d
push 0x10
push str.JBridge
push str.Failed_to_load_proxy
call dword [sym.imp.USER32.dll_GetActiveWindow]
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
pop ebp
pop edi
pop ebx
xor eax, eax
pop esi
add esp, 0x620
ret
push str.BridgeMain
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
jne 0x1000128a
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
push 0x10
push str.JBridge
push str.BridgeMain_entry_point_not_found
call dword [sym.imp.USER32.dll_GetActiveWindow]
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
pop ebp
pop edi
pop ebx
xor eax, eax
pop esi
add esp, 0x620
ret
mov edx, dword [esp + 0x634]
lea ecx, [esp + 0x12c]
test bl, bl
jne 0x100012a3
lea ecx, [esp + 0x430]
push ecx
push edx
call eax
add esp, 8
pop ebp
pop edi
pop ebx
pop esi
add esp, 0x620
ret