Function at 0x1003ce20
Capabilities:
Extract resource via kernel32 functions
Get common file path
Write file on windows

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1003f655
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x4c8
mov eax, dword [0x10070024]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov byte [ebp - 0x489], dl
mov byte [ebp - 0x4aa], cl
mov al, byte [ebx + 0xc]
mov edi, dword [ebx + 0x14]
mov byte [ebp - 0x4a9], al
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0x4bc], eax
mov eax, dword [ebx + 0x18]
mov dword [ebp - 0x4a8], edi
mov dword [ebp - 0x4c0], eax
lea eax, [ebx + 0x1c]
mov dword [ebp - 4], 1
push eax
lea ecx, [ebp - 0x470]
call fcn.100013c0
mov byte [ebp - 4], 2
lea edx, [ebp - 0x470]
cmp dword [ebp - 0x45c], 8
mov esi, dword [ebp - 0x460]
cmovae edx, dword [ebp - 0x470]
test esi, esi
je 0x1003cef3
or ecx, 0xffffffff
lea eax, [esi - 1]
cmp eax, ecx
cmovb ecx, eax
cmp word [edx + ecx*2], 0x5c
lea ecx, [edx + ecx*2]
je 0x1003ceed
nop
cmp ecx, edx
je 0x1003cef3
sub ecx, 2
cmp word [ecx], 0x5c
jne 0x1003cee0
sub ecx, edx
sar ecx, 1
jmp 0x1003cef6
or ecx, 0xffffffff
cmp esi, ecx
jb 0x1003dce9
cmp dword [ebp - 0x45c], 8
lea eax, [ebp - 0x470]
mov dword [ebp - 0x460], ecx
cmovae eax, dword [ebp - 0x470]
xor edx, edx
mov word [eax + ecx*2], dx
mov eax, dword [ebp - 0x4c0]
mov byte [eax], dl
cmp byte [ebp - 0x489], dl
jne 0x1003db49
call fcn.1003bd90
test eax, eax
jne 0x1003db49
mov dword [ebp - 0x4b8], eax
mov byte [ebp - 4], 0xd
mov eax, dword [ebx + 8]
test eax, eax
je 0x1003dd2a
mov byte [ebp - 4], 0xd
lea edx, [ebp - 0x4b8]
mov dword [ebp - 0x4b8], 0
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x48]
test eax, eax
js 0x1003db14
mov esi, dword [ebp - 0x4b8]
test esi, esi
je 0x1003db14
xor edi, edi
mov dword [ebp - 0x4c8], edi
mov byte [ebp - 4], 0x11
mov eax, dword [esi]
push esi
call dword [eax + 4]
mov byte [ebp - 4], 0x12
test esi, esi
je 0x1003cfd9
lea ecx, [ebp - 0x498]
mov dword [ebp - 0x498], edi
mov eax, dword [esi]
push ecx
push 0x10046298
push esi
call dword [eax]
test eax, eax
mov dword [ebp - 0x494], eax
cmovns edi, dword [ebp - 0x498]
mov dword [ebp - 0x4c8], edi
mov dword [ebp - 0x49c], edi
mov dword [ebp - 0x4a0], edi
jmp 0x1003cff1
xor ecx, ecx
mov dword [ebp - 0x494], 0x80004002
mov dword [ebp - 0x49c], ecx
mov dword [ebp - 0x4a0], ecx
mov byte [ebp - 4], 0x17
test esi, esi
je 0x1003cfff
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov byte [ebp - 4], 0xd
mov eax, dword [ebp - 0x494]
test eax, eax
jns 0x1003d018
cmp eax, 0x80004002
jne 0x1003dcee
mov byte [ebp - 4], 0x18
cmp dword [ebp - 0x4a0], 0
je 0x1003dd2a
cmp dword [ebp - 0x45c], 8
lea eax, [ebp - 0x470]
lea ecx, [ebp - 0x4a4]
cmovae eax, dword [ebp - 0x470]
push eax
call fcn.10001bc0
mov byte [ebp - 4], 0x19
mov ecx, dword [eax]
test ecx, ecx
je 0x1003d057
mov ecx, dword [ecx]
jmp 0x1003d059
xor ecx, ecx
mov esi, dword [ebp - 0x49c]
push ecx
push esi
mov eax, dword [esi]
call dword [eax + 0x10]
lea ecx, [ebp - 0x4a4]
mov dword [ebp - 0x494], eax
mov byte [ebp - 4], 0x18
call fcn.10001b60
cmp dword [ebp - 0x494], 0
jge 0x1003d091
mov esi, dword [ebp - 0x494]
mov edx, 0x84
jmp 0x1003d0e2
cmp byte [ebp - 0x4a9], 0
mov ecx, 0x10045ec8
mov eax, 0x10045ebc
cmove eax, ecx
lea ecx, [ebp - 0x4a4]
push eax
call fcn.10001bc0
mov byte [ebp - 4], 0x1d
mov ecx, dword [eax]
test ecx, ecx
je 0x1003d0bf
mov ecx, dword [ecx]
jmp 0x1003d0c1
xor ecx, ecx
mov eax, dword [esi]
push ecx
push esi
call dword [eax + 0x58]
lea ecx, [ebp - 0x4a4]
mov byte [ebp - 4], 0x18
mov esi, eax
call fcn.10001b60
test esi, esi
jns 0x1003d0fc
mov edx, 0x92
push esi
push 0x76
mov ecx, 0x82
call fcn.1003c080
add esp, 8
mov esi, 0x80004005
jmp 0x1003db08
push str.Excel_DNA:
lea ecx, [ebp - 0x488]
call fcn.10001370
mov byte [ebp - 4], 0x21
lea ecx, [ebx + 0x1c]
cmp dword [ebx + 0x30], 8
push dword [ebx + 0x2c]
cmovae ecx, dword [ebx + 0x1c]
push ecx
mov ecx, eax
call fcn.100015a0
mov dword [ebp - 0x440], 0
xor ecx, ecx
mov dword [ebp - 0x430], 0
mov dword [ebp - 0x42c], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x440], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x430], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
mov byte [ebp - 4], 0x22
lea eax, [ebp - 0x440]
cmp dword [ebp - 0x42c], 8
lea ecx, [ebp - 0x4a4]
cmovae eax, dword [ebp - 0x440]
push eax
call fcn.10001bc0
mov byte [ebp - 4], 0x24
mov edx, dword [ebp - 0x42c]
cmp edx, 8
jb 0x1003d1d6
mov ecx, dword [ebp - 0x440]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x1003d1cc
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003dcf4
push edx
push ecx
call fcn.10002383
add esp, 8
xor eax, eax
mov dword [ebp - 0x430], 0
mov dword [ebp - 0x42c], 7
mov word [ebp - 0x440], ax
lea ecx, [ebp - 0x488]
mov byte [ebp - 4], 0x25
call fcn.10001040
mov esi, dword [ebp - 0x4a4]
test esi, esi
je 0x1003d210
mov edx, dword [esi]
jmp 0x1003d212
xor edx, edx
mov ecx, dword [ebp - 0x49c]
push edx
push ecx
mov eax, dword [ecx]
call dword [eax + 0x18]
mov ecx, dword [ebx + 0x2c]
mov eax, SysReAllocString
sub eax, ecx
mov dword [ebp - 0x4a0], ecx
cmp eax, 7
jb 0x1003dcf9
cmp dword [ebx + 0x30], 8
lea eax, [ebx + 0x1c]
lea edx, [ecx + 7]
mov dword [ebp - 0x458], 0
cmovae eax, dword [ebx + 0x1c]
lea ecx, [ebp - 0x458]
mov dword [ebp - 0x490], eax
mov eax, 7
mov dword [ebp - 0x448], 0
mov dword [ebp - 0x444], 0
mov dword [ebp - 0x498], edx
mov dword [ebp - 0x494], ecx
cmp edx, eax
jbe 0x1003d333
mov eax, edx
or eax, 7
cmp eax, 0x7ffffffe
jbe 0x1003d2a6
mov dword [ebp - 0x49c], SysReAllocStringLen
mov ecx, 0xfffffffe
jmp 0x1003d2cf
mov ecx, 0xa
cmp eax, ecx
cmovb eax, ecx
mov dword [ebp - 0x49c], eax
lea ecx, [eax + 1]
cmp ecx, 0x7fffffff
ja 0x1003dcfe
add ecx, ecx
cmp ecx, 0x1000
jb 0x1003d302
lea eax, [ecx + 0x23]
cmp eax, ecx
jbe 0x1003dcfe
push eax
call fcn.10002353
add esp, 4
test eax, eax
je 0x1003dd3a
mov edx, dword [ebp - 0x498]
lea ecx, [eax + 0x23]
and ecx, 0xffffffe0
mov dword [ecx - 4], eax
mov eax, dword [ebp - 0x49c]
jmp 0x1003d327
test ecx, ecx
je 0x1003d325
push ecx
call fcn.10002353
mov edx, dword [ebp - 0x498]
mov ecx, eax
mov dword [ebp - 0x494], eax
add esp, 4
mov eax, dword [ebp - 0x49c]
jmp 0x1003d32d
xor ecx, ecx
mov dword [ebp - 0x494], ecx
mov dword [ebp - 0x458], ecx
mov dword [ebp - 0x444], eax
mov eax, dword [ebp - 0x4a0]
add eax, eax
mov dword [ebp - 0x448], edx
push eax
push dword [ebp - 0x490]
push ecx
call fcn.10004ee0
mov ecx, dword [ebp - 0x494]
add esp, 0xc
mov edx, dword [ebp - 0x4a0]
movq xmm0, qword [str..config]
movq qword [ecx + edx*2], xmm0
mov eax, dword [0x10045ef4]
mov dword [ecx + edx*2 + 8], eax
mov ax, word [0x10045ef8]
mov word [ecx + edx*2 + 0xc], ax
xor eax, eax
mov word [ecx + edx*2 + 0xe], ax
mov byte [ebp - 4], 0x26
lea ecx, [ebp - 0x458]
cmp dword [ebp - 0x444], 8
cmovae ecx, dword [ebp - 0x458]
call fcn.1003ebe0
test al, al
je 0x1003d3f7
cmp dword [ebp - 0x444], 8
lea eax, [ebp - 0x458]
lea ecx, [ebp - 0x490]
cmovae eax, dword [ebp - 0x458]
push eax
call fcn.10001bc0
mov byte [ebp - 4], 0x27
mov ecx, dword [eax]
test ecx, ecx
je 0x1003d3da
mov ecx, dword [ecx]
jmp 0x1003d3dc
xor ecx, ecx
mov eax, dword [edi]
push ecx
push edi
call dword [eax + 0x28]
lea ecx, [ebp - 0x490]
mov byte [ebp - 4], 0x26
call fcn.10001b60
jmp 0x1003d5d3
push str.CONFIG
push str.__MAIN__
push dword [0x1007b030]
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov dword [ebp - 0x490], eax
test eax, eax
je 0x1003d5d3
push eax
push dword [0x1007b030]
call dword [sym.imp.KERNEL32.dll_LoadResource]
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
push dword [ebp - 0x490]
mov dword [ebp - 0x4b4], eax
push dword [0x1007b030]
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov dword [ebp - 0x490], eax
xor eax, eax
mov dword [ebp - 0x440], 0
mov dword [ebp - 0x430], 0
mov dword [ebp - 0x42c], 7
mov word [ebp - 0x440], ax
lea eax, [ebp - 0x428]
mov byte [ebp - 4], 0x28
push eax
push 0x100
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
jne 0x1003d4a9
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x1003d537
movzx eax, ax
or eax, 0x80070000
jmp 0x1003d535
cmp eax, 0x100
ja 0x1003d58f
lea eax, [ebp - 0x220]
push eax
push 0
push 0x100460d4
lea eax, [ebp - 0x428]
push eax
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
test eax, eax
je 0x1003d48e
xor eax, eax
push eax
push 0x2100
push 2
push eax
push eax
mov word [ebp - 0x1a], ax
lea eax, [ebp - 0x220]
push 0x40000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x498], eax
cmp eax, 0xffffffff
je 0x1003d48e
push 0
lea ecx, [ebp - 0x49c]
push ecx
push dword [ebp - 0x490]
push dword [ebp - 0x4b4]
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x1003d530
push dword [ebp - 0x498]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
jne 0x1003d53b
call fcn.1003edd0
test eax, eax
js 0x1003d58f
jmp 0x1003d54d
lea eax, [ebp - 0x220]
push eax
lea ecx, [ebp - 0x440]
call fcn.100012b0
cmp dword [ebp - 0x42c], 8
lea eax, [ebp - 0x440]
lea ecx, [ebp - 0x490]
cmovae eax, dword [ebp - 0x440]
push eax
call fcn.10001bc0
mov byte [ebp - 4], 0x29
mov ecx, dword [eax]
test ecx, ecx
je 0x1003d57b
mov ecx, dword [ecx]
jmp 0x1003d57d
xor ecx, ecx
mov eax, dword [edi]
push ecx
push edi
call dword [eax + 0x28]
lea ecx, [ebp - 0x490]
call fcn.10001b60
mov byte [ebp - 4], 0x26
mov edx, dword [ebp - 0x42c]
cmp edx, 8
jb 0x1003d5d3
mov ecx, dword [ebp - 0x440]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x1003d5c9
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003dd03
push edx
push ecx
call fcn.10002383
add esp, 8
mov eax, dword [ebx + 8]
mov dword [ebp - 0x4c4], 0
test eax, eax
je 0x1003dd2a
test esi, esi
je 0x1003d5f0
mov edx, dword [esi]
jmp 0x1003d5f2
xor edx, edx
mov ecx, dword [eax]
lea esi, [ebp - 0x4c4]
push esi
push 0
push dword [ebp - 0x4b8]
push edx
push eax
call dword [ecx + 0x44]
test eax, eax
js 0x1003da84
mov ecx, dword [ebp - 0x4c4]
test ecx, ecx
je 0x1003da84
lea edx, [ebp - 0x498]
mov byte [ebp - 4], 0x2d
mov eax, dword [ecx]
push edx
push 0x100462b8
push ecx
mov dword [ebp - 0x498], 0
call dword [eax]
xor esi, esi
test eax, eax
cmovns esi, dword [ebp - 0x498]
mov byte [ebp - 4], 0x26
jns 0x1003d659
cmp eax, 0x80004002
jne 0x1003dd08
mov eax, dword [ebp - 0x4a8]
mov byte [ebp - 4], 0x32
mov ecx, dword [eax]
cmp ecx, esi
je 0x1003d677
mov dword [eax], esi
xor esi, esi
test ecx, ecx
je 0x1003d677
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov byte [ebp - 4], 0x33
test esi, esi
je 0x1003d685
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov esi, dword [ebp - 0x4bc]
mov edx, esi
mov ecx, dword [ebp - 0x4a8]
push 0
mov byte [ebp - 4], 0x26
call fcn.1003cbd0
add esp, 4
test eax, eax
js 0x1003da97
cmp byte [ebp - 0x4aa], 0
je 0x1003da4e
mov dword [ebp - 0x4b0], 0
mov byte [ebp - 4], 0x37
mov esi, dword [esi]
test esi, esi
je 0x1003dd2a
push str.ExcelDna.ManagedHost.AppDomainHelper
lea ecx, [ebp - 0x4b4]
call fcn.10001bc0
mov dword [ebp - 0x490], eax
mov byte [ebp - 4], 0x39
mov ecx, dword [ebp - 0x4b0]
test ecx, ecx
je 0x1003d6fe
mov edx, dword [ecx]
push ecx
call dword [edx + 8]
mov eax, dword [ebp - 0x490]
mov byte [ebp - 4], 0x38
mov dword [ebp - 0x4b0], 0
mov eax, dword [eax]
test eax, eax
je 0x1003d716
mov ecx, dword [eax]
jmp 0x1003d718
xor ecx, ecx
mov eax, dword [esi]
lea edx, [ebp - 0x4b0]
push edx
push ecx
push esi
call dword [eax + 0x44]
lea ecx, [ebp - 0x4b4]
mov byte [ebp - 4], 0x37
mov esi, eax
call fcn.10001b60
test esi, esi
js 0x1003da5b
cmp dword [ebp - 0x4b0], 0
je 0x1003da5b
mov esi, dword [sym.imp.OLEAUT32.dll_VariantClear]
lea eax, [ebp - 0x4d8]
push eax
call esi
lea eax, [ebp - 0x480]
push eax
call esi
mov byte [ebp - 4], 0x3f
movups xmm0, xmmword [ebp - 0x480]
mov esi, dword [ebp - 0x4b0]
movups xmmword [ebp - 0x438], xmm0
test esi, esi
je 0x1003dd2a
push 0x10045f6c
lea ecx, [ebp - 0x490]
call fcn.10001ac0
mov byte [ebp - 4], 0x40
mov eax, dword [eax]
test eax, eax
je 0x1003d7a2
mov edx, dword [eax]
jmp 0x1003d7a4
xor edx, edx
movups xmm0, xmmword [ebp - 0x438]
mov ecx, dword [esi]
lea eax, [ebp - 0x4d8]
push eax
push 0
sub esp, 0x10
mov eax, esp
push 0
push 0x118
push edx
push esi
movups xmmword [eax], xmm0
call dword [ecx + 0xe4]
lea ecx, [ebp - 0x490]
mov byte [ebp - 4], 0x3f
mov esi, eax
call fcn.10001b60
test esi, esi
jns 0x1003d7fa
mov edx, 0x8a
push esi
push 0x76
lea ecx, [edx - 8]
call fcn.1003c080
add esp, 8
jmp 0x1003d9fa
push dword [ebp - 0x4d0]
lea ecx, [ebp - 0x490]
call fcn.10001790
lea eax, [ebp - 0x490]
mov byte [ebp - 4], 0x45
push eax
lea ecx, [ebp - 0x49c]
call fcn.10001840
push dword [ebp - 0x4a8]
lea ecx, [ebp - 0x498]
mov byte [ebp - 4], 0x46
call fcn.10001840
mov byte [ebp - 4], 0x48
mov eax, dword [ebp - 0x498]
mov ecx, dword [ebp - 0x49c]
cmp eax, ecx
jne 0x1003d856
mov byte [ebp - 0x489], 1
jmp 0x1003d910
xor edx, edx
mov dword [ebp - 0x4b4], ecx
xor esi, esi
mov dword [ebp - 0x4a0], edx
mov dword [ebp - 0x494], esi
test eax, eax
je 0x1003d8ad
mov ecx, dword [eax]
lea edx, [ebp - 0x4a0]
push edx
push 0x1004635c
push eax
call dword [ecx]
test eax, eax
js 0x1003dd0e
mov eax, dword [ebp - 0x4a0]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [ebp - 0x498]
mov ecx, dword [ebp - 0x49c]
mov edx, dword [ebp - 0x4a0]
mov esi, dword [ebp - 0x494]
cmp dword [ebp - 0x4b4], 0
je 0x1003d8f9
mov ecx, dword [ebp - 0x4b4]
lea edx, [ebp - 0x494]
push edx
push 0x1004635c
push ecx
mov eax, dword [ecx]
call dword [eax]
test eax, eax
js 0x1003dd1a
mov eax, dword [ebp - 0x494]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [ebp - 0x498]
mov ecx, dword [ebp - 0x49c]
mov edx, dword [ebp - 0x4a0]
mov esi, dword [ebp - 0x494]
cmp esi, edx
jne 0x1003d901
xor edx, edx
jmp 0x1003d907
sbb edx, edx
and edx, 2
dec edx
test edx, edx
sete byte [ebp - 0x489]
mov byte [ebp - 4], 0x49
test eax, eax
je 0x1003d924
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, dword [ebp - 0x49c]
mov byte [ebp - 4], 0x4a
test ecx, ecx
je 0x1003d932
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
cmp byte [ebp - 0x489], 0
mov byte [ebp - 4], 0x45
mov esi, dword [ebp - 0x490]
jne 0x1003da14
mov edx, dword [ebp - 0x4bc]
mov ecx, dword [edx]
test ecx, ecx
je 0x1003dd2a
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov eax, dword [ebp - 0x4bc]
mov dword [eax], 0
mov eax, dword [ebx + 8]
test eax, eax
je 0x1003dd2a
mov edx, dword [ebp - 0x4a8]
mov ecx, dword [eax]
push dword [edx]
push eax
call dword [ecx + 0x50]
mov eax, dword [ebp - 0x4a8]
mov ecx, dword [eax]
test ecx, ecx
je 0x1003dd2a
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov eax, dword [ebp - 0x4a8]
mov dword [eax], 0
test esi, esi
je 0x1003d9d6
mov byte [ebp - 4], 0x4b
mov eax, dword [esi]
push esi
call dword [eax + 4]
mov eax, dword [ebp - 0x4a8]
mov ecx, dword [eax]
mov dword [eax], esi
mov byte [ebp - 4], 0x4c
test ecx, ecx
je 0x1003d9d2
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov eax, dword [ebp - 0x4a8]
mov byte [ebp - 4], 0x45
mov edx, dword [ebp - 0x4bc]
mov ecx, eax
push 0
call fcn.1003cbd0
add esp, 4
test eax, eax
jns 0x1003da14
mov byte [ebp - 4], 0x4d
test esi, esi
je 0x1003d9fa
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov esi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
lea eax, [ebp - 0x480]
push eax
call esi
lea eax, [ebp - 0x4d8]
push eax
call esi
jmp 0x1003da6e
mov byte [ebp - 4], 0x52
test esi, esi
je 0x1003da22
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov esi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
lea eax, [ebp - 0x480]
push eax
call esi
lea eax, [ebp - 0x4d8]
push eax
call esi
mov byte [ebp - 4], 0x53
mov eax, dword [ebp - 0x4b0]
test eax, eax
je 0x1003da4e
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x4c0]
xor esi, esi
mov byte [eax], 1
jmp 0x1003da9c
mov edx, 0x89
push esi
push 0x76
lea ecx, [edx - 7]
call fcn.1003c080
add esp, 8
mov byte [ebp - 4], 0x4e
mov eax, dword [ebp - 0x4b0]
test eax, eax
je 0x1003da97
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x1003da97
mov edx, 0x85
push eax
push 0x76
lea ecx, [edx - 3]
call fcn.1003c080
add esp, 8
mov esi, 0x80004005
mov byte [ebp - 4], 0x25
mov edx, dword [ebp - 0x444]
cmp edx, 8
jb 0x1003dae0
mov ecx, dword [ebp - 0x458]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x1003dad6
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003dd3a
push edx
push ecx
call fcn.10002383
add esp, 8
xor eax, eax
mov dword [ebp - 0x448], 0
lea ecx, [ebp - 0x4a4]
mov dword [ebp - 0x444], 7
mov word [ebp - 0x458], ax
call fcn.10001b60
mov byte [ebp - 4], 0x54
mov eax, dword [edi]
push edi
call dword [eax + 8]
jmp 0x1003db2c
mov edx, 0x83
push eax
push 0x76
lea ecx, [edx - 1]
call fcn.1003c080
add esp, 8
mov esi, 0x80004005
mov byte [ebp - 4], 0x55
mov eax, dword [ebp - 0x4b8]
test eax, eax
je 0x1003dc21
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x1003dc21
mov eax, dword [ebx + 8]
mov dword [ebp - 0x4a4], 0
test eax, eax
je 0x1003dd2a
mov ecx, dword [eax]
lea edx, [ebp - 0x4a4]
push edx
push eax
call dword [ecx + 0x54]
test eax, eax
js 0x1003dc09
mov ecx, dword [ebp - 0x4a4]
test ecx, ecx
je 0x1003dc09
lea edx, [ebp - 0x490]
mov byte [ebp - 4], 4
mov eax, dword [ecx]
push edx
push 0x100462b8
push ecx
mov dword [ebp - 0x490], 0
call dword [eax]
xor esi, esi
test eax, eax
cmovns esi, dword [ebp - 0x490]
mov byte [ebp - 4], 2
jns 0x1003dbbc
cmp eax, 0x80004002
jne 0x1003dd34
mov byte [ebp - 4], 9
mov ecx, dword [edi]
cmp ecx, esi
je 0x1003dbd4
mov dword [edi], esi
xor esi, esi
test ecx, ecx
je 0x1003dbd4
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov byte [ebp - 4], 0xa
test esi, esi
je 0x1003dbe2
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov edx, dword [ebp - 0x4bc]
mov ecx, edi
push 1
mov byte [ebp - 4], 2
call fcn.1003cbd0
add esp, 4
test eax, eax
js 0x1003dc1c
mov eax, dword [ebp - 0x4c0]
xor esi, esi
mov byte [eax], 0
jmp 0x1003dc21
mov edx, 0x85
push eax
push 0x76
lea ecx, [edx - 3]
call fcn.1003c080
add esp, 8
mov esi, 0x80004005
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x45c]
cmp edx, 8
jb 0x1003dc65
mov ecx, dword [ebp - 0x470]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x1003dc5b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003dd3a
push edx
push ecx
call fcn.10002383
add esp, 8
xor eax, eax
mov dword [ebp - 0x460], 0
mov dword [ebp - 0x45c], 7
mov word [ebp - 0x470], ax
mov byte [ebp - 4], 0x56
mov eax, dword [ebx + 8]
test eax, eax
je 0x1003dc93
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov edx, dword [ebx + 0x30]
cmp edx, 8
jb 0x1003dcc9
mov ecx, dword [ebx + 0x1c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x1003dcbf
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003dd3a
push edx
push ecx
call fcn.10002383
add esp, 8
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.10002345
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
call fcn.10001780
push eax
call fcn.10002130
call fcn.10005d83
call fcn.100011f0
call fcn.10001150
call fcn.10005d83
push eax
call fcn.10002130
push eax
mov dword [ebp - 0x4a0], esi
call fcn.10002130
push eax
mov dword [ebp - 0x494], 0
call fcn.10002130
push 0x80004003
call fcn.10002130
push eax
call fcn.10002130
call fcn.10005d83
int3