Function at 0x10015e80
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 0x1003f710
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 0x10015f53
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 0x10015f4d
nop
cmp ecx, edx
je 0x10015f53
sub ecx, 2
cmp word [ecx], 0x5c
jne 0x10015f40
sub ecx, edx
sar ecx, 1
jmp 0x10015f56
or ecx, 0xffffffff
cmp esi, ecx
jb 0x10016d49
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 0x10016ba9
call fcn.10014d10
test eax, eax
jne 0x10016ba9
mov dword [ebp - 0x4b8], eax
mov byte [ebp - 4], 0xd
mov eax, dword [ebx + 8]
test eax, eax
je 0x10016d8a
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 0x10016b74
mov esi, dword [ebp - 0x4b8]
test esi, esi
je 0x10016b74
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 0x10016039
lea ecx, [ebp - 0x498]
mov dword [ebp - 0x498], edi
mov eax, dword [esi]
push ecx
push 0x10045d6c
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 0x10016051
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 0x1001605f
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov byte [ebp - 4], 0xd
mov eax, dword [ebp - 0x494]
test eax, eax
jns 0x10016078
cmp eax, 0x80004002
jne 0x10016d4e
mov byte [ebp - 4], 0x18
cmp dword [ebp - 0x4a0], 0
je 0x10016d8a
cmp dword [ebp - 0x45c], 8
lea eax, [ebp - 0x470]
lea ecx, [ebp - 0x4a4]
cmovae eax, dword [ebp - 0x470]
push eax
call fcn.10002030
mov byte [ebp - 4], 0x19
mov ecx, dword [eax]
test ecx, ecx
je 0x100160b7
mov ecx, dword [ecx]
jmp 0x100160b9
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.10001fd0
cmp dword [ebp - 0x494], 0
jge 0x100160f1
mov esi, dword [ebp - 0x494]
mov edx, 0x84
jmp 0x10016142
cmp byte [ebp - 0x4a9], 0
mov ecx, 0x10045f34
mov eax, 0x10045f28
cmove eax, ecx
lea ecx, [ebp - 0x4a4]
push eax
call fcn.10002030
mov byte [ebp - 4], 0x1d
mov ecx, dword [eax]
test ecx, ecx
je 0x1001611f
mov ecx, dword [ecx]
jmp 0x10016121
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.10001fd0
test esi, esi
jns 0x1001615c
mov edx, 0x92
push esi
push 0x76
mov ecx, 0x82
call fcn.100150e0
add esp, 8
mov esi, 0x80004005
jmp 0x10016b68
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.100018b0
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.10002030
mov byte [ebp - 4], 0x24
mov edx, dword [ebp - 0x42c]
cmp edx, 8
jb 0x10016236
mov ecx, dword [ebp - 0x440]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x1001622c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10016d54
push edx
push ecx
call fcn.10002353
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.10001280
mov esi, dword [ebp - 0x4a4]
test esi, esi
je 0x10016270
mov edx, dword [esi]
jmp 0x10016272
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 0x10016d59
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 0x10016393
mov eax, edx
or eax, 7
cmp eax, 0x7ffffffe
jbe 0x10016306
mov dword [ebp - 0x49c], SysReAllocStringLen
mov ecx, 0xfffffffe
jmp 0x1001632f
mov ecx, 0xa
cmp eax, ecx
cmovb eax, ecx
mov dword [ebp - 0x49c], eax
lea ecx, [eax + 1]
cmp ecx, 0x7fffffff
ja 0x10016d5e
add ecx, ecx
cmp ecx, 0x1000
jb 0x10016362
lea eax, [ecx + 0x23]
cmp eax, ecx
jbe 0x10016d5e
push eax
call fcn.10002384
add esp, 4
test eax, eax
je 0x10016d9a
mov edx, dword [ebp - 0x498]
lea ecx, [eax + 0x23]
and ecx, 0xffffffe0
mov dword [ecx - 4], eax
mov eax, dword [ebp - 0x49c]
jmp 0x10016387
test ecx, ecx
je 0x10016385
push ecx
call fcn.10002384
mov edx, dword [ebp - 0x498]
mov ecx, eax
mov dword [ebp - 0x494], eax
add esp, 4
mov eax, dword [ebp - 0x49c]
jmp 0x1001638d
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 [0x10045f60]
mov dword [ecx + edx*2 + 8], eax
mov ax, word [0x10045f64]
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.10013640
test al, al
je 0x10016457
cmp dword [ebp - 0x444], 8
lea eax, [ebp - 0x458]
lea ecx, [ebp - 0x490]
cmovae eax, dword [ebp - 0x458]
push eax
call fcn.10002030
mov byte [ebp - 4], 0x27
mov ecx, dword [eax]
test ecx, ecx
je 0x1001643a
mov ecx, dword [ecx]
jmp 0x1001643c
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.10001fd0
jmp 0x10016633
push str.CONFIG
push str.__MAIN__
push dword [0x1007b040]
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov dword [ebp - 0x490], eax
test eax, eax
je 0x10016633
push eax
push dword [0x1007b040]
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 [0x1007b040]
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 0x10016509
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x10016597
movzx eax, ax
or eax, 0x80070000
jmp 0x10016595
cmp eax, 0x100
ja 0x100165ef
lea eax, [ebp - 0x220]
push eax
push 0
push 0x10046140
lea eax, [ebp - 0x428]
push eax
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
test eax, eax
je 0x100164ee
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 0x100164ee
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 0x10016590
push dword [ebp - 0x498]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
jne 0x1001659b
call fcn.10013270
test eax, eax
js 0x100165ef
jmp 0x100165ad
lea eax, [ebp - 0x220]
push eax
lea ecx, [ebp - 0x440]
call fcn.10001250
cmp dword [ebp - 0x42c], 8
lea eax, [ebp - 0x440]
lea ecx, [ebp - 0x490]
cmovae eax, dword [ebp - 0x440]
push eax
call fcn.10002030
mov byte [ebp - 4], 0x29
mov ecx, dword [eax]
test ecx, ecx
je 0x100165db
mov ecx, dword [ecx]
jmp 0x100165dd
xor ecx, ecx
mov eax, dword [edi]
push ecx
push edi
call dword [eax + 0x28]
lea ecx, [ebp - 0x490]
call fcn.10001fd0
mov byte [ebp - 4], 0x26
mov edx, dword [ebp - 0x42c]
cmp edx, 8
jb 0x10016633
mov ecx, dword [ebp - 0x440]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x10016629
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10016d63
push edx
push ecx
call fcn.10002353
add esp, 8
mov eax, dword [ebx + 8]
mov dword [ebp - 0x4c4], 0
test eax, eax
je 0x10016d8a
test esi, esi
je 0x10016650
mov edx, dword [esi]
jmp 0x10016652
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 0x10016ae4
mov ecx, dword [ebp - 0x4c4]
test ecx, ecx
je 0x10016ae4
lea edx, [ebp - 0x498]
mov byte [ebp - 4], 0x2d
mov eax, dword [ecx]
push edx
push 0x10045d8c
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 0x100166b9
cmp eax, 0x80004002
jne 0x10016d68
mov eax, dword [ebp - 0x4a8]
mov byte [ebp - 4], 0x32
mov ecx, dword [eax]
cmp ecx, esi
je 0x100166d7
mov dword [eax], esi
xor esi, esi
test ecx, ecx
je 0x100166d7
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov byte [ebp - 4], 0x33
test esi, esi
je 0x100166e5
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.10015c30
add esp, 4
test eax, eax
js 0x10016af7
cmp byte [ebp - 0x4aa], 0
je 0x10016aae
mov dword [ebp - 0x4b0], 0
mov byte [ebp - 4], 0x37
mov esi, dword [esi]
test esi, esi
je 0x10016d8a
push str.ExcelDna.ManagedHost.AppDomainHelper
lea ecx, [ebp - 0x4b4]
call fcn.10002030
mov dword [ebp - 0x490], eax
mov byte [ebp - 4], 0x39
mov ecx, dword [ebp - 0x4b0]
test ecx, ecx
je 0x1001675e
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 0x10016776
mov ecx, dword [eax]
jmp 0x10016778
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.10001fd0
test esi, esi
js 0x10016abb
cmp dword [ebp - 0x4b0], 0
je 0x10016abb
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 0x10016d8a
push 0x10045f8c
lea ecx, [ebp - 0x490]
call fcn.10001f30
mov byte [ebp - 4], 0x40
mov eax, dword [eax]
test eax, eax
je 0x10016802
mov edx, dword [eax]
jmp 0x10016804
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.10001fd0
test esi, esi
jns 0x1001685a
mov edx, 0x8a
push esi
push 0x76
lea ecx, [edx - 8]
call fcn.100150e0
add esp, 8
jmp 0x10016a5a
push dword [ebp - 0x4d0]
lea ecx, [ebp - 0x490]
call fcn.10001aa0
lea eax, [ebp - 0x490]
mov byte [ebp - 4], 0x45
push eax
lea ecx, [ebp - 0x49c]
call fcn.10001b50
push dword [ebp - 0x4a8]
lea ecx, [ebp - 0x498]
mov byte [ebp - 4], 0x46
call fcn.10001b50
mov byte [ebp - 4], 0x48
mov eax, dword [ebp - 0x498]
mov ecx, dword [ebp - 0x49c]
cmp eax, ecx
jne 0x100168b6
mov byte [ebp - 0x489], 1
jmp 0x10016970
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 0x1001690d
mov ecx, dword [eax]
lea edx, [ebp - 0x4a0]
push edx
push 0x10046358
push eax
call dword [ecx]
test eax, eax
js 0x10016d6e
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 0x10016959
mov ecx, dword [ebp - 0x4b4]
lea edx, [ebp - 0x494]
push edx
push 0x10046358
push ecx
mov eax, dword [ecx]
call dword [eax]
test eax, eax
js 0x10016d7a
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 0x10016961
xor edx, edx
jmp 0x10016967
sbb edx, edx
and edx, 2
dec edx
test edx, edx
sete byte [ebp - 0x489]
mov byte [ebp - 4], 0x49
test eax, eax
je 0x10016984
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, dword [ebp - 0x49c]
mov byte [ebp - 4], 0x4a
test ecx, ecx
je 0x10016992
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 0x10016a74
mov edx, dword [ebp - 0x4bc]
mov ecx, dword [edx]
test ecx, ecx
je 0x10016d8a
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 0x10016d8a
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 0x10016d8a
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov eax, dword [ebp - 0x4a8]
mov dword [eax], 0
test esi, esi
je 0x10016a36
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 0x10016a32
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.10015c30
add esp, 4
test eax, eax
jns 0x10016a74
mov byte [ebp - 4], 0x4d
test esi, esi
je 0x10016a5a
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 0x10016ace
mov byte [ebp - 4], 0x52
test esi, esi
je 0x10016a82
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 0x10016aae
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x4c0]
xor esi, esi
mov byte [eax], 1
jmp 0x10016afc
mov edx, 0x89
push esi
push 0x76
lea ecx, [edx - 7]
call fcn.100150e0
add esp, 8
mov byte [ebp - 4], 0x4e
mov eax, dword [ebp - 0x4b0]
test eax, eax
je 0x10016af7
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x10016af7
mov edx, 0x85
push eax
push 0x76
lea ecx, [edx - 3]
call fcn.100150e0
add esp, 8
mov esi, 0x80004005
mov byte [ebp - 4], 0x25
mov edx, dword [ebp - 0x444]
cmp edx, 8
jb 0x10016b40
mov ecx, dword [ebp - 0x458]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x10016b36
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10016d9a
push edx
push ecx
call fcn.10002353
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.10001fd0
mov byte [ebp - 4], 0x54
mov eax, dword [edi]
push edi
call dword [eax + 8]
jmp 0x10016b8c
mov edx, 0x83
push eax
push 0x76
lea ecx, [edx - 1]
call fcn.100150e0
add esp, 8
mov esi, 0x80004005
mov byte [ebp - 4], 0x55
mov eax, dword [ebp - 0x4b8]
test eax, eax
je 0x10016c81
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x10016c81
mov eax, dword [ebx + 8]
mov dword [ebp - 0x4a4], 0
test eax, eax
je 0x10016d8a
mov ecx, dword [eax]
lea edx, [ebp - 0x4a4]
push edx
push eax
call dword [ecx + 0x54]
test eax, eax
js 0x10016c69
mov ecx, dword [ebp - 0x4a4]
test ecx, ecx
je 0x10016c69
lea edx, [ebp - 0x490]
mov byte [ebp - 4], 4
mov eax, dword [ecx]
push edx
push 0x10045d8c
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 0x10016c1c
cmp eax, 0x80004002
jne 0x10016d94
mov byte [ebp - 4], 9
mov ecx, dword [edi]
cmp ecx, esi
je 0x10016c34
mov dword [edi], esi
xor esi, esi
test ecx, ecx
je 0x10016c34
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov byte [ebp - 4], 0xa
test esi, esi
je 0x10016c42
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.10015c30
add esp, 4
test eax, eax
js 0x10016c7c
mov eax, dword [ebp - 0x4c0]
xor esi, esi
mov byte [eax], 0
jmp 0x10016c81
mov edx, 0x85
push eax
push 0x76
lea ecx, [edx - 3]
call fcn.100150e0
add esp, 8
mov esi, 0x80004005
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x45c]
cmp edx, 8
jb 0x10016cc5
mov ecx, dword [ebp - 0x470]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x10016cbb
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10016d9a
push edx
push ecx
call fcn.10002353
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 0x10016cf3
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov edx, dword [ebx + 0x30]
cmp edx, 8
jb 0x10016d29
mov ecx, dword [ebx + 0x1c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x10016d1f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10016d9a
push edx
push ecx
call fcn.10002353
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.10001a30
push eax
call fcn.10002130
call fcn.10005d83
call fcn.10001190
call fcn.100010f0
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