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

Disassembly:
push ebp
mov ebp, esp
push esi
push edi
push ebx
sub esp, 0x4f0
mov ecx, dword [ebp + 0xc]
mov eax, dword [0x6d159c]
xor eax, ebp
cmp ecx, 0x7f
mov ebx, dword [ebp + 0x14]
jne 0x5b0171
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 0x10], eax
mov eax, 0
mov edx, dword [ebx + 0x124]
sete al
mov dword [ebp - 0x3fc], ecx
mov ecx, dword [ebx + 0x78]
mov dword [ebp - 0x3f8], edx
mov dword [ebp - 0x410], eax
test ecx, ecx
je 0x5b1540
xor eax, eax
movzx edx, byte [ecx + eax]
test edx, edx
je 0x5b01b6
movzx edx, byte [ecx + eax + 1]
add eax, 2
test edx, edx
jne 0x5b01a1
dec eax
movsx esi, word [ebx + 0x188]
cmp esi, eax
lea edx, [ebp - 0x15c]
ja 0x5b01c9
mov esi, eax
push esi
push ecx
push edx
call fcn.00657070
add esp, 0xc
movzx eax, byte [ebx + 0x1aa]
lea esi, [ebp + esi - 0x15c]
mov byte [esi], 0
btr eax, 3
jae 0x5b029b
mov byte [ebx + 0x1aa], al
mov dword [ebp - 0x420], str._I64d
mov eax, dword [ebx + 0xb8]
add eax, 0xffffffff
mov edx, dword [ebx + 0xbc]
adc edx, 0xffffffff
mov dword [ebp - 0x41c], eax
mov dword [ebp - 0x418], edx
call fcn.0062fd20
mov edx, eax
lea eax, [ebp - 0x41c]
push eax
push 0
push str._I64d
push 0xffffffffffffffff
push 0x718360
mov ecx, dword [edx]
push dword [edx + 4]
or ecx, 1
push ecx
call fcn.0064c89e
mov eax, dword [ebx + 0x50]
sub eax, dword [ebx + 0x5c]
push eax
push 0x718360
push 2
push 0x202
call fcn.005b3310
add esp, 0x2c
mov dword [ebp - 0x40c], 0x694280
mov dword [ebp - 0x408], eax
call fcn.0062fd20
mov edx, eax
lea eax, [ebp - 0x408]
push eax
push 0
push 0x694280
push 0xffffffffffffffff
push esi
mov ecx, dword [edx]
push dword [edx + 4]
or ecx, 1
push ecx
call fcn.0064c89e
add esp, 0x1c
test byte [ebx + 0x1a2], 0x40
je 0x5b02c9
cmp dword [ebp - 0x3fc], 0x3f
je 0x5b02c9
mov eax, dword [ebx + 0x94]
test eax, eax
je 0x5b02c9
mov byte [eax + 0x1e], 0
mov eax, dword [ebx + 0x94]
test eax, eax
je 0x5b02c9
mov byte [eax + 0x1f], 0
mov eax, dword [ebp - 0x3fc]
lea edx, [eax - 0x67]
mov dword [ebp - 0x4f0], edx
cmp edx, 1
ja 0x5b02eb
mov eax, dword [ebx + 0x80]
mov dword [ebp - 0x444], eax
jmp 0x5b02f5
mov dword [ebp - 0x444], 0
mov eax, dword [ebp + 0x10]
xor esi, esi
mov edx, dword [ebx + 0x108]
mov ecx, dword [ebx + 0x124]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x14], esi
cmp dword [0x6d32a4], 2
jl 0x5b0343
lea eax, [ebp - 0x3f0]
push eax
call fcn.005e02d0
add esp, 4
test eax, eax
jne 0x5b0c9e
mov edi, dword [ebp - 0x3f0]
lea eax, [ebp - 0x24]
add edi, 0x10
jmp 0x5b0355
mov dword [ebp - 0x3f0], 0x6d3200
mov edi, 0x6d3210
lea eax, [ebp - 0x24]
mov ebx, eax
mov edx, dword [ebp - 0x24]
mov dword [edi], edx
mov ecx, dword [ebp - 0x20]
mov dword [edi + 4], ecx
mov esi, dword [ebp - 0x1c]
mov dword [edi + 8], esi
mov edx, dword [ebp - 0x18]
mov dword [edi + 0xc], edx
mov edx, dword [ebp - 0x14]
mov dword [edi + 0x10], edx
mov esi, dword [ebp - 0x3f0]
push 0x14
push ebx
lea edi, [esi + 0x10]
push edi
call fcn.0062a670
add esp, 0xc
test eax, eax
jne 0x5b0357
mov ebx, dword [ebp + 0x14]
cmp dword [ebp - 0x444], 0
je 0x5b03ea
mov ecx, dword [ebp - 0x444]
xor eax, eax
movzx edx, byte [ecx + eax]
test edx, edx
je 0x5b03b6
movzx edx, byte [ecx + eax + 1]
add eax, 2
test edx, edx
jne 0x5b03a1
dec eax
mov edi, eax
add esi, 0x24
cmp edi, 0x40
mov ebx, ecx
jb 0x5b03c7
mov edi, 0x40
push edi
push ebx
push esi
call fcn.0062a530
push edi
mov esi, dword [ebp - 0x3f0]
push ebx
add esi, 0x24
push esi
call fcn.0062a670
add esp, 0x18
test eax, eax
jne 0x5b03c7
mov ebx, dword [ebp + 0x14]
movsx edx, byte [ebx + 0x194]
lea eax, [edx - 1]
cmp eax, 2
jbe 0x5b040d
lea eax, [edx - 0x18]
cmp eax, 1
jbe 0x5b040d
add edx, 0xffffffe0
cmp edx, 2
jbe 0x5b040d
xor edx, edx
jmp 0x5b0412
mov edx, 1
movzx eax, byte [ebx + 0x1a4]
test al, 1
je 0x5b0469
cmp dword [ebp - 0x3fc], 0x18
je 0x5b0469
cmp dword [ebp - 0x3fc], 0xffffffff
je 0x5b0469
cmp dword [ebp - 0x3fc], 0x265
je 0x5b0469
test edx, edx
je 0x5b0448
cmp dword [ebp - 0x3fc], 0x1b
je 0x5b0469
cmp dword [ebp - 0x3fc], 0x10c
je 0x5b0469
cmp dword [ebp - 0x3fc], 0xfffffffe
je 0x5b0469
cmp dword [ebp - 0x3fc], 0x2f6
jne 0x5b047b
test byte [ebx + 0x1a7], 8
je 0x5b0493
cmp dword [ebp - 0x3fc], 0x3f
jne 0x5b0493
mov eax, dword [ebp + 0x10]
mov dword [ebx + 0x108], 0
mov dword [ebp - 0x3fc], eax
jmp 0x5b05f5
test al, 2
je 0x5b04ff
cmp dword [ebp - 0x3fc], 0xffffffff
je 0x5b04a9
cmp dword [ebp - 0x3fc], 0x18
jne 0x5b04e6
mov dword [ebx + 0x108], 0
test al, 0x40
jne 0x5b04c0
test byte [ebx + 0x1a0], 1
jne 0x5b04c7
mov edx, 1
jmp 0x5b04c9
xor edx, edx
shl edx, 5
and eax, 0xffffffdf
or eax, edx
mov byte [ebx + 0x1a4], al
mov dword [ebp - 0x3fc], 0xffffffff
jmp 0x5b05f5
test edx, edx
je 0x5b04f3
cmp dword [ebp - 0x3fc], 0x1b
je 0x5b04a9
cmp dword [ebp - 0x3fc], 0x265
je 0x5b04a9
test al, 4
je 0x5b055f
cmp dword [ebp - 0x3fc], 0xfffffffe
je 0x5b0524
cmp dword [ebp - 0x3fc], 0x10c
je 0x5b0524
cmp dword [ebp - 0x3fc], 0x2f6
jne 0x5b055f
mov dword [ebx + 0x108], 0
test al, 0x40
je 0x5b0540
movzx edx, byte [ebx + 0x1a0]
not edx
and edx, 1
jmp 0x5b0542
xor edx, edx
shl edx, 5
and eax, 0xffffffdf
or eax, edx
mov byte [ebx + 0x1a4], al
mov dword [ebp - 0x3fc], 0xfffffffe
jmp 0x5b05f5
test byte [ebx + 0x1ae], 0x10
je 0x5b083a
mov dword [ebx + 0x108], 0
test al, 0x40
jne 0x5b0583
test byte [ebx + 0x1a0], 1
jne 0x5b058a
mov ecx, 1
jmp 0x5b058c
xor ecx, ecx
shl ecx, 5
and eax, 0xffffffdf
or eax, ecx
mov byte [ebx + 0x1a4], al
cmp dword [ebp - 0x3fc], 0x18
je 0x5b05bc
cmp dword [ebp - 0x3fc], 0x265
je 0x5b05bc
test edx, edx
je 0x5b05c8
cmp dword [ebp - 0x3fc], 0x1b
jne 0x5b05c8
mov dword [ebp - 0x3fc], 0xffffffff
jmp 0x5b05f5
cmp dword [ebp - 0x3fc], 0x10c
je 0x5b05e0
cmp dword [ebp - 0x3fc], 0x2f6
jne 0x5b05ec
mov dword [ebp - 0x3fc], 0xfffffffe
jmp 0x5b05f5
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x3fc], eax
mov esi, dword [ebx + 0x114]
test esi, esi
je 0x5b0829
cmp dword [ebp - 0x444], 0
je 0x5b06b0
lea eax, [ebp - 0x15c]
push eax
push dword [ebp - 0x3f8]
push dword [ebp - 0x444]
push 3
push dword [ebp + 0x10]
call fcn.005b3310
mov ecx, eax
add esp, 0x14
xor eax, eax
movzx edx, byte [ecx + eax]
test edx, edx
je 0x5b0649
movzx edx, byte [ecx + eax + 1]
add eax, 2
test edx, edx
jne 0x5b0634
dec eax
mov edx, dword [ebx + 0x114]
mov dword [ebp - 0x4f4], eax
cmp eax, edx
jb 0x5b066b
push edx
push ecx
push dword [ebx + 0x9c]
call fcn.0062a530
add esp, 0xc
jmp 0x5b069f
push dword [ebp - 0x4f4]
push ecx
push dword [ebx + 0x9c]
call fcn.0062a530
mov eax, dword [ebp - 0x4f4]
mov edx, dword [ebx + 0x114]
sub edx, eax
push edx
mov ecx, dword [ebx + 0x9c]
push 0x20
add ecx, eax
push ecx
call fcn.0062a5e0
add esp, 0x18
cmp dword [ebp + 8], 0
je 0x5b0c78
xor esi, esi
jmp 0x5b0940
cmp dword [ebp - 0x3fc], 0x7f
je 0x5b0e0e
cmp dword [ebp - 0x410], 0
jne 0x5b0818
test byte [ebx + 0x1ad], 0x10
jne 0x5b0818
mov eax, dword [ebp - 0x3f8]
lea edx, [ebp - 0x15c]
mov dword [ebp - 0x490], 2
mov dword [ebp - 0x48c], eax
mov dword [ebp - 0x488], edx
cmp dword [0x6d3120], 0
je 0x5b0788
mov dword [0x6d3120], 0
call dword [sym.imp.KERNEL32.dll_GetThreadLocale]
mov dword [ebp - 0x4d0], str._lu__s
mov dword [ebp - 0x4cc], eax
mov dword [ebp - 0x4c8], str.ifcore_msg.dll
call fcn.0062fd20
mov ecx, eax
lea eax, [ebp - 0x4cc]
push eax
push 0
push str._lu__s
push 0xffffffffffffffff
mov esi, dword [ecx]
lea edx, [ebp - 0x24c]
push edx
push dword [ecx + 4]
or esi, 1
push esi
call fcn.0064c89e
add esp, 0x1c
lea eax, [ebp - 0x24c]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [0x81f668], eax
test eax, eax
je 0x5b0cae
mov dword [0x6d3124], 0
call fcn.005b2bb0
mov ecx, dword [ebp + 0x10]
xor edx, edx
lea eax, [edx + edx*2]
cmp ecx, dword [eax*4 + 0x6d1600]
je 0x5b0cc0
inc edx
cmp edx, 0x23b
jl 0x5b078d
mov byte [0x718460], 0
mov ecx, 0x718460
xor eax, eax
movzx edx, byte [ecx + eax]
test edx, edx
je 0x5b07c9
movzx edx, byte [ecx + eax + 1]
add eax, 2
test edx, edx
jne 0x5b07b4
dec eax
mov esi, eax
mov eax, dword [ebx + 0x114]
cmp esi, eax
jb 0x5b07eb
push eax
push 0x718460
push dword [ebx + 0x9c]
call fcn.0062a530
add esp, 0xc
jmp 0x5b0818
push esi
push 0x718460
push dword [ebx + 0x9c]
call fcn.0062a530
mov eax, dword [ebx + 0x114]
sub eax, esi
push eax
mov edx, dword [ebx + 0x9c]
push 0x20
add edx, esi
push edx
call fcn.0062a5e0
add esp, 0x18
cmp dword [ebp + 8], 0
je 0x5b0c78
xor esi, esi
jmp 0x5b0940
cmp dword [ebp + 8], 0
je 0x5b0c78
xor esi, esi
jmp 0x5b0940
mov byte [ebp - 0x400], 0xa
cmp dword [0x7253f4], 0
jne 0x5b1536
push 0xfffffffffffffff4
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
mov edi, eax
xor esi, esi
mov ecx, dword [esi*4 + 0x6908d8]
cmp ecx, dword [ebx + 0x124]
jne 0x5b0888
mov dword [ebp - 0x3f4], ebx
mov edx, ebx
test byte [ebx + 0x1a1], 0x20
je 0x5b08ed
mov eax, dword [ebx + 0x94]
test eax, eax
je 0x5b08ed
xor ecx, ecx
jmp 0x5b08c3
push 0xf
lea eax, [ebp - 0x440]
push eax
lea edx, [ebp - 0x3f4]
push edx
push ecx
call fcn.005e0a20
add esp, 0x10
test eax, eax
jne 0x5b08ed
mov edx, dword [ebp - 0x3f4]
test byte [edx + 0x1a1], 0x20
je 0x5b08df
mov eax, dword [edx + 0x94]
test eax, eax
je 0x5b08df
mov ecx, 1
cmp byte [eax + 0x1c], 0
jne 0x5b08cf
cmp byte [eax + 0x1d], 0
je 0x5b08db
cmp edi, dword [edx + 0x104]
je 0x5b133c
test ecx, ecx
je 0x5b08ed
push dword [edx + 0x124]
call fcn.005e2230
add esp, 4
inc esi
cmp esi, 4
jl 0x5b085a
mov edx, dword [ebx + 0x108]
test edx, edx
jne 0x5b151d
cmp dword [ebp - 0x4f0], 1
ja 0x5b091a
mov eax, dword [ebx + 0x80]
mov dword [ebp - 0x444], eax
mov eax, dword [ebx + 0x114]
mov edx, dword [ebx + 0x9c]
mov dword [0x7185a8], eax
mov dword [0x7185a4], edx
cmp dword [ebp + 8], 0
je 0x5b0af1
mov esi, 1
cmp dword [ebp + 8], 1
je 0x5b0adb
cmp dword [ebp + 8], 2
jne 0x5b0ab0
mov eax, dword [ebx + 0x124]
mov edx, dword [ebx + 0x7c]
mov edi, dword [ebx + 0x70]
mov dword [ebp - 0x448], eax
mov dword [ebp - 0x44c], edx
test edi, edi
je 0x5b09a5
test byte [edi + 0x73], 2
je 0x5b0988
push dword [edi + 4]
call fcn.005c0a60
add esp, 4
mov dword [edi + 4], 0
movzx eax, word [ebx + 0x18a]
test eax, eax
jg 0x5b099e
push dword [ebx + 0x70]
call fcn.005c0a60
add esp, 4
mov dword [ebx + 0x70], 0
mov eax, dword [ebx + 0x4c]
test eax, eax
je 0x5b09b5
push eax
call fcn.005c0a60
add esp, 4
mov edx, dword [ebx + 0x78]
test edx, edx
je 0x5b09d0
movsx eax, word [ebx + 0x188]
test eax, eax
je 0x5b09d0
push edx
call fcn.005c0a60
add esp, 4
mov eax, dword [ebx + 0x104]
test eax, eax
je 0x5b09e6
cmp eax, 0xffffffff
je 0x5b09e6
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, dword [ebx + 0x3c]
lea eax, [ebx + 0x20]
mov ecx, dword [ebx + 0x40]
mov dword [ebp - 0x464], edx
mov dword [ebp - 0x460], ecx
movzx edi, byte [ebx + 0x1ad]
mov edx, dword [ebx + 0x30]
mov ecx, dword [ebx + 0xa8]
mov dword [ebp - 0x46c], edx
mov dword [ebp - 0x468], ecx
test byte [ebx + 0x1a1], 0x18
je 0x5b0a45
push 0x198
push 0
push eax
call fcn.0062a5e0
add esp, 0xc
movzx eax, byte [ebx + 0x1a1]
and eax, 0xffffffe7
add eax, 8
mov byte [ebx + 0x1a1], al
jmp 0x5b0a55
push 0x198
push 0
push eax
call fcn.0062a5e0
add esp, 0xc
mov edx, dword [ebp - 0x464]
mov dword [ebx + 0x3c], edx
movzx eax, byte [ebx + 0x1ad]
mov edx, edi
and eax, 0xfffffffd
and edx, 2
mov edi, dword [ebp - 0x448]
or eax, edx
mov ecx, dword [ebp - 0x460]
mov dword [ebx + 0x40], ecx
mov byte [ebx + 0x1ad], al
mov dword [ebx + 0x124], edi
push edi
mov eax, dword [ebp - 0x46c]
mov ecx, dword [ebp - 0x468]
mov edi, dword [ebp - 0x44c]
mov dword [ebx + 0x30], eax
mov dword [ebx + 0xa8], ecx
mov dword [ebx + 0x7c], edi
call fcn.005e2230
jmp 0x5b0ae6
cmp dword [ebp + 8], 3
jne 0x5b0ac3
push 1
push ebx
call fcn.005cb4d0
add esp, 8
jmp 0x5b0ae9
push 0xbba
push str.for_diags_intel.c
push 2
push 8
call fcn.005b16e0
add esp, 0x10
jmp 0x5b0ae9
push dword [ebx + 0x124]
call fcn.005e2230
add esp, 4
test esi, esi
je 0x5b0c78
cmp dword [ebp - 0x444], 0
je 0x5b0b22
lea eax, [ebp - 0x15c]
push eax
push dword [ebp - 0x3f8]
push dword [ebp - 0x444]
push 3
push dword [ebp - 0x3fc]
call fcn.005b16e0
add esp, 0x14
jmp 0x5b0c6c
cmp dword [ebp - 0x3fc], 0x7f
je 0x5b0b38
cmp dword [ebp - 0x410], 0
je 0x5b0c4f
cmp dword [ebp + 0x10], 0xffffffff
jne 0x5b0b45
mov ebx, 0x18
jmp 0x5b0b52
mov ebx, dword [ebp + 0x10]
cmp ebx, 0xfffffffe
jne 0x5b0b52
mov ebx, 0x10c
mov eax, dword [0x7185a8]
test eax, eax
je 0x5b0b74
push dword [0x7185a4]
push eax
push ebx
push 3
push 0x7f
call fcn.005b16e0
add esp, 0x14
jmp 0x5b0c6c
mov dword [ebp - 0x448], 0
cmp dword [0x6d3120], 0
je 0x5b0c00
mov dword [0x6d3120], 0
call dword [sym.imp.KERNEL32.dll_GetThreadLocale]
mov esi, str._lu__s
mov dword [ebp - 0x46c], esi
mov dword [ebp - 0x468], eax
mov dword [ebp - 0x464], str.ifcore_msg.dll
call fcn.0062fd20
mov edx, eax
lea eax, [ebp - 0x468]
push eax
push 0
push esi
push 0xffffffffffffffff
mov ecx, dword [edx]
lea esi, [ebp - 0x1ac]
push esi
push dword [edx + 4]
or ecx, 1
push ecx
call fcn.0064c89e
add esp, 0x1c
push esi
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [0x81f668], eax
test eax, eax
je 0x5b13bb
mov dword [0x6d3124], 0
call fcn.005b2bb0
xor edx, edx
lea eax, [edx + edx*2]
cmp ebx, dword [eax*4 + 0x6d1600]
je 0x5b13cd
inc edx
cmp edx, 0x23b
jl 0x5b0c02
mov byte [0x718460], 0
mov ecx, 0x718460
xor eax, eax
movzx edx, byte [ecx + eax]
test edx, edx
je 0x5b0c3e
movzx edx, byte [ecx + eax + 1]
add eax, 2
test edx, edx
jne 0x5b0c29
dec eax
push ecx
push eax
push ebx
push 3
push 0x7f
call fcn.005b16e0
add esp, 0x14
jmp 0x5b0c6c
lea eax, [ebp - 0x15c]
push eax
push dword [ebp - 0x3f8]
push 2
push dword [ebp - 0x3fc]
call fcn.005b16e0
add esp, 0x10
xor eax, eax
mov dword [0x7185a8], eax
mov dword [0x7185a4], eax
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x10], 0
xor ecx, ebp
cmp ecx, dword [0x6d159c]
jne 0x5b1518
mov eax, dword [ebp - 0x3fc]
lea esp, [ebp - 0xc]
pop ebx
pop edi
pop esi
pop ebp
ret
push 0
push eax
call fcn.005b16e0
add esp, 8
jmp 0x5b03ea
cmp dword [0x6d3124], 0
je 0x5b0783
jmp 0x5b0788
mov edx, dword [eax*4 + 0x6d1604]
mov dword [0x718568], edx
cmp dword [0x6d3124], 0
je 0x5b0ce5
mov eax, dword [eax*4 + 0x6d1608]
mov dword [ebp - 0x4f4], eax
jmp 0x5b0d58
push 0
mov ecx, dword [ebp + 0x10]
lea edx, [ebp - 0x494]
push 0x200
push edx
push 0x409
mov eax, dword [eax*4 + 0x6d1608]
lea esi, [ecx - 0x80000000]
push esi
push dword [0x81f668]
mov dword [edx - 0x60], eax
push 0x900
call dword [sym.imp.KERNEL32.dll_FormatMessageA]
test eax, eax
je 0x5b0d58
mov ecx, dword [ebp - 0x494]
mov dword [ebp - 0x4f4], ecx
xor eax, eax
movzx edx, byte [ecx + eax]
test edx, edx
je 0x5b0d44
movzx edx, byte [ecx + eax + 1]
add eax, 2
test edx, edx
jne 0x5b0d2f
dec eax
mov edx, eax
cmp edx, 1
jbe 0x5b0d58
mov eax, ecx
cmp byte [eax + edx - 2], 0xd
je 0x5b0ddc
cmp dword [ebp - 0x4f4], 0
je 0x5b07a6
mov edi, str.place_holder
mov esi, dword [ebp - 0x4f4]
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x5b0d90
test dl, dl
je 0x5b0d8c
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x5b0d90
add edi, 2
add esi, 2
test dl, dl
jne 0x5b0d70
xor eax, eax
jmp 0x5b0d95
sbb eax, eax
or eax, 1
test eax, eax
je 0x5b07a6
cmp dword [ebp - 0x490], 0
jle 0x5b0df1
call fcn.0062fd20
mov edx, eax
lea eax, [ebp - 0x48c]
push eax
push 0
push dword [ebp - 0x4f4]
push 0x108
push 0x718460
mov ecx, dword [edx]
push dword [edx + 4]
or ecx, 2
push ecx
call fcn.0064c89e
add esp, 0x1c
jmp 0x5b07ad
cmp byte [eax + edx - 1], 0xa
jne 0x5b0d58
mov byte [eax + edx - 2], 0
jmp 0x5b0d58
push 0x100
push dword [ebp - 0x4f4]
push 0x718460
call fcn.00657070
add esp, 0xc
jmp 0x5b07ad
mov eax, dword [ebx + 0x9c]
lea edx, [ebp - 0x470]
push edx
push 0
mov dword [edx - 0x5c], eax
lea ecx, [esi + 1]
push ecx
call fcn.005c09a0
add esp, 0xc
test eax, eax
je 0x5b0e3e
push 0
push 0x29
call fcn.005b16e0
add esp, 8
jmp 0x5b0e47
cmp dword [ebp - 0x470], 0
je 0x5b0e30
cmp dword [0x6d3120], 0
je 0x5b0ed6
mov dword [0x6d3120], 0
call dword [sym.imp.KERNEL32.dll_GetThreadLocale]
mov dword [ebp - 0x4e0], str._lu__s
mov dword [ebp - 0x4dc], eax
mov dword [ebp - 0x4d8], str.ifcore_msg.dll
call fcn.0062fd20
mov ecx, eax
lea eax, [ebp - 0x4dc]
push eax
push 0
push str._lu__s
push 0xffffffffffffffff
mov edi, dword [ecx]
lea edx, [ebp - 0x29c]
push edx
push dword [ecx + 4]
or edi, 1
push edi
call fcn.0064c89e
add esp, 0x1c
lea eax, [ebp - 0x29c]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [0x81f668], eax
test eax, eax
je 0x5b119b
mov dword [0x6d3124], 0
call fcn.005b2bb0
xor edx, edx
lea eax, [edx + edx*2]
cmp dword [eax*4 + 0x6d1600], 0x7f
je 0x5b1289
inc edx
cmp edx, 0x23b
jl 0x5b0ed8
mov ecx, dword [ebp - 0x4c8]
xor eax, eax
movzx edx, byte [ecx + eax]
test edx, edx
je 0x5b0f0f
movzx edx, byte [ecx + eax + 1]
add eax, 2
test edx, edx
jne 0x5b0efa
dec eax
mov dword [ebp - 0x4f0], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x4a0], 0x697644
mov dword [ebp - 0x49c], eax
call fcn.0062fd20
mov ecx, eax
lea eax, [ebp - 0x49c]
push eax
push 0
push 0x697644
push 0xffffffffffffffff
mov edi, dword [ecx]
lea edx, [ebp - 0x39c]
push edx
push dword [ecx + 4]
or edi, 1
push edi
call fcn.0064c89e
add esp, 0x1c
mov dword [ebp - 0x4f4], esi
test esi, esi
jle 0x5b0f85
mov ecx, esi
mov ebx, dword [ebp - 0x4cc]
movsx edx, byte [ecx + ebx - 1]
cmp edx, 0x20
je 0x5b0f77
test edx, edx
jne 0x5b0f7c
dec ecx
test ecx, ecx
jg 0x5b0f69
mov dword [ebp - 0x4f4], ecx
mov ebx, dword [ebp + 0x14]
test eax, eax
mov edx, dword [ebp - 0x4f0]
jge 0x5b0f94
mov eax, 0xffffffff
neg edx
add edx, esi
sub edx, eax
add edx, 6
mov dword [ebp - 0x4f0], edx
js 0x5b1272
mov edi, dword [ebp - 0x4f4]
mov ecx, edx
cmp ecx, edi
mov eax, dword [ebp - 0x4c8]
jl 0x5b0fbd
mov ecx, edi
mov dword [ebp - 0x4c0], eax
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp - 0x4cc]
mov dword [ebp - 0x4bc], edx
mov dword [ebp - 0x4b8], ecx
mov dword [ebp - 0x4b4], eax
call fcn.0062fd20
mov edx, eax
lea eax, [ebp - 0x4bc]
push eax
push 0
push dword [ebp - 0x4c8]
push 0xffffffffffffffff
push dword [ebp - 0x470]
push dword [edx + 4]
mov ecx, dword [edx]
or ecx, 1
push ecx
call fcn.0064c89e
add esp, 0x1c
test eax, eax
jge 0x5b1016
mov eax, 0xffffffff
cmp esi, eax
jbe 0x5b1032
mov edx, dword [ebp - 0x470]
add edx, eax
neg eax
add eax, esi
push eax
push 0x20
push edx
call fcn.0062a5e0
add esp, 0xc
mov eax, dword [ebp - 0x4f0]
cmp eax, dword [ebp - 0x4f4]
jge 0x5b1176
cmp dword [0x6d3120], 0
je 0x5b10d3
mov dword [0x6d3120], 0
call dword [sym.imp.KERNEL32.dll_GetThreadLocale]
mov dword [ebp - 0x4f4], str._lu__s
mov dword [ebp - 0x4f0], eax
mov dword [ebp - 0x4ec], str.ifcore_msg.dll
call fcn.0062fd20
mov ecx, eax
lea eax, [ebp - 0x4f0]
push eax
push 0
push str._lu__s
push 0xffffffffffffffff
mov edi, dword [ecx]
lea edx, [ebp - 0x3ec]
push edx
push dword [ecx + 4]
or edi, 1
push edi
call fcn.0064c89e
add esp, 0x1c
lea eax, [ebp - 0x3ec]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [0x81f668], eax
test eax, eax
je 0x5b11ad
mov dword [0x6d3124], 0
call fcn.005b2bb0
xor edx, edx
lea eax, [edx + edx*2]
cmp dword [eax*4 + 0x6d1600], 0x81
je 0x5b11bf
inc edx
cmp edx, 0x23b
jl 0x5b10d5
mov eax, dword [ebp - 0x4c8]
push 1
mov dword [ebp - 0x4a8], eax
call fcn.00647235
mov dword [ebp - 0x4d0], eax
add esp, 4
call fcn.0062fd20
mov edx, eax
lea eax, [ebp - 0x4a4]
push eax
push 0
push dword [ebp - 0x4c8]
push dword [ebp - 0x4d0]
push dword [edx + 4]
push dword [edx]
call fcn.0064c712
push 1
mov dword [ebp - 0x4a4], 0x697648
call fcn.00647235
mov dword [ebp - 0x4d0], eax
add esp, 0x1c
call fcn.0062fd20
mov edx, eax
lea eax, [ebp - 0x4a0]
push eax
push 0
push 0x697648
push dword [ebp - 0x4d0]
push dword [edx + 4]
push dword [edx]
call fcn.0064c712
add esp, 0x18
push esi
push dword [ebp - 0x470]
push dword [ebp - 0x4cc]
call fcn.0062a530
push dword [ebp - 0x470]
call fcn.005c0a60
add esp, 0x10
jmp 0x5b0818
cmp dword [0x6d3124], 0
je 0x5b0ed1
jmp 0x5b0ed6
cmp dword [0x6d3124], 0
je 0x5b10ce
jmp 0x5b10d3
mov edx, dword [eax*4 + 0x6d1604]
mov dword [0x718568], edx
cmp dword [0x6d3124], 0
je 0x5b11e7
mov eax, dword [eax*4 + 0x6d1608]
mov dword [ebp - 0x4c8], eax
jmp 0x5b10f2
push 0
push 0x200
mov eax, dword [eax*4 + 0x6d1608]
lea edx, [ebp - 0x4e4]
push edx
push 0x409
mov dword [edx + 0x1c], eax
push 0x80000081
push dword [0x81f668]
push 0x900
call dword [sym.imp.KERNEL32.dll_FormatMessageA]
test eax, eax
je 0x5b10f2
mov ecx, dword [ebp - 0x4e4]
mov dword [ebp - 0x4c8], ecx
xor eax, eax
movzx edx, byte [ecx + eax]
test edx, edx
je 0x5b1245
movzx edx, byte [ecx + eax + 1]
add eax, 2
test edx, edx
jne 0x5b1230
dec eax
mov edx, eax
cmp edx, 1
jbe 0x5b10f2
mov eax, ecx
cmp byte [eax + edx - 2], 0xd
jne 0x5b10f2
cmp byte [eax + edx - 1], 0xa
jne 0x5b10f2
mov byte [eax + edx - 2], 0
jmp 0x5b10f2
push esi
push dword [ebp - 0x4c8]
push dword [ebp - 0x470]
call fcn.00657070
jmp 0x5b102f
mov edx, dword [eax*4 + 0x6d1604]
mov dword [0x718568], edx
cmp dword [0x6d3124], 0
je 0x5b12b1
mov eax, dword [eax*4 + 0x6d1608]
mov dword [ebp - 0x4c8], eax
jmp 0x5b0ef2
push 0
push 0x200
mov eax, dword [eax*4 + 0x6d1608]
lea edx, [ebp - 0x4ac]
push edx
push 0x409
mov dword [edx - 0x1c], eax
push 0x8000007f
push dword [0x81f668]
push 0x900
call dword [sym.imp.KERNEL32.dll_FormatMessageA]
test eax, eax
je 0x5b0ef2
mov ecx, dword [ebp - 0x4ac]
mov dword [ebp - 0x4c8], ecx
xor eax, eax
movzx edx, byte [ecx + eax]
test edx, edx
je 0x5b130f
movzx edx, byte [ecx + eax + 1]
add eax, 2
test edx, edx
jne 0x5b12fa
dec eax
mov edx, eax
cmp edx, 1
jbe 0x5b0ef2
mov eax, ecx
cmp byte [eax + edx - 2], 0xd
jne 0x5b0ef2
cmp byte [eax + edx - 1], 0xa
jne 0x5b0ef2
mov byte [eax + edx - 2], 0
jmp 0x5b0ef2
push 1
mov dword [ebp - 0x4f4], ecx
lea eax, [ebp - 0x400]
push eax
push edx
call fcn.005e4630
add esp, 0xc
cmp eax, 0xffffffff
je 0x5b13a7
mov edx, dword [ebp - 0x3f4]
mov eax, dword [edx + 0x94]
test eax, eax
je 0x5b1373
mov byte [eax + 0x1c], 0
mov edx, dword [ebp - 0x3f4]
mov eax, dword [edx + 0x94]
test eax, eax
je 0x5b1381
mov byte [eax + 0x1d], 0
cmp dword [ebp - 0x4f4], 0
je 0x5b08f7
mov eax, dword [ebp - 0x3f4]
push dword [eax + 0x124]
call fcn.005e2230
add esp, 4
jmp 0x5b08f7
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
mov eax, str.forrtl
call fcn.005b3730
jmp 0x5b1359
cmp dword [0x6d3124], 0
je 0x5b0bfb
jmp 0x5b0c00
mov edx, dword [eax*4 + 0x6d1604]
mov dword [0x718568], edx
cmp dword [0x6d3124], 0
je 0x5b13f2
mov eax, dword [eax*4 + 0x6d1608]
mov dword [ebp - 0x410], eax
jmp 0x5b1462
push 0
push 0x200
mov eax, dword [eax*4 + 0x6d1608]
lea edx, [ebp - 0x44c]
push edx
push 0x409
lea ecx, [ebx - 0x80000000]
push ecx
push dword [0x81f668]
mov dword [edx + 0x3c], eax
push 0x900
call dword [sym.imp.KERNEL32.dll_FormatMessageA]
test eax, eax
je 0x5b1462
mov ecx, dword [ebp - 0x44c]
mov dword [ebp - 0x410], ecx
xor eax, eax
movzx edx, byte [ecx + eax]
test edx, edx
je 0x5b144e
movzx edx, byte [ecx + eax + 1]
add eax, 2
test edx, edx
jne 0x5b1439
dec eax
mov edx, eax
cmp edx, 1
jbe 0x5b1462
mov eax, ecx
cmp byte [eax + edx - 2], 0xd
je 0x5b14e6
cmp dword [ebp - 0x410], 0
je 0x5b0c1b
mov edi, str.place_holder
mov esi, dword [ebp - 0x410]
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x5b149a
test dl, dl
je 0x5b1496
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x5b149a
add edi, 2
add esi, 2
test dl, dl
jne 0x5b147a
xor eax, eax
jmp 0x5b149f
sbb eax, eax
or eax, 1
test eax, eax
je 0x5b0c1b
cmp dword [ebp - 0x448], 0
jle 0x5b14fb
call fcn.0062fd20
mov edx, eax
lea eax, [ebp - 0x444]
push eax
push 0
push dword [ebp - 0x410]
push 0x108
push 0x718460
mov ecx, dword [edx]
push dword [edx + 4]
or ecx, 2
push ecx
call fcn.0064c89e
add esp, 0x1c
jmp 0x5b0c22
cmp byte [eax + edx - 1], 0xa
jne 0x5b1462
mov byte [eax + edx - 2], 0
jmp 0x5b1462
push 0x100
push dword [ebp - 0x410]
push 0x718460
call fcn.00657070
add esp, 0xc
jmp 0x5b0c22
call fcn.0063f93a
mov eax, str.forrtl
call fcn.005b3730
mov dword [ebx + 0x108], 0
jmp 0x5b0905
call fcn.0062f360
jmp 0x5b0856
cmp dword [0x6d3120], 0
je 0x5b15c7
mov dword [0x6d3120], 0
call dword [sym.imp.KERNEL32.dll_GetThreadLocale]
mov dword [ebp - 0x480], str._lu__s
mov dword [ebp - 0x47c], eax
mov dword [ebp - 0x478], str.ifcore_msg.dll
call fcn.0062fd20
mov ecx, eax
lea eax, [ebp - 0x47c]
push eax
push 0
push str._lu__s
push 0xffffffffffffffff
mov esi, dword [ecx]
lea edx, [ebp - 0x1fc]
push edx
push dword [ecx + 4]
or esi, 1
push esi
call fcn.0064c89e
add esp, 0x1c
lea eax, [ebp - 0x1fc]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [0x81f668], eax
test eax, eax
je 0x5b1629
mov dword [0x6d3124], 0
call fcn.005b2bb0
xor edx, edx
lea eax, [edx + edx*2]
cmp dword [eax*4 + 0x6d1600], 0x201
je 0x5b1634
inc edx
cmp edx, 0x23b
jl 0x5b15c9
mov esi, dword [0x71856c]
mov dword [ebp - 0x458], str.__s_
mov dword [ebp - 0x454], esi
call fcn.0062fd20
mov ecx, eax
lea eax, [ebp - 0x454]
push eax
push 0
push str.__s_
push 0xffffffffffffffff
mov esi, dword [ecx]
lea edx, [ebp - 0x15c]
push edx
push dword [ecx + 4]
or esi, 1
push esi
call fcn.0064c89e
jmp 0x5b0298
cmp dword [0x6d3124], 0
je 0x5b15c2
jmp 0x5b15c7
mov edx, dword [eax*4 + 0x6d1604]
mov dword [0x718568], edx
cmp dword [0x6d3124], 0
je 0x5b1659
mov esi, dword [eax*4 + 0x6d1608]
mov dword [0x71856c], esi
jmp 0x5b15e8
push 0
push 0x200
mov esi, dword [eax*4 + 0x6d1608]
lea eax, [ebp - 0x45c]
push eax
push 0x409
push 0x80000201
push dword [0x81f668]
push 0x900
call dword [sym.imp.KERNEL32.dll_FormatMessageA]
test eax, eax
je 0x5b16b8
mov esi, dword [ebp - 0x45c]
mov ecx, esi
xor eax, eax
movzx edx, byte [ecx + eax]
test edx, edx
je 0x5b16ac
movzx edx, byte [ecx + eax + 1]
add eax, 2
test edx, edx
jne 0x5b1697
dec eax
cmp eax, 1
jbe 0x5b16b8
cmp byte [esi + eax - 2], 0xd
je 0x5b16c3
mov dword [0x71856c], esi
jmp 0x5b15e8
cmp byte [esi + eax - 1], 0xa
jne 0x5b16b8
mov byte [esi + eax - 2], 0
jmp 0x5b16b8