Function at 0x100216f0
Capabilities:
Read file on windows
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x10e4
call fcn.10030b20
mov eax, dword [ebp + 0x18]
push ebx
mov ebx, dword [ebp + 8]
push esi
lea ecx, [eax + 0x114c]
mov esi, eax
push edi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x68], ecx
cmp eax, ecx
ja 0x100217ce
mov edi, dword [esp + 0x14]
jmp 0x10021730
xor edx, edx
cmp esi, 0x5242
ja 0x10021ae7
je 0x10021a33
cmp esi, 0x440a
ja 0x1002199c
je 0x10021877
cmp esi, 0x4368
ja 0x1002183f
je 0x10021826
mov eax, esi
sub eax, 0x42c6
je 0x10021807
sub eax, 0x36
je 0x100217a8
sub eax, 0x36
jne case.0x10021bfa.24213
cmp edi, 5
jge 0x10021791
mov edi, 5
mov dword [esp + 0x14], edi
mov eax, edi
shl eax, 7
push eax
call fcn.1002802d
add esp, 4
mov dword [esp + 0x2c], eax
jmp case.0x10021bfa.24213
cmp dword [esp + 0x48], edx
jne 0x100217e8
mov ecx, 0x32b2
mov edx, 1
jmp 0x100217c0
mov eax, ecx
sub eax, 0x32b2
je 0x100217d9
sub eax, 0xf
jne 0x100217dd
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x10], edx
add ecx, 0xf
cmp ecx, 0x32c1
jbe 0x100217c0
mov al, byte [ebx + 0x10]
cmp al, 0x7b
je case.0x10021bfa.24213
cmp al, 0x76
je case.0x10021bfa.24213
lea edi, [edi + edi*2]
mov dword [esp + 0x14], edi
jmp case.0x10021bfa.24213
mov edi, dword [ebp + 0xc]
mov edx, dword [edi]
push edx
mov ecx, ebx
call fcn.10023790
mov edi, eax
add esp, 4
mov dword [esp + 0x48], eax
mov dword [esp + 0x14], edi
jmp case.0x10021bfa.24213
lea eax, [edi*8]
push eax
call fcn.1002802d
add esp, 4
mov dword [esp + 0x34], eax
jmp case.0x10021bfa.24213
mov eax, esi
sub eax, 0x439e
je 0x1002185e
sub eax, 0x36
jne case.0x10021bfa.24213
mov dword [esp + 0x50], edx
mov dword [esp + 0x18], edx
jmp case.0x10021bfa.24213
lea ecx, [edi*4]
push ecx
call fcn.1002802d
add esp, 4
mov dword [esp + 0x30], eax
jmp case.0x10021bfa.24213
cmp dword [esp + 0x2c], edx
je 0x10021977
cmp dword [esp + 0x34], 0
je 0x10021977
cmp dword [esp + 0x30], 0
je 0x10021977
mov esi, 0x32fb
lea esp, [esp]
mov eax, esi
sub eax, 0x32fb
je 0x100218b7
sub eax, 0xe
je 0x10021995
jmp 0x10021968
cmp dword [esp + 0x18], 0x3c
jge 0x10021964
inc dword [esp + 0x18]
mov edi, 0x4b29
mov eax, edi
sub eax, 0x4b29
je 0x10021921
sub eax, 0x5a
je 0x1002190b
sub eax, 0x5a
jne 0x1002194a
fld qword [0x10041920]
fcomp qword [esp + 0x80]
fnstsw ax
test ah, 0x41
jne 0x1002194a
mov eax, 0x2c88
cmp eax, eax
je 0x1002198d
add eax, 0x60
cmp eax, 0x2c88
jbe 0x100218f9
jmp 0x1002194a
mov edx, dword [ebp + 0xc]
mov eax, dword [edx]
push eax
mov ecx, ebx
call fcn.10022f90
add esp, 4
test eax, eax
jne 0x10021995
jmp 0x1002194a
mov ecx, dword [esp + 0x48]
mov edx, dword [ebp + 0xc]
mov eax, dword [edx]
mov edx, dword [esp + 0x2c]
push ecx
mov ecx, dword [esp + 0x34]
push eax
push ecx
push edx
mov edx, dword [esp + 0x44]
push ebx
call fcn.100194d0
fstp qword [esp + 0x94]
add esp, 0x14
add edi, 0x5a
cmp edi, 0x4bdd
jbe 0x100218cb
cmp dword [esp + 0x18], 0x3c
jl 0x100218c2
inc dword [esp + 0x18]
add esi, 0xe
cmp esi, 0x3309
jbe 0x100218a0
mov eax, dword [esp + 0x2c]
push eax
call fcn.10027fb3
mov esi, dword [esp + 0x20]
add esp, 4
jmp 0x10021ee9
mov dword [esp + 0x50], 1
mov esi, 0x3309
jmp 0x10021968
cmp esi, 0x44ac
ja 0x100219e8
je 0x100217ce
mov eax, esi
sub eax, 0x4440
je 0x100219c9
sub eax, 0x36
jne case.0x10021bfa.24213
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x10], ecx
jmp case.0x10021bfa.24213
mov edx, dword [esp + 0x34]
push edx
call fcn.10027fb3
mov eax, dword [esp + 0x34]
add esp, 4
push eax
call fcn.10027fb3
add esp, 4
jmp case.0x10021bfa.24213
mov eax, esi
sub eax, 0x51d6
je 0x10021a08
sub eax, 0x36
jne case.0x10021bfa.24213
mov ecx, dword [ebx]
mov edx, dword [ecx + 0x1c]
mov dword [esp + 0x24], edx
jmp case.0x10021bfa.24213
mov eax, dword [ebx]
cmp eax, edx
je 0x10021a17
cmp dword [eax + 0x1c], edx
jne case.0x10021bfa.24213
mov eax, 0x13bf
cmp eax, eax
je 0x10021f2e
add eax, 0x40
cmp eax, 0x13bf
jbe 0x10021a1e
jmp case.0x10021bfa.24213
mov ecx, dword [esp + 0x24]
cmp dword [ecx + 8], edx
je 0x10021a58
cmp dword [ecx], 0xa
je 0x10021a61
mov eax, 0x31ff
cmp eax, eax
je 0x10021f2e
add eax, 0x40
cmp eax, 0x31ff
jbe 0x10021a48
cmp dword [ecx], 0xa
jne case.0x10021bfa.24213
mov edx, dword [esp + 0x3c]
mov esi, dword [ebp + 0x10]
mov edi, 0x10bb
mov eax, edi
sub eax, 0x10bb
je 0x10021ac2
sub eax, 0x37
je 0x10021ab9
sub eax, 0x37
jne 0x10021ad3
mov eax, dword [esp + 0x24]
cmp edx, dword [eax + 0x18]
je 0x10021ad3
mov ecx, 0x50e8
mov esi, esi
mov eax, ecx
sub eax, 0x50e8
je 0x10021aa4
sub eax, 0x28
je 0x100217ce
jmp 0x10021aac
mov dword [esp + 0x10], 0xfffffffd
add ecx, 0x28
cmp ecx, 0x5110
jbe 0x10021a90
jmp 0x10021ad3
mov ecx, dword [esi]
push ecx
mov ecx, dword [ebp + 0xc]
push edx
jmp 0x10021ac8
push 0
push 0
xor ecx, ecx
call fcn.100194b0
mov edx, eax
mov dword [esp + 0x3c], edx
add edi, 0x37
cmp edi, 0x1129
jbe 0x10021a6d
mov esi, dword [esp + 0x1c]
jmp 0x10021ee9
cmp esi, 0x53bc
ja 0x10021be2
je 0x100217ce
cmp esi, 0x531a
ja 0x10021b6e
je 0x10021b60
mov eax, esi
sub eax, 0x5278
je 0x10021b52
sub eax, 0x36
je 0x10021b39
sub eax, 0x36
jne case.0x10021bfa.24213
mov edx, dword [ebx]
mov dword [edx + 0x10], eax
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax]
mov edx, dword [ebx]
push ecx
push edx
call fcn.10026f40
add esp, 8
mov dword [esp + 0x58], eax
jmp case.0x10021bfa.24213
mov eax, dword [ebx]
mov ecx, dword [eax + 0x10]
mov edx, dword [ebp + 0x10]
mov dword [esp + 0x60], ecx
mov ecx, dword [edx]
add ecx, dword [ebp + 0xc]
mov dword [eax + 0xc], ecx
jmp case.0x10021bfa.24213
mov edx, dword [ebx]
mov eax, dword [edx + 0xc]
mov dword [esp + 0x64], eax
jmp case.0x10021bfa.24213
mov ecx, dword [ebx]
mov edx, dword [esp + 0x60]
mov dword [ecx + 0x10], edx
jmp case.0x10021bfa.24213
mov eax, esi
sub eax, 0x5350
je 0x10021b94
sub eax, 0x36
jne case.0x10021bfa.24213
mov eax, dword [esp + 0x24]
mov dword [eax + 0xc], 1
mov dword [esp + 0x10], edx
jmp case.0x10021bfa.24213
mov ecx, dword [ebx]
mov eax, dword [esp + 0x64]
mov dword [ecx + 0xc], eax
cmp dword [esp + 0x58], edx
je case.0x10021bfa.24213
mov edx, dword [esp + 0x24]
mov ecx, 0x3f76
mov eax, ecx
sub eax, 0x3f76
je 0x10021bc4
sub eax, 0x60
je 0x100217ce
jmp 0x10021bd2
mov dword [edx], 0x1e
mov dword [esp + 0x10], 0xfffffffc
add ecx, 0x60
cmp ecx, 0x3fd6
jbe 0x10021bb0
jmp case.0x10021bfa.24213
lea eax, [esi - 0x5e94]
cmp eax, 0xd8
ja case.0x10021bfa.24213
movzx ecx, byte [eax + 0x10021f54]
jmp dword [ecx*4 + 0x10021f3c]
cmp dword [esp + 0x20], edx
jne case.0x10021bfa.24213
mov byte [esp + 0xe], 0
jmp case.0x10021bfa.24213
lea edx, [esp + 0xc8]
push edx
push 0x100
push 0
push 4
push 0
push 0xffffffffffffffff
call dword [sym.imp.KERNEL32.dll_CreateFileMappingW]
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 0x10]
mov dword [eax], 0
jmp case.0x10021bfa.24213
mov byte [esp + 0xe], 1
mov dword [ebx], edx
jmp case.0x10021bfa.24213
mov ecx, 0xa
mov esi, str.MyFileMappingObject
lea edi, [esp + 0xa0]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0xc8]
push ecx
lea edx, [esp + 0xcc]
push edx
lea eax, [esp + 0xa8]
push eax
call fcn.100272a0
mov ecx, dword [ebp + 0xc]
mov esi, dword [esp + 0x28]
add esp, 0xc
mov dword [ecx], 0
jmp 0x10021ee9
cmp byte [esp + 0xe], 0
je 0x10021ee0
mov edi, 0x4fe5
mov dword [esp + 0x54], edi
mov eax, edi
sub eax, 0x4fe5
je 0x10021f09
sub eax, 0x5d
jne 0x10021ecd
cmp dword [esp + 0x5c], eax
jne 0x10021ced
cmp dword [esp + 0x38], eax
ja 0x10021ced
mov esi, 0x473d
cmp esi, esi
jne 0x10021ce2
mov edx, dword [esp + 0x20]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov byte [esp + 0xe], 0
add esi, 0xb
cmp esi, 0x473d
jbe 0x10021cd0
cmp byte [esp + 0xe], 0
je 0x10021ec9
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x44]
xor ebx, ebx
mov dword [esp + 0x4c], 5
lea ebx, [ebx]
cmp ebx, 0xe8
ja case.0x10021d23.1
movzx eax, byte [ebx + 0x10022048]
jmp dword [eax*4 + 0x10022030]
mov ecx, dword [0x10040aec]
mov eax, dword [0x10040af4]
mov edx, dword [0x10040af0]
mov dword [esp + 0x6c], ecx
mov ecx, dword [0x10040af8]
mov dword [esp + 0x70], edx
mov edx, dword [0x10040afc]
mov dword [esp + 0x74], eax
lea eax, [esp + 0x8c]
mov dword [esp + 0x78], ecx
push eax
lea ecx, [esp + 0x84]
mov dword [esp + 0x80], edx
push ecx
lea edx, [esp + 0x74]
push edx
call fcn.100271a0
add esp, 0xc
lea eax, [esp + 0x8c]
push eax
push 0x100
push 0
push 4
push 0
push 0xffffffffffffffff
call dword [sym.imp.KERNEL32.dll_CreateFileMappingA]
mov dword [esp + 0x28], eax
jmp case.0x10021d23.1
cmp byte [esp + 0xf], 0
je 0x10021e62
mov edi, 0x2142
mov eax, edi
sub eax, 0x2142
je 0x10021e0e
sub eax, 0x1a
jne 0x10021e4b
cmp byte [esp + 0xf], al
je 0x10021e4b
mov esi, 0x49cc
mov eax, esi
sub eax, 0x49cc
je 0x10021de5
sub eax, 0x4e
jne 0x10021e01
mov ecx, dword [esp + 0x28]
push ecx
jmp 0x10021dfb
mov edx, dword [esp + 0x40]
push 0x21
push 0x16
push 0xb
push edx
call dword [sym.imp.KERNEL32.dll_PostQueuedCompletionStatus]
mov eax, dword [esp + 0x40]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
add esi, 0x4e
cmp esi, 0x4a1a
jbe 0x10021dd0
jmp 0x10021e4b
mov ecx, dword [esp + 0x28]
push 1
push 0
push 0
push ecx
call dword [sym.imp.KERNEL32.dll_CreateIoCompletionPort]
mov dword [esp + 0x40], eax
test eax, eax
jne 0x10021e4b
mov esi, 0x9ad
cmp esi, esi
jne 0x10021e40
mov edx, dword [esp + 0x28]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov byte [esp + 0xf], 0
add esi, 0x39
cmp esi, 0x9ad
jbe 0x10021e2e
add edi, 0x1a
cmp edi, 0x215c
jbe 0x10021daf
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x44]
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp case.0x10021d23.1
push 2
push 0
push 0
push edi
mov byte [esp + 0x1f], 1
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov esi, eax
mov dword [esp + 0x44], esi
jmp case.0x10021d23.1
mov eax, dword [esp + 0x38]
push 0
push eax
push 0
push esi
push edi
call dword [sym.imp.KERNEL32.dll_UnlockFile]
cmp dword [esp + 0x28], 0
jne case.0x10021d23.1
mov byte [esp + 0xf], 0
jmp case.0x10021d23.1
mov ecx, dword [esp + 0x38]
push 0
push ecx
push 0
push esi
push edi
call dword [sym.imp.KERNEL32.dll_LockFile]
add ebx, 0x3a
dec dword [esp + 0x4c]
jne 0x10021d10
mov ebx, dword [ebp + 8]
mov edi, dword [esp + 0x54]
mov esi, dword [esp + 0x1c]
add edi, 0x5d
mov dword [esp + 0x54], edi
cmp edi, 0x5042
jbe 0x10021ca7
mov edx, dword [ebp + 0x14]
mov dword [edx], 0
mov edi, dword [esp + 0x14]
add esi, 0x36
mov dword [esp + 0x1c], esi
cmp esi, dword [esp + 0x68]
jbe 0x10021730
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x20]
push 0
lea edx, [esp + 0x3c]
push edx
push 0x1000
lea eax, [esp + 0xfc]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov dword [esp + 0x5c], eax
jmp 0x10021ecd
pop edi
pop esi
mov eax, 0xfffffffe
pop ebx
mov esp, ebp
pop ebp
ret