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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100372d0
mov eax, dword fs:[0]
push eax
sub esp, 0x10
push ebx
push esi
push edi
mov eax, dword [0x10040040]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [0x10040678]
mov ebx, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov dword [ebp - 0x10], 6
mov eax, dword [esi + 0x2c]
test eax, eax
je 0x100066bf
cmp byte [esi + 1], 0
je 0x100066bf
mov byte [eax + 0x10], 0
mov edi, dword [esi + 0x2c]
mov dword [ebp - 0x1c], edi
test edi, edi
je 0x100066bf
mov ecx, edi
mov dword [ebp - 4], 0
call fcn.100280d0
mov ecx, edi
call fcn.100282e0
lea ecx, [edi + 0x3c]
xor edi, edi
mov dword [ebp - 0x14], ecx
cmp dword [ecx], edi
jle 0x10006633
mov eax, dword [ecx + 8]
mov ebx, dword [eax + edi*4]
test ebx, ebx
je 0x10006624
mov ecx, ebx
call fcn.1002ab80
mov ecx, dword [0x10040678]
test ecx, ecx
je 0x10006613
movsx eax, word [ecx + 0x6008]
mov edx, dword [ecx + 0x3f58]
mov dword [ebp - 0x18], edx
lea eax, [eax*8 + 0x600c]
add eax, ecx
cmp dword [eax], edx
je 0x10006609
movsx eax, word [ecx + 0x6008]
inc eax
cdq
idiv dword [ebp - 0x10]
movzx eax, dx
mov edx, dword [ebp - 0x18]
mov word [ecx + 0x6008], ax
cwde
lea eax, [eax*8 + 0x600c]
add eax, ecx
mov dword [eax], edx
xor edx, edx
mov dword [eax + 4], edx
inc word [eax + 6]
inc dword [ecx + 0x6004]
push ebx
mov ebx, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
call ebx
mov ecx, dword [ebp - 0x14]
add esp, 4
jmp 0x1000662a
mov ebx, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
inc edi
cmp edi, dword [ecx]
jl 0x100065a7
call fcn.10001010
mov edi, dword [ebp - 0x1c]
lea ecx, [edi + 0x54]
mov byte [edi + 0x18], 0
call fcn.1001b410
lea ecx, [edi + 0x48]
call fcn.1001b410
mov ecx, dword [ebp - 0x14]
call fcn.1001b410
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [0x10040678]
test ecx, ecx
je 0x100066b9
movsx eax, word [ecx + 0x6008]
mov edx, dword [ecx + 0x3f58]
mov dword [ebp - 0x1c], edx
lea eax, [eax*8 + 0x600c]
add eax, ecx
cmp dword [eax], edx
je 0x100066af
movsx eax, word [ecx + 0x6008]
inc eax
cdq
idiv dword [ebp - 0x10]
movzx eax, dx
mov edx, dword [ebp - 0x1c]
mov word [ecx + 0x6008], ax
cwde
lea eax, [eax*8 + 0x600c]
add eax, ecx
mov dword [eax], edx
xor edx, edx
mov dword [eax + 4], edx
inc word [eax + 6]
inc dword [ecx + 0x6004]
push edi
call ebx
add esp, 4
lea ecx, [esi + 0x3d78]
mov dword [esi + 0x2c], 0
call fcn.10001010
cmp byte [esi], 0
je 0x10006ea4
cmp byte [esi + 0x5edc], 0
je 0x100066ef
mov ecx, dword [esi + 0x20]
test ecx, ecx
je 0x100066ef
call fcn.1001a270
mov eax, dword [esi + 0x5f14]
mov edi, dword [esi + 0x5f1c]
lea eax, [eax + eax*4]
lea eax, [edi + eax*4]
mov dword [ebp - 0x1c], eax
cmp edi, eax
je 0x10006722
cmp dword [edi + 4], 6
jne 0x1000671b
mov eax, dword [edi + 0xc]
push edi
push esi
call eax
mov eax, dword [ebp - 0x1c]
add esp, 8
add edi, 0x14
cmp edi, eax
jne 0x10006708
lea ecx, [esi + 0x3fa0]
xor edi, edi
cmp dword [ecx], edi
jle 0x100067c1
mov eax, dword [ecx + 8]
mov ebx, dword [eax + edi*4]
test ebx, ebx
je 0x100067b2
mov ecx, ebx
call fcn.100076c0
mov ecx, dword [0x10040678]
test ecx, ecx
je 0x1000679e
movsx eax, word [ecx + 0x6008]
mov edx, dword [ecx + 0x3f58]
mov dword [ebp - 0x1c], edx
lea eax, [eax*8 + 0x600c]
add eax, ecx
cmp dword [eax], edx
je 0x10006794
movsx eax, word [ecx + 0x6008]
inc eax
cdq
idiv dword [ebp - 0x10]
movzx eax, dx
mov edx, dword [ebp - 0x1c]
mov word [ecx + 0x6008], ax
cwde
lea eax, [eax*8 + 0x600c]
add eax, ecx
mov dword [eax], edx
xor edx, edx
mov dword [eax + 4], edx
inc word [eax + 6]
inc dword [ecx + 0x6004]
push ebx
mov ebx, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
call ebx
add esp, 4
lea ecx, [esi + 0x3fa0]
jmp 0x100067b8
mov ebx, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
inc edi
cmp edi, dword [ecx]
jl 0x10006732
call fcn.10001010
lea ecx, [esi + 0x3fac]
call fcn.10001010
lea ecx, [esi + 0x3fb8]
call fcn.10001010
mov dword [esi + 0x3fec], 0
mov edi, dword [esi + 0x3fcc]
test edi, edi
je 0x1000686f
mov ecx, dword [0x10040678]
mov dword [esi + 0x3fc8], 0
mov dword [esi + 0x3fc4], 0
test ecx, ecx
je 0x1000685f
movsx eax, word [ecx + 0x6008]
mov edx, dword [ecx + 0x3f58]
mov dword [ebp - 0x1c], edx
lea eax, [eax*8 + 0x600c]
add eax, ecx
cmp dword [eax], edx
je 0x10006855
movsx eax, word [ecx + 0x6008]
inc eax
cdq
idiv dword [ebp - 0x10]
movzx eax, dx
mov edx, dword [ebp - 0x1c]
mov word [ecx + 0x6008], ax
cwde
lea eax, [eax*8 + 0x600c]
add eax, ecx
mov dword [eax], edx
xor edx, edx
mov dword [eax + 4], edx
inc word [eax + 6]
inc dword [ecx + 0x6004]
push edi
call ebx
add esp, 4
mov dword [esi + 0x3fcc], 0
lea ecx, [esi + 0x3fd0]
call fcn.10001010
or eax, 0xffffffff
mov dword [esi + 0x4ab8], 0
mov dword [esi + 0x3ff4], 0
lea edi, [esi + 0x47e4]
mov dword [esi + 0x3ff0], 0
mov ecx, 0x4d
mov dword [esi + 0x4070], 0
mov dword [esi + 0x4060], 0
mov dword [esi + 0x3ffc], 0
rep stosd dword es:[edi], eax
lea ecx, [esi + 0x4918]
call fcn.10001010
lea ecx, [esi + 0x4924]
call fcn.10001010
mov edi, dword [esi + 0x4a48]
test edi, edi
je 0x10006965
mov ecx, dword [0x10040678]
mov dword [esi + 0x4a44], 0
mov dword [esi + 0x4a40], 0
test ecx, ecx
je 0x10006955
movsx eax, word [ecx + 0x6008]
mov edx, dword [ecx + 0x3f58]
mov dword [ebp - 0x1c], edx
lea eax, [eax*8 + 0x600c]
add eax, ecx
cmp dword [eax], edx
je 0x1000694b
movsx eax, word [ecx + 0x6008]
inc eax
cdq
idiv dword [ebp - 0x10]
movzx eax, dx
mov edx, dword [ebp - 0x1c]
mov word [ecx + 0x6008], ax
cwde
lea eax, [eax*8 + 0x600c]
add eax, ecx
mov dword [eax], edx
xor edx, edx
mov dword [eax + 4], edx
inc word [eax + 6]
inc dword [ecx + 0x6004]
push edi
call ebx
add esp, 4
mov dword [esi + 0x4a48], 0
mov edi, dword [esi + 0x4a54]
test edi, edi
je 0x100069ee
mov ecx, dword [0x10040678]
mov dword [esi + 0x4a50], 0
mov dword [esi + 0x4a4c], 0
test ecx, ecx
je 0x100069de
movsx eax, word [ecx + 0x6008]
mov edx, dword [ecx + 0x3f58]
mov dword [ebp - 0x1c], edx
lea eax, [eax*8 + 0x600c]
add eax, ecx
cmp dword [eax], edx
je 0x100069d4
movsx eax, word [ecx + 0x6008]
inc eax
cdq
idiv dword [ebp - 0x10]
movzx eax, dx
mov edx, dword [ebp - 0x1c]
mov word [ecx + 0x6008], ax
cwde
lea eax, [eax*8 + 0x600c]
add eax, ecx
mov dword [eax], edx
xor edx, edx
mov dword [eax + 4], edx
inc word [eax + 6]
inc dword [ecx + 0x6004]
push edi
call ebx
add esp, 4
mov dword [esi + 0x4a54], 0
lea ecx, [esi + 0x4a58]
call fcn.10001010
lea ecx, [esi + 0x4a88]
call fcn.10001010
lea ecx, [esi + 0x4a94]
call fcn.10001010
mov edi, dword [esi + 0x4aa8]
test edi, edi
je 0x10006a98
mov ecx, dword [0x10040678]
mov dword [esi + 0x4aa4], 0
mov dword [esi + 0x4aa0], 0
test ecx, ecx
je 0x10006a88
movsx eax, word [ecx + 0x6008]
mov edx, dword [ecx + 0x3f58]
mov dword [ebp - 0x1c], edx
lea eax, [eax*8 + 0x600c]
add eax, ecx
cmp dword [eax], edx
je 0x10006a7e
movsx eax, word [ecx + 0x6008]
inc eax
cdq
idiv dword [ebp - 0x10]
movzx eax, dx
mov edx, dword [ebp - 0x1c]
mov word [ecx + 0x6008], ax
cwde
lea eax, [eax*8 + 0x600c]
add eax, ecx
mov dword [eax], edx
xor edx, edx
mov dword [eax + 4], edx
inc word [eax + 6]
inc dword [ecx + 0x6004]
push edi
call ebx
add esp, 4
mov dword [esi + 0x4aa8], 0
lea ecx, [esi + 0x4aac]
call fcn.1001b8c0
lea ecx, [esi + 0x4db8]
call fcn.1001b670
mov edi, dword [esi + 0x4de0]
test edi, edi
je 0x10006b37
mov ecx, dword [0x10040678]
mov dword [esi + 0x4ddc], 0
mov dword [esi + 0x4dd8], 0
test ecx, ecx
je 0x10006b27
movsx eax, word [ecx + 0x6008]
mov edx, dword [ecx + 0x3f58]
mov dword [ebp - 0x1c], edx
lea eax, [eax*8 + 0x600c]
add eax, ecx
cmp dword [eax], edx
je 0x10006b1d
movsx eax, word [ecx + 0x6008]
inc eax
cdq
idiv dword [ebp - 0x10]
movzx eax, dx
mov edx, dword [ebp - 0x1c]
mov word [ecx + 0x6008], ax
cwde
lea eax, [eax*8 + 0x600c]
add eax, ecx
mov dword [eax], edx
xor edx, edx
mov dword [eax + 4], edx
inc word [eax + 6]
inc dword [ecx + 0x6004]
push edi
call ebx
add esp, 4
mov dword [esi + 0x4de0], 0
mov edi, dword [esi + 0x4dec]
test edi, edi
je 0x10006bc0
mov ecx, dword [0x10040678]
mov dword [esi + 0x4de8], 0
mov dword [esi + 0x4de4], 0
test ecx, ecx
je 0x10006bb0
movsx eax, word [ecx + 0x6008]
mov edx, dword [ecx + 0x3f58]
mov dword [ebp - 0x1c], edx
lea eax, [eax*8 + 0x600c]
add eax, ecx
cmp dword [eax], edx
je 0x10006ba6
movsx eax, word [ecx + 0x6008]
inc eax
cdq
idiv dword [ebp - 0x10]
movzx eax, dx
mov edx, dword [ebp - 0x1c]
mov word [ecx + 0x6008], ax
cwde
lea eax, [eax*8 + 0x600c]
add eax, ecx
mov dword [eax], edx
xor edx, edx
mov dword [eax + 4], edx
inc word [eax + 6]
inc dword [ecx + 0x6004]
push edi
call ebx
add esp, 4
mov dword [esi + 0x4dec], 0
cmp dword [esi + 0x4d58], 0
lea eax, [esi + 0x4d60]
mov dword [ebp - 0x14], eax
jle 0x10006bff
xor edi, edi
xor ebx, ebx
mov ecx, dword [eax]
add ecx, edi
call fcn.10001610
inc ebx
lea eax, [esi + 0x4d60]
add edi, 0x1c
cmp ebx, dword [esi + 0x4d58]
jl 0x10006bd6
mov ebx, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
lea eax, [esi + 0x4d60]
jmp 0x10006c02
mov dword [ebp - 0x14], eax
mov edi, dword [eax]
test edi, edi
je 0x10006c86
mov ecx, dword [0x10040678]
mov dword [esi + 0x4d5c], 0
mov dword [esi + 0x4d58], 0
test ecx, ecx
je 0x10006c77
movsx eax, word [ecx + 0x6008]
mov edx, dword [ecx + 0x3f58]
mov dword [ebp - 0x1c], edx
lea eax, [eax*8 + 0x600c]
add eax, ecx
cmp dword [eax], edx
je 0x10006c6d
movsx eax, word [ecx + 0x6008]
inc eax
cdq
idiv dword [ebp - 0x10]
movzx eax, dx
mov edx, dword [ebp - 0x1c]
mov word [ecx + 0x6008], ax
cwde
lea eax, [eax*8 + 0x600c]
add eax, ecx
mov dword [eax], edx
xor edx, edx
mov dword [eax + 4], edx
inc word [eax + 6]
inc dword [ecx + 0x6004]
push edi
call ebx
mov eax, dword [ebp - 0x14]
add esp, 4
mov dword [eax], 0
lea ecx, [esi + 0x4d7c]
call fcn.1001b7a0
cmp dword [esi + 0x4d70], 0
jle 0x10006cbf
xor edi, edi
xor ebx, ebx
nop
mov ecx, dword [esi + 0x4d78]
add ecx, edi
call fcn.1001c310
inc ebx
add edi, 0x78
cmp ebx, dword [esi + 0x4d70]
jl 0x10006ca0
mov ebx, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov edi, dword [esi + 0x4d78]
test edi, edi
je 0x10006d48
mov ecx, dword [0x10040678]
mov dword [esi + 0x4d74], 0
mov dword [esi + 0x4d70], 0
test ecx, ecx
je 0x10006d38
movsx eax, word [ecx + 0x6008]
mov edx, dword [ecx + 0x3f58]
mov dword [ebp - 0x1c], edx
lea eax, [eax*8 + 0x600c]
add eax, ecx
cmp dword [eax], edx
je 0x10006d2e
movsx eax, word [ecx + 0x6008]
inc eax
cdq
idiv dword [ebp - 0x10]
movzx eax, dx
mov edx, dword [ebp - 0x1c]
mov word [ecx + 0x6008], ax
cwde
lea eax, [eax*8 + 0x600c]
add eax, ecx
mov dword [eax], edx
xor edx, edx
mov dword [eax + 4], edx
inc word [eax + 6]
inc dword [ecx + 0x6004]
push edi
call ebx
add esp, 4
mov dword [esi + 0x4d78], 0
lea ecx, [esi + 0x4da8]
call fcn.10001010
lea ecx, [esi + 0x4e64]
call fcn.1001b4c0
lea ecx, [esi + 0x4e58]
call fcn.1001b5c0
lea ecx, [esi + 0x5e44]
call fcn.10001010
lea ecx, [esi + 0x5e50]
call fcn.10001010
lea ecx, [esi + 0x4ebc]
call fcn.10001010
lea ecx, [esi + 0x4ec8]
call fcn.10001010
lea ecx, [esi + 0x4ed4]
call fcn.10001010
lea ecx, [esi + 0x5d34]
mov dword [esi + 0x5d30], 0
call fcn.10001010
lea ecx, [esi + 0x5efc]
call fcn.10001010
mov eax, dword [esi + 0x5ef8]
mov dword [ebp - 0x1c], eax
test eax, eax
je 0x10006e44
mov ecx, dword [0x10040678]
mov dword [esi + 0x5ef4], 0
mov dword [esi + 0x5ef0], 0
test ecx, ecx
je 0x10006e34
movsx edx, word [ecx + 0x6008]
lea eax, [ecx + 0x600c]
mov edi, dword [ecx + 0x3f58]
lea eax, [eax + edx*8]
cmp dword [eax], edi
je 0x10006e27
lea eax, [edx + 1]
cdq
idiv dword [ebp - 0x10]
movzx eax, dx
mov word [ecx + 0x6008], ax
cwde
lea eax, [eax*8 + 0x600c]
add eax, ecx
xor edx, edx
mov dword [eax], edi
mov dword [eax + 4], edx
inc word [eax + 6]
inc dword [ecx + 0x6004]
mov eax, dword [ebp - 0x1c]
push eax
call ebx
add esp, 4
mov dword [esi + 0x5ef8], 0
cmp dword [esi + 0x5f50], 0
je 0x10006e76
mov edi, dword [esi + 0x5f50]
push 1
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
add esp, 4
cmp edi, eax
je 0x10006e6c
push edi
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
add esp, 4
mov dword [esi + 0x5f50], 0
lea ecx, [esi + 0x5f54]
call fcn.10001010
lea ecx, [esi + 0x5f80]
call fcn.10001010
lea ecx, [esi + 0x5f8c]
call fcn.10001010
mov dword [esi + 0x5f98], 0
mov byte [esi], 0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret