Function at 0x47d070
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 [0x52ec00]
xor eax, ebp
cmp ecx, 0x7f
mov ebx, dword [ebp + 0x14]
jne 0x47d091
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 0x47e460
xor eax, eax
movzx edx, byte [ecx + eax]
test edx, edx
je 0x47d0d6
movzx edx, byte [ecx + eax + 1]
add eax, 2
test edx, edx
jne 0x47d0c1
dec eax
movsx esi, word [ebx + 0x188]
cmp esi, eax
lea edx, [ebp - 0x15c]
ja 0x47d0e9
mov esi, eax
push esi
push ecx
push edx
call fcn.004d7c60
add esp, 0xc
movzx eax, byte [ebx + 0x1aa]
lea esi, [ebp + esi - 0x15c]
mov byte [esi], 0
btr eax, 3
jae 0x47d1bb
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.0044f1b0
mov edx, eax
lea eax, [ebp - 0x41c]
push eax
push 0
push str._I64d
push 0xffffffffffffffff
push 0x21fa5c0
mov ecx, dword [edx]
push dword [edx + 4]
or ecx, 1
push ecx
call fcn.004d7b10
mov eax, dword [ebx + 0x50]
sub eax, dword [ebx + 0x5c]
push eax
push 0x21fa5c0
push 2
push 0x202
call fcn.004802a0
add esp, 0x2c
mov dword [ebp - 0x40c], 0x502960
mov dword [ebp - 0x408], eax
call fcn.0044f1b0
mov edx, eax
lea eax, [ebp - 0x408]
push eax
push 0
push 0x502960
push 0xffffffffffffffff
push esi
mov ecx, dword [edx]
push dword [edx + 4]
or ecx, 1
push ecx
call fcn.004d7b10
add esp, 0x1c
test byte [ebx + 0x1a2], 0x40
je 0x47d1e9
cmp dword [ebp - 0x3fc], 0x3f
je 0x47d1e9
mov eax, dword [ebx + 0x94]
test eax, eax
je 0x47d1e9
mov byte [eax + 0x1e], 0
mov eax, dword [ebx + 0x94]
test eax, eax
je 0x47d1e9
mov byte [eax + 0x1f], 0
mov eax, dword [ebp - 0x3fc]
lea edx, [eax - 0x67]
mov dword [ebp - 0x4f0], edx
cmp edx, 1
ja 0x47d20b
mov eax, dword [ebx + 0x80]
mov dword [ebp - 0x444], eax
jmp 0x47d215
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 [0x52a9a4], 2
jl 0x47d263
lea eax, [ebp - 0x3f0]
push eax
call fcn.0044a490
add esp, 4
test eax, eax
jne 0x47dbbe
mov edi, dword [ebp - 0x3f0]
lea eax, [ebp - 0x24]
add edi, 0x10
jmp 0x47d275
mov dword [ebp - 0x3f0], 0x52a900
mov edi, 0x52a910
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.004c69f0
add esp, 0xc
test eax, eax
jne 0x47d277
mov ebx, dword [ebp + 0x14]
cmp dword [ebp - 0x444], 0
je 0x47d30a
mov ecx, dword [ebp - 0x444]
xor eax, eax
movzx edx, byte [ecx + eax]
test edx, edx
je 0x47d2d6
movzx edx, byte [ecx + eax + 1]
add eax, 2
test edx, edx
jne 0x47d2c1
dec eax
mov edi, eax
add esi, 0x24
cmp edi, 0x40
mov ebx, ecx
jb 0x47d2e7
mov edi, 0x40
push edi
push ebx
push esi
call fcn.004c6aa0
push edi
mov esi, dword [ebp - 0x3f0]
push ebx
add esi, 0x24
push esi
call fcn.004c69f0
add esp, 0x18
test eax, eax
jne 0x47d2e7
mov ebx, dword [ebp + 0x14]
movsx edx, byte [ebx + 0x194]
lea eax, [edx - 1]
cmp eax, 2
jbe 0x47d32d
lea eax, [edx - 0x18]
cmp eax, 1
jbe 0x47d32d
add edx, 0xffffffe0
cmp edx, 2
jbe 0x47d32d
xor edx, edx
jmp 0x47d332
mov edx, 1
movzx eax, byte [ebx + 0x1a4]
test al, 1
je 0x47d389
cmp dword [ebp - 0x3fc], 0x18
je 0x47d389
cmp dword [ebp - 0x3fc], 0xffffffff
je 0x47d389
cmp dword [ebp - 0x3fc], 0x265
je 0x47d389
test edx, edx
je 0x47d368
cmp dword [ebp - 0x3fc], 0x1b
je 0x47d389
cmp dword [ebp - 0x3fc], 0x10c
je 0x47d389
cmp dword [ebp - 0x3fc], 0xfffffffe
je 0x47d389
cmp dword [ebp - 0x3fc], 0x2f6
jne 0x47d39b
test byte [ebx + 0x1a7], 8
je 0x47d3b3
cmp dword [ebp - 0x3fc], 0x3f
jne 0x47d3b3
mov eax, dword [ebp + 0x10]
mov dword [ebx + 0x108], 0
mov dword [ebp - 0x3fc], eax
jmp 0x47d515
test al, 2
je 0x47d41f
cmp dword [ebp - 0x3fc], 0xffffffff
je 0x47d3c9
cmp dword [ebp - 0x3fc], 0x18
jne 0x47d406
mov dword [ebx + 0x108], 0
test al, 0x40
jne 0x47d3e0
test byte [ebx + 0x1a0], 1
jne 0x47d3e7
mov edx, 1
jmp 0x47d3e9
xor edx, edx
shl edx, 5
and eax, 0xffffffdf
or eax, edx
mov byte [ebx + 0x1a4], al
mov dword [ebp - 0x3fc], 0xffffffff
jmp 0x47d515
test edx, edx
je 0x47d413
cmp dword [ebp - 0x3fc], 0x1b
je 0x47d3c9
cmp dword [ebp - 0x3fc], 0x265
je 0x47d3c9
test al, 4
je 0x47d47f
cmp dword [ebp - 0x3fc], 0xfffffffe
je 0x47d444
cmp dword [ebp - 0x3fc], 0x10c
je 0x47d444
cmp dword [ebp - 0x3fc], 0x2f6
jne 0x47d47f
mov dword [ebx + 0x108], 0
test al, 0x40
je 0x47d460
movzx edx, byte [ebx + 0x1a0]
not edx
and edx, 1
jmp 0x47d462
xor edx, edx
shl edx, 5
and eax, 0xffffffdf
or eax, edx
mov byte [ebx + 0x1a4], al
mov dword [ebp - 0x3fc], 0xfffffffe
jmp 0x47d515
test byte [ebx + 0x1ae], 0x10
je 0x47d75a
mov dword [ebx + 0x108], 0
test al, 0x40
jne 0x47d4a3
test byte [ebx + 0x1a0], 1
jne 0x47d4aa
mov ecx, 1
jmp 0x47d4ac
xor ecx, ecx
shl ecx, 5
and eax, 0xffffffdf
or eax, ecx
mov byte [ebx + 0x1a4], al
cmp dword [ebp - 0x3fc], 0x18
je 0x47d4dc
cmp dword [ebp - 0x3fc], 0x265
je 0x47d4dc
test edx, edx
je 0x47d4e8
cmp dword [ebp - 0x3fc], 0x1b
jne 0x47d4e8
mov dword [ebp - 0x3fc], 0xffffffff
jmp 0x47d515
cmp dword [ebp - 0x3fc], 0x10c
je 0x47d500
cmp dword [ebp - 0x3fc], 0x2f6
jne 0x47d50c
mov dword [ebp - 0x3fc], 0xfffffffe
jmp 0x47d515
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x3fc], eax
mov esi, dword [ebx + 0x114]
test esi, esi
je 0x47d749
cmp dword [ebp - 0x444], 0
je 0x47d5d0
lea eax, [ebp - 0x15c]
push eax
push dword [ebp - 0x3f8]
push dword [ebp - 0x444]
push 3
push dword [ebp + 0x10]
call fcn.004802a0
mov ecx, eax
add esp, 0x14
xor eax, eax
movzx edx, byte [ecx + eax]
test edx, edx
je 0x47d569
movzx edx, byte [ecx + eax + 1]
add eax, 2
test edx, edx
jne 0x47d554
dec eax
mov edx, dword [ebx + 0x114]
mov dword [ebp - 0x4f4], eax
cmp eax, edx
jb 0x47d58b
push edx
push ecx
push dword [ebx + 0x9c]
call fcn.004c6aa0
add esp, 0xc
jmp 0x47d5bf
push dword [ebp - 0x4f4]
push ecx
push dword [ebx + 0x9c]
call fcn.004c6aa0
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.004c6960
add esp, 0x18
cmp dword [ebp + 8], 0
je 0x47db98
xor esi, esi
jmp 0x47d860
cmp dword [ebp - 0x3fc], 0x7f
je 0x47dd2e
cmp dword [ebp - 0x410], 0
jne 0x47d738
test byte [ebx + 0x1ad], 0x10
jne 0x47d738
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 [0x52c540], 0
je 0x47d6a8
mov dword [0x52c540], 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.0044f1b0
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.004d7b10
add esp, 0x1c
lea eax, [ebp - 0x24c]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [0x5e4e618], eax
test eax, eax
je 0x47dbce
mov dword [0x52c544], 0
call fcn.0047fb40
mov ecx, dword [ebp + 0x10]
xor edx, edx
lea eax, [edx + edx*2]
cmp ecx, dword [eax*4 + 0x52aa80]
je 0x47dbe0
inc edx
cmp edx, 0x234
jl 0x47d6ad
mov byte [0x21fa6c0], 0
mov ecx, 0x21fa6c0
xor eax, eax
movzx edx, byte [ecx + eax]
test edx, edx
je 0x47d6e9
movzx edx, byte [ecx + eax + 1]
add eax, 2
test edx, edx
jne 0x47d6d4
dec eax
mov esi, eax
mov eax, dword [ebx + 0x114]
cmp esi, eax
jb 0x47d70b
push eax
push 0x21fa6c0
push dword [ebx + 0x9c]
call fcn.004c6aa0
add esp, 0xc
jmp 0x47d738
push esi
push 0x21fa6c0
push dword [ebx + 0x9c]
call fcn.004c6aa0
mov eax, dword [ebx + 0x114]
sub eax, esi
push eax
mov edx, dword [ebx + 0x9c]
push 0x20
add edx, esi
push edx
call fcn.004c6960
add esp, 0x18
cmp dword [ebp + 8], 0
je 0x47db98
xor esi, esi
jmp 0x47d860
cmp dword [ebp + 8], 0
je 0x47db98
xor esi, esi
jmp 0x47d860
mov byte [ebp - 0x400], 0xa
cmp dword [0x22072dc], 0
jne 0x47e456
push 0xfffffffffffffff4
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
mov edi, eax
xor esi, esi
mov ecx, dword [esi*4 + 0x4fefd8]
cmp ecx, dword [ebx + 0x124]
jne 0x47d7a8
mov dword [ebp - 0x3f4], ebx
mov edx, ebx
test byte [ebx + 0x1a1], 0x20
je 0x47d80d
mov eax, dword [ebx + 0x94]
test eax, eax
je 0x47d80d
xor ecx, ecx
jmp 0x47d7e3
push 0xf
lea eax, [ebp - 0x440]
push eax
lea edx, [ebp - 0x3f4]
push edx
push ecx
call fcn.00480fe0
add esp, 0x10
test eax, eax
jne 0x47d80d
mov edx, dword [ebp - 0x3f4]
test byte [edx + 0x1a1], 0x20
je 0x47d7ff
mov eax, dword [edx + 0x94]
test eax, eax
je 0x47d7ff
mov ecx, 1
cmp byte [eax + 0x1c], 0
jne 0x47d7ef
cmp byte [eax + 0x1d], 0
je 0x47d7fb
cmp edi, dword [edx + 0x104]
je 0x47e25c
test ecx, ecx
je 0x47d80d
push dword [edx + 0x124]
call fcn.004827f0
add esp, 4
inc esi
cmp esi, 4
jl 0x47d77a
mov edx, dword [ebx + 0x108]
test edx, edx
jne 0x47e43d
cmp dword [ebp - 0x4f0], 1
ja 0x47d83a
mov eax, dword [ebx + 0x80]
mov dword [ebp - 0x444], eax
mov eax, dword [ebx + 0x114]
mov edx, dword [ebx + 0x9c]
mov dword [0x21fa808], eax
mov dword [0x21fa804], edx
cmp dword [ebp + 8], 0
je 0x47da11
mov esi, 1
cmp dword [ebp + 8], 1
je 0x47d9fb
cmp dword [ebp + 8], 2
jne 0x47d9d0
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 0x47d8c5
test byte [edi + 0x73], 2
je 0x47d8a8
push dword [edi + 4]
call fcn.00480f70
add esp, 4
mov dword [edi + 4], 0
movzx eax, word [ebx + 0x18a]
test eax, eax
jg 0x47d8be
push dword [ebx + 0x70]
call fcn.00480f70
add esp, 4
mov dword [ebx + 0x70], 0
mov eax, dword [ebx + 0x4c]
test eax, eax
je 0x47d8d5
push eax
call fcn.00480f70
add esp, 4
mov edx, dword [ebx + 0x78]
test edx, edx
je 0x47d8f0
movsx eax, word [ebx + 0x188]
test eax, eax
je 0x47d8f0
push edx
call fcn.00480f70
add esp, 4
mov eax, dword [ebx + 0x104]
test eax, eax
je 0x47d906
cmp eax, 0xffffffff
je 0x47d906
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 0x47d965
push 0x198
push 0
push eax
call fcn.004c6960
add esp, 0xc
movzx eax, byte [ebx + 0x1a1]
and eax, 0xffffffe7
add eax, 8
mov byte [ebx + 0x1a1], al
jmp 0x47d975
push 0x198
push 0
push eax
call fcn.004c6960
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.004827f0
jmp 0x47da06
cmp dword [ebp + 8], 3
jne 0x47d9e3
push 1
push ebx
call fcn.00465c30
add esp, 8
jmp 0x47da09
push 0xba9
push str.for_diags_intel.c
push 2
push 8
call fcn.0047e600
add esp, 0x10
jmp 0x47da09
push dword [ebx + 0x124]
call fcn.004827f0
add esp, 4
test esi, esi
je 0x47db98
cmp dword [ebp - 0x444], 0
je 0x47da42
lea eax, [ebp - 0x15c]
push eax
push dword [ebp - 0x3f8]
push dword [ebp - 0x444]
push 3
push dword [ebp - 0x3fc]
call fcn.0047e600
add esp, 0x14
jmp 0x47db8c
cmp dword [ebp - 0x3fc], 0x7f
je 0x47da58
cmp dword [ebp - 0x410], 0
je 0x47db6f
cmp dword [ebp + 0x10], 0xffffffff
jne 0x47da65
mov ebx, 0x18
jmp 0x47da72
mov ebx, dword [ebp + 0x10]
cmp ebx, 0xfffffffe
jne 0x47da72
mov ebx, 0x10c
mov eax, dword [0x21fa808]
test eax, eax
je 0x47da94
push dword [0x21fa804]
push eax
push ebx
push 3
push 0x7f
call fcn.0047e600
add esp, 0x14
jmp 0x47db8c
mov dword [ebp - 0x448], 0
cmp dword [0x52c540], 0
je 0x47db20
mov dword [0x52c540], 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.0044f1b0
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.004d7b10
add esp, 0x1c
push esi
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [0x5e4e618], eax
test eax, eax
je 0x47e2db
mov dword [0x52c544], 0
call fcn.0047fb40
xor edx, edx
lea eax, [edx + edx*2]
cmp ebx, dword [eax*4 + 0x52aa80]
je 0x47e2ed
inc edx
cmp edx, 0x234
jl 0x47db22
mov byte [0x21fa6c0], 0
mov ecx, 0x21fa6c0
xor eax, eax
movzx edx, byte [ecx + eax]
test edx, edx
je 0x47db5e
movzx edx, byte [ecx + eax + 1]
add eax, 2
test edx, edx
jne 0x47db49
dec eax
push ecx
push eax
push ebx
push 3
push 0x7f
call fcn.0047e600
add esp, 0x14
jmp 0x47db8c
lea eax, [ebp - 0x15c]
push eax
push dword [ebp - 0x3f8]
push 2
push dword [ebp - 0x3fc]
call fcn.0047e600
add esp, 0x10
xor eax, eax
mov dword [0x21fa808], eax
mov dword [0x21fa804], eax
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x10], 0
xor ecx, ebp
cmp ecx, dword [0x52ec00]
jne 0x47e438
mov eax, dword [ebp - 0x3fc]
lea esp, [ebp - 0xc]
pop ebx
pop edi
pop esi
pop ebp
ret
push 0
push eax
call fcn.0047e600
add esp, 8
jmp 0x47d30a
cmp dword [0x52c544], 0
je 0x47d6a3
jmp 0x47d6a8
mov edx, dword [eax*4 + 0x52aa84]
mov dword [0x21fa7c8], edx
cmp dword [0x52c544], 0
je 0x47dc05
mov eax, dword [eax*4 + 0x52aa88]
mov dword [ebp - 0x4f4], eax
jmp 0x47dc78
push 0
mov ecx, dword [ebp + 0x10]
lea edx, [ebp - 0x494]
push 0x200
push edx
push 0x409
mov eax, dword [eax*4 + 0x52aa88]
lea esi, [ecx - 0x80000000]
push esi
push dword [0x5e4e618]
mov dword [edx - 0x60], eax
push 0x900
call dword [sym.imp.KERNEL32.dll_FormatMessageA]
test eax, eax
je 0x47dc78
mov ecx, dword [ebp - 0x494]
mov dword [ebp - 0x4f4], ecx
xor eax, eax
movzx edx, byte [ecx + eax]
test edx, edx
je 0x47dc64
movzx edx, byte [ecx + eax + 1]
add eax, 2
test edx, edx
jne 0x47dc4f
dec eax
mov edx, eax
cmp edx, 1
jbe 0x47dc78
mov eax, ecx
cmp byte [eax + edx - 2], 0xd
je 0x47dcfc
cmp dword [ebp - 0x4f4], 0
je 0x47d6c6
mov edi, str.place_holder
mov esi, dword [ebp - 0x4f4]
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x47dcb0
test dl, dl
je 0x47dcac
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x47dcb0
add edi, 2
add esi, 2
test dl, dl
jne 0x47dc90
xor eax, eax
jmp 0x47dcb5
sbb eax, eax
or eax, 1
test eax, eax
je 0x47d6c6
cmp dword [ebp - 0x490], 0
jle 0x47dd11
call fcn.0044f1b0
mov edx, eax
lea eax, [ebp - 0x48c]
push eax
push 0
push dword [ebp - 0x4f4]
push 0x108
push 0x21fa6c0
mov ecx, dword [edx]
push dword [edx + 4]
or ecx, 2
push ecx
call fcn.004d7b10
add esp, 0x1c
jmp 0x47d6cd
cmp byte [eax + edx - 1], 0xa
jne 0x47dc78
mov byte [eax + edx - 2], 0
jmp 0x47dc78
push pe_nt_image_headers32
push dword [ebp - 0x4f4]
push 0x21fa6c0
call fcn.004d7c60
add esp, 0xc
jmp 0x47d6cd
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.00480eb0
add esp, 0xc
test eax, eax
je 0x47dd5e
push 0
push 0x29
call fcn.0047e600
add esp, 8
jmp 0x47dd67
cmp dword [ebp - 0x470], 0
je 0x47dd50
cmp dword [0x52c540], 0
je 0x47ddf6
mov dword [0x52c540], 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.0044f1b0
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.004d7b10
add esp, 0x1c
lea eax, [ebp - 0x29c]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [0x5e4e618], eax
test eax, eax
je 0x47e0bb
mov dword [0x52c544], 0
call fcn.0047fb40
xor edx, edx
lea eax, [edx + edx*2]
cmp dword [eax*4 + 0x52aa80], 0x7f
je 0x47e1a9
inc edx
cmp edx, 0x234
jl 0x47ddf8
mov ecx, dword [ebp - 0x4c8]
xor eax, eax
movzx edx, byte [ecx + eax]
test edx, edx
je 0x47de2f
movzx edx, byte [ecx + eax + 1]
add eax, 2
test edx, edx
jne 0x47de1a
dec eax
mov dword [ebp - 0x4f0], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x4a0], 0x505bec
mov dword [ebp - 0x49c], eax
call fcn.0044f1b0
mov ecx, eax
lea eax, [ebp - 0x49c]
push eax
push 0
push 0x505bec
push 0xffffffffffffffff
mov edi, dword [ecx]
lea edx, [ebp - 0x39c]
push edx
push dword [ecx + 4]
or edi, 1
push edi
call fcn.004d7b10
add esp, 0x1c
mov dword [ebp - 0x4f4], esi
test esi, esi
jle 0x47dea5
mov ecx, esi
mov ebx, dword [ebp - 0x4cc]
movsx edx, byte [ecx + ebx - 1]
cmp edx, 0x20
je 0x47de97
test edx, edx
jne 0x47de9c
dec ecx
test ecx, ecx
jg 0x47de89
mov dword [ebp - 0x4f4], ecx
mov ebx, dword [ebp + 0x14]
test eax, eax
mov edx, dword [ebp - 0x4f0]
jge 0x47deb4
mov eax, 0xffffffff
neg edx
add edx, esi
sub edx, eax
add edx, 6
mov dword [ebp - 0x4f0], edx
js 0x47e192
mov edi, dword [ebp - 0x4f4]
mov ecx, edx
cmp ecx, edi
mov eax, dword [ebp - 0x4c8]
jl 0x47dedd
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.0044f1b0
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.004d7b10
add esp, 0x1c
test eax, eax
jge 0x47df36
mov eax, 0xffffffff
cmp esi, eax
jbe 0x47df52
mov edx, dword [ebp - 0x470]
add edx, eax
neg eax
add eax, esi
push eax
push 0x20
push edx
call fcn.004c6960
add esp, 0xc
mov eax, dword [ebp - 0x4f0]
cmp eax, dword [ebp - 0x4f4]
jge 0x47e096
cmp dword [0x52c540], 0
je 0x47dff3
mov dword [0x52c540], 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.0044f1b0
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.004d7b10
add esp, 0x1c
lea eax, [ebp - 0x3ec]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [0x5e4e618], eax
test eax, eax
je 0x47e0cd
mov dword [0x52c544], 0
call fcn.0047fb40
xor edx, edx
lea eax, [edx + edx*2]
cmp dword [eax*4 + 0x52aa80], 0x81
je 0x47e0df
inc edx
cmp edx, 0x234
jl 0x47dff5
mov eax, dword [ebp - 0x4c8]
push 1
mov dword [ebp - 0x4a8], eax
call fcn.004d82c4
mov dword [ebp - 0x4d0], eax
add esp, 4
call fcn.0044f1b0
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.004d7984
push 1
mov dword [ebp - 0x4a4], 0x505bf0
call fcn.004d82c4
mov dword [ebp - 0x4d0], eax
add esp, 0x1c
call fcn.0044f1b0
mov edx, eax
lea eax, [ebp - 0x4a0]
push eax
push 0
push 0x505bf0
push dword [ebp - 0x4d0]
push dword [edx + 4]
push dword [edx]
call fcn.004d7984
add esp, 0x18
push esi
push dword [ebp - 0x470]
push dword [ebp - 0x4cc]
call fcn.004c6aa0
push dword [ebp - 0x470]
call fcn.00480f70
add esp, 0x10
jmp 0x47d738
cmp dword [0x52c544], 0
je 0x47ddf1
jmp 0x47ddf6
cmp dword [0x52c544], 0
je 0x47dfee
jmp 0x47dff3
mov edx, dword [eax*4 + 0x52aa84]
mov dword [0x21fa7c8], edx
cmp dword [0x52c544], 0
je 0x47e107
mov eax, dword [eax*4 + 0x52aa88]
mov dword [ebp - 0x4c8], eax
jmp 0x47e012
push 0
push 0x200
mov eax, dword [eax*4 + 0x52aa88]
lea edx, [ebp - 0x4e4]
push edx
push 0x409
mov dword [edx + 0x1c], eax
push 0x80000081
push dword [0x5e4e618]
push 0x900
call dword [sym.imp.KERNEL32.dll_FormatMessageA]
test eax, eax
je 0x47e012
mov ecx, dword [ebp - 0x4e4]
mov dword [ebp - 0x4c8], ecx
xor eax, eax
movzx edx, byte [ecx + eax]
test edx, edx
je 0x47e165
movzx edx, byte [ecx + eax + 1]
add eax, 2
test edx, edx
jne 0x47e150
dec eax
mov edx, eax
cmp edx, 1
jbe 0x47e012
mov eax, ecx
cmp byte [eax + edx - 2], 0xd
jne 0x47e012
cmp byte [eax + edx - 1], 0xa
jne 0x47e012
mov byte [eax + edx - 2], 0
jmp 0x47e012
push esi
push dword [ebp - 0x4c8]
push dword [ebp - 0x470]
call fcn.004d7c60
jmp 0x47df4f
mov edx, dword [eax*4 + 0x52aa84]
mov dword [0x21fa7c8], edx
cmp dword [0x52c544], 0
je 0x47e1d1
mov eax, dword [eax*4 + 0x52aa88]
mov dword [ebp - 0x4c8], eax
jmp 0x47de12
push 0
push 0x200
mov eax, dword [eax*4 + 0x52aa88]
lea edx, [ebp - 0x4ac]
push edx
push 0x409
mov dword [edx - 0x1c], eax
push 0x8000007f
push dword [0x5e4e618]
push 0x900
call dword [sym.imp.KERNEL32.dll_FormatMessageA]
test eax, eax
je 0x47de12
mov ecx, dword [ebp - 0x4ac]
mov dword [ebp - 0x4c8], ecx
xor eax, eax
movzx edx, byte [ecx + eax]
test edx, edx
je 0x47e22f
movzx edx, byte [ecx + eax + 1]
add eax, 2
test edx, edx
jne 0x47e21a
dec eax
mov edx, eax
cmp edx, 1
jbe 0x47de12
mov eax, ecx
cmp byte [eax + edx - 2], 0xd
jne 0x47de12
cmp byte [eax + edx - 1], 0xa
jne 0x47de12
mov byte [eax + edx - 2], 0
jmp 0x47de12
push 1
mov dword [ebp - 0x4f4], ecx
lea eax, [ebp - 0x400]
push eax
push edx
call fcn.004984a0
add esp, 0xc
cmp eax, 0xffffffff
je 0x47e2c7
mov edx, dword [ebp - 0x3f4]
mov eax, dword [edx + 0x94]
test eax, eax
je 0x47e293
mov byte [eax + 0x1c], 0
mov edx, dword [ebp - 0x3f4]
mov eax, dword [edx + 0x94]
test eax, eax
je 0x47e2a1
mov byte [eax + 0x1d], 0
cmp dword [ebp - 0x4f4], 0
je 0x47d817
mov eax, dword [ebp - 0x3f4]
push dword [eax + 0x124]
call fcn.004827f0
add esp, 4
jmp 0x47d817
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
mov eax, str.forrtl
call fcn.00480570
jmp 0x47e279
cmp dword [0x52c544], 0
je 0x47db1b
jmp 0x47db20
mov edx, dword [eax*4 + 0x52aa84]
mov dword [0x21fa7c8], edx
cmp dword [0x52c544], 0
je 0x47e312
mov eax, dword [eax*4 + 0x52aa88]
mov dword [ebp - 0x410], eax
jmp 0x47e382
push 0
push 0x200
mov eax, dword [eax*4 + 0x52aa88]
lea edx, [ebp - 0x44c]
push edx
push 0x409
lea ecx, [ebx - 0x80000000]
push ecx
push dword [0x5e4e618]
mov dword [edx + 0x3c], eax
push 0x900
call dword [sym.imp.KERNEL32.dll_FormatMessageA]
test eax, eax
je 0x47e382
mov ecx, dword [ebp - 0x44c]
mov dword [ebp - 0x410], ecx
xor eax, eax
movzx edx, byte [ecx + eax]
test edx, edx
je 0x47e36e
movzx edx, byte [ecx + eax + 1]
add eax, 2
test edx, edx
jne 0x47e359
dec eax
mov edx, eax
cmp edx, 1
jbe 0x47e382
mov eax, ecx
cmp byte [eax + edx - 2], 0xd
je 0x47e406
cmp dword [ebp - 0x410], 0
je 0x47db3b
mov edi, str.place_holder
mov esi, dword [ebp - 0x410]
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x47e3ba
test dl, dl
je 0x47e3b6
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x47e3ba
add edi, 2
add esi, 2
test dl, dl
jne 0x47e39a
xor eax, eax
jmp 0x47e3bf
sbb eax, eax
or eax, 1
test eax, eax
je 0x47db3b
cmp dword [ebp - 0x448], 0
jle 0x47e41b
call fcn.0044f1b0
mov edx, eax
lea eax, [ebp - 0x444]
push eax
push 0
push dword [ebp - 0x410]
push 0x108
push 0x21fa6c0
mov ecx, dword [edx]
push dword [edx + 4]
or ecx, 2
push ecx
call fcn.004d7b10
add esp, 0x1c
jmp 0x47db42
cmp byte [eax + edx - 1], 0xa
jne 0x47e382
mov byte [eax + edx - 2], 0
jmp 0x47e382
push pe_nt_image_headers32
push dword [ebp - 0x410]
push 0x21fa6c0
call fcn.004d7c60
add esp, 0xc
jmp 0x47db42
call fcn.004cba1b
mov eax, str.forrtl
call fcn.00480570
mov dword [ebx + 0x108], 0
jmp 0x47d825
call fcn.004cb4f0
jmp 0x47d776
cmp dword [0x52c540], 0
je 0x47e4e7
mov dword [0x52c540], 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.0044f1b0
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.004d7b10
add esp, 0x1c
lea eax, [ebp - 0x1fc]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [0x5e4e618], eax
test eax, eax
je 0x47e549
mov dword [0x52c544], 0
call fcn.0047fb40
xor edx, edx
lea eax, [edx + edx*2]
cmp dword [eax*4 + 0x52aa80], 0x201
je 0x47e554
inc edx
cmp edx, 0x234
jl 0x47e4e9
mov esi, dword [0x21fa7cc]
mov dword [ebp - 0x458], str.__s_
mov dword [ebp - 0x454], esi
call fcn.0044f1b0
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.004d7b10
jmp 0x47d1b8
cmp dword [0x52c544], 0
je 0x47e4e2
jmp 0x47e4e7
mov edx, dword [eax*4 + 0x52aa84]
mov dword [0x21fa7c8], edx
cmp dword [0x52c544], 0
je 0x47e579
mov esi, dword [eax*4 + 0x52aa88]
mov dword [0x21fa7cc], esi
jmp 0x47e508
push 0
push 0x200
mov esi, dword [eax*4 + 0x52aa88]
lea eax, [ebp - 0x45c]
push eax
push 0x409
push 0x80000201
push dword [0x5e4e618]
push 0x900
call dword [sym.imp.KERNEL32.dll_FormatMessageA]
test eax, eax
je 0x47e5d8
mov esi, dword [ebp - 0x45c]
mov ecx, esi
xor eax, eax
movzx edx, byte [ecx + eax]
test edx, edx
je 0x47e5cc
movzx edx, byte [ecx + eax + 1]
add eax, 2
test edx, edx
jne 0x47e5b7
dec eax
cmp eax, 1
jbe 0x47e5d8
cmp byte [esi + eax - 2], 0xd
je 0x47e5e3
mov dword [0x21fa7cc], esi
jmp 0x47e508
cmp byte [esi + eax - 1], 0xa
jne 0x47e5d8
mov byte [esi + eax - 2], 0
jmp 0x47e5d8