Function at 0x100f28c
Capabilities:
Allocate or change rwx memory
Resolve function by parsing pe exports

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xcc
push ebx
push esi
xor ebx, ebx
push edi
push ebx
push ebx
push 1
push ebx
mov dword [esp + 0xd8], ebx
mov dword [esp + 0xdc], ebx
mov byte [esp + 0xe4], bl
mov byte [esp + 0x6b], bl
mov dword [esp + 0x38], 0x8000000a
call dword [sym.imp.KERNEL32.dll_HeapSetInformation]
mov edi, 0x7fffffff
test eax, eax
jne 0x100f330
call fcn.01001471
dec eax
add al, byte [eax]
jo 0x100f31a
in eax, 4
sar byte [eax], 0xe5
add al, 0xb0
and byte [ebp], bh
mov al, 0xff
adc eax, sym.imp.KERNEL32.dll_GetLastError
call fcn.0100c594
dec eax
in eax, 4
nop
sub byte [edi], ch
invalid
jge 0x100f31c
shl byte [0xffff], 1
or eax, 0x80070000
mov dword [esp + 0x18], eax
jmp 0x101056b
xor eax, eax
mov dword [0x104d450], ebx
mov dword [0x104d440], ebx
mov byte [0x104d458], 1
mov byte [0x104d459], bl
mov word [0x104d45a], ax
mov dword [0x104d45c], ebx
mov dword [0x104d460], 0x100a7d0
mov dword [0x104d01c], 0x104d440
call fcn.0100ecba
mov eax, dword [0x104d01c]
cmp eax, 0x104d01c
je 0x100f389
push 0xa
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.0100ebcb
call fcn.0100c594
pop esp
in eax, 4
sar byte [eax + 0x3cc0006e], 1
add byte [eax], al
sal byte [eax + edx*8 + 4], 0xc0
mov dword [esp + 0x28], 0x100f39e
mov eax, dword [esp + 0x28]
test byte [0x104d504], 1
jne 0x100f3cf
call fcn.0100ccb8
hlt
mov eax, dword [0x104d4f4]
and eax, 3
imul eax, eax, 0x18
add eax, 0x104e308
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
call fcn.0100d3a7
xor ch, ah
add al, 0x90
sub al, 0xe5
add al, 0x20
sbb byte [eax], ch
add byte [eax + 0x68], dl
jg 0x100f3fa
adc byte [ecx + 0x3974245c], cl
sbb eax, 0x104d500
jne 0x100fc7c
mov eax, dword [0x104d4f0]
dec eax
cmp eax, ebx
mov dword [esp + 0x84], ebx
mov dword [esp + 0x88], ebx
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x90], ebx
mov dword [esp + 0x94], ebx
mov dword [esp + 0x14], eax
jl 0x100fc63
mov eax, dword [esp + 0x14]
shl eax, 4
mov ebx, dword [eax + 0x104d518]
mov ecx, dword [eax + 0x104d514]
mov edx, 0xfffffff
mov dword [esp + 0x3c], eax
and ebx, edx
lea eax, [eax + 0x104d50c]
and ecx, edx
add ebx, 0x1000000
mov esi, eax
mov dword [esp + 0x18], ebx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x80], eax
mov eax, 0xd5bf0ef9
mov eax, dword [esp + 0x84]
mov esi, dword [esp + 0x78]
cmp ebx, eax
jb 0x100f4a5
mov ecx, dword [esp + 0x88]
add ecx, eax
lea edx, [esi + ebx]
cmp edx, ecx
jbe 0x100f562
cmp dword [esp + 0x94], 0
je 0x100f4d4
lea ecx, [esp + 0x8c]
push ecx
push dword [esp + 0x90]
push dword [esp + 0x90]
push eax
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
and dword [esp + 0x94], 0
cmp dword [esp + 0x90], 0
je 0x100f4f1
and dword [esp + 0x90], 0
push 0x104e3b0
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
and dword [esp + 0x8c], 0
mov ecx, 0xfffff000
mov eax, ebx
and eax, ecx
lea edx, [esi + ebx + 0xfff]
and edx, ecx
sub edx, eax
push 0x104e3b0
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], edx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea eax, [esp + 0x8c]
push eax
push 0x40
push dword [esp + 0x90]
mov dword [esp + 0x9c], 1
push dword [esp + 0x90]
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
je 0x100fb98
mov dword [esp + 0x94], 1
test ebx, ebx
je 0x100fb98
mov eax, dword [esp + 0x80]
test byte [eax], 1
je 0x100fb6e
mov byte [esp + 0x13], 0
test esi, esi
jbe 0x100faa2
mov esi, 0x104d4f8
mov eax, 0x56bce0f4
mov ebx, dword [0x104d4fc]
mov esi, dword [0x104d4f8]
mov ecx, dword [0x1034d40]
and dword [esp + 0x50], 0
and dword [esp + 0x54], 0
mov eax, 0xfffffff
and esi, eax
and ebx, eax
mov eax, 0x1000000
add esi, eax
sub eax, ecx
mov dword [esp + 0x70], eax
jne 0x100f619
xor ecx, ecx
test ebx, ebx
jbe 0x100f859
movzx eax, byte [ecx + esi]
sub eax, 0x1d913679
add dword [esp + 0x50], eax
add eax, dword [esp + 0x54]
mov edx, 0xe26ec987
imul eax, eax, 0xe26ec987
ror eax, 0x17
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, edi
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, edi
add eax, edx
add dword [esp + 0x50], eax
inc ecx
mov dword [esp + 0x54], eax
cmp ecx, ebx
jb 0x100f5cf
jmp 0x100f859
mov ecx, esi
sub ecx, 0x1000000
mov edx, ecx
and edx, 0xfffff000
mov dword [esp + 0x1c], edx
mov edx, ecx
sub edx, dword [esp + 0x1c]
add ecx, ebx
lea eax, [esi + ebx]
mov ebx, ecx
and ebx, 0xfffff000
sub ecx, ebx
mov dword [esp + 0x7c], eax
mov eax, dword [0x100003c]
mov dword [esp + 0x60], ecx
mov ecx, dword [eax + 0x10000a0]
mov eax, dword [eax + 0x10000a4]
add ecx, 0x1000000
add eax, ecx
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x64], eax
cmp ecx, eax
je 0x100f680
mov eax, dword [esp + 0x1c]
cmp dword [ecx], eax
jae 0x100f680
add ecx, dword [ecx + 4]
cmp ecx, dword [esp + 0x64]
jne 0x100f66f
and dword [esp + 0x6c], 0
cmp ecx, dword [esp + 0x64]
je 0x100f6c4
mov eax, dword [esp + 0x1c]
cmp dword [ecx], eax
jne 0x100f6c4
mov eax, dword [ecx + 4]
sub eax, 8
shr eax, 1
je 0x100f6c4
lea ebx, [ecx + 8]
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x1c]
movzx ebx, word [ebx]
and ebx, 0xfff
cmp ebx, edx
jae 0x100f6c4
inc dword [esp + 0x6c]
add dword [esp + 0x1c], 2
cmp dword [esp + 0x6c], eax
jne 0x100f6a4
mov edx, dword [esp + 0x5c]
cmp ecx, dword [esp + 0x64]
je 0x100f804
cmp dword [ecx], edx
ja 0x100f804
mov eax, dword [ecx + 4]
lea ebx, [eax - 8]
shr ebx, 1
cmp dword [esp + 0x6c], ebx
jne 0x100f703
add ecx, eax
cmp ecx, dword [esp + 0x64]
je 0x100f804
cmp dword [ecx], edx
ja 0x100f804
and dword [esp + 0x6c], 0
jmp 0x100f6da
cmp dword [ecx], edx
jne 0x100f71f
mov eax, dword [esp + 0x6c]
movzx eax, word [ecx + eax*2 + 8]
and eax, 0xfff
cmp eax, dword [esp + 0x60]
jae 0x100f804
mov eax, dword [esp + 0x6c]
inc dword [esp + 0x6c]
mov ebx, 0xf000
test word [ecx + eax*2 + 8], bx
je 0x100f6c8
mov edx, dword [ecx]
lea eax, [ecx + eax*2 + 8]
movzx eax, word [eax]
and eax, 0xfff
lea eax, [eax + edx + 0x1000000]
mov dword [esp + 0x1c], eax
xor ebx, ebx
sub dword [esp + 0x1c], esi
mov dword [esp + 0x28], eax
je 0x100f79f
movzx eax, byte [ebx + esi]
sub eax, 0x1d913679
add dword [esp + 0x50], eax
add eax, dword [esp + 0x54]
mov edx, 0xe26ec987
imul eax, eax, 0xe26ec987
ror eax, 0x17
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, edi
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, edi
add eax, edx
add dword [esp + 0x50], eax
inc ebx
mov dword [esp + 0x54], eax
cmp ebx, dword [esp + 0x1c]
jb 0x100f758
mov esi, dword [esp + 0x28]
mov eax, dword [esi]
sub eax, dword [esp + 0x70]
xor ebx, ebx
mov dword [esp + 0xc0], eax
movzx eax, byte [esp + ebx + 0xc0]
sub eax, 0x1d913679
add dword [esp + 0x50], eax
add eax, dword [esp + 0x54]
mov edx, 0xe26ec987
imul eax, eax, 0xe26ec987
ror eax, 0x17
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, edi
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, edi
add eax, edx
add dword [esp + 0x50], eax
inc ebx
mov dword [esp + 0x54], eax
cmp ebx, 4
jb 0x100f7b2
add esi, 4
jmp 0x100f6c4
mov eax, dword [esp + 0x7c]
xor ebx, ebx
sub eax, esi
mov dword [esp + 0x7c], eax
je 0x100f859
movzx eax, byte [ebx + esi]
sub eax, 0x1d913679
add dword [esp + 0x50], eax
add eax, dword [esp + 0x54]
mov ecx, 0xe26ec987
imul eax, eax, 0xe26ec987
ror eax, 0x17
mul ecx
lea ecx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, edi
sub ecx, eax
mov eax, ecx
sar eax, 0x1f
and eax, edi
add eax, ecx
add dword [esp + 0x50], eax
inc ebx
mov dword [esp + 0x54], eax
cmp ebx, dword [esp + 0x7c]
jb 0x100f812
xor eax, eax
mov ecx, eax
and ecx, 7
mov cl, byte [esp + ecx + 0x50]
mov byte [esp + eax + 0x20], cl
inc eax
cmp eax, 6
jb 0x100f85b
mov eax, 0xb9f302b9
or byte [esp + 0x20], 1
or byte [esp + 0x22], 1
or byte [esp + 0x24], 1
or byte [esp + 0x25], 1
mov eax, dword [esp + 0x78]
mov ecx, 0x100
dec eax
mov dword [esp + 0x1c], eax
je 0x100fa01
mov edx, dword [esp + 0x18]
test al, 1
je 0x100f93d
add eax, edx
mov dl, byte [eax]
mov dword [esp + 0x28], eax
mov al, dl
xor al, byte [esp + 0x23]
movzx esi, dl
and al, 1
mov byte [esp + 0x12], al
movzx eax, byte [esp + 0x23]
je 0x100f8dc
movzx edx, byte [esp + 0x22]
mov ebx, eax
shr ebx, 1
shr edx, 1
xor edx, ebx
mov ebx, esi
xor ebx, ecx
sar ebx, 1
xor edx, ebx
jmp 0x100f8e2
mov edx, eax
xor edx, esi
shr edx, 1
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x70], edx
mov edx, dword [esp + 0x1c]
movzx ebx, byte [edx + ebx - 1]
mov edx, dword [esp + 0x70]
xor edx, ebx
test dl, 1
je 0x100f928
cmp byte [esp + 0x12], 0
je 0x100f918
movzx edx, byte [esp + 0x22]
shr edx, 1
shr eax, 1
xor esi, ecx
xor edx, eax
sar esi, 1
xor edx, esi
jmp 0x100f91e
xor eax, esi
shr eax, 1
mov edx, eax
movzx eax, byte [esp + 0x25]
jmp 0x100f9b9
cmp byte [esp + 0x12], 0
je 0x100f9e2
movzx edx, byte [esp + 0x22]
jmp 0x100f9d4
add eax, edx
mov dl, byte [eax]
mov dword [esp + 0x28], eax
mov al, dl
xor al, byte [esp + 0x21]
movzx esi, dl
and al, 1
mov byte [esp + 0x12], al
movzx eax, byte [esp + 0x21]
je 0x100f972
movzx edx, byte [esp + 0x20]
mov ebx, eax
shr ebx, 1
shr edx, 1
xor edx, ebx
mov ebx, esi
xor ebx, ecx
sar ebx, 1
xor edx, ebx
jmp 0x100f978
mov edx, eax
xor edx, esi
shr edx, 1
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x70], edx
mov edx, dword [esp + 0x18]
movzx ebx, byte [edx + ebx - 1]
mov edx, dword [esp + 0x70]
xor edx, ebx
test dl, 1
je 0x100f9c8
cmp byte [esp + 0x12], 0
je 0x100f9ae
movzx edx, byte [esp + 0x20]
shr edx, 1
shr eax, 1
xor esi, ecx
xor edx, eax
sar esi, 1
xor edx, esi
jmp 0x100f9b4
xor eax, esi
shr eax, 1
mov edx, eax
movzx eax, byte [esp + 0x24]
shr eax, 1
xor edx, ebx
xor eax, 0x80
sar edx, 1
xor eax, edx
jmp 0x100f9ee
cmp byte [esp + 0x12], 0
je 0x100f9e2
movzx edx, byte [esp + 0x20]
shr edx, 1
shr eax, 1
xor esi, ecx
xor edx, eax
sar esi, 1
xor edx, esi
jmp 0x100f9e8
xor eax, esi
shr eax, 1
mov edx, eax
xor edx, ebx
sar edx, 1
mov eax, edx
mov edx, dword [esp + 0x28]
xor byte [esp + 0x13], al
mov byte [edx], al
mov eax, dword [esp + 0x1c]
jmp 0x100f890
mov eax, dword [esp + 0x18]
mov al, byte [eax]
movzx esi, byte [esp + 0x21]
mov bl, al
xor bl, byte [esp + 0x21]
movzx eax, al
and bl, 1
mov byte [esp + 0x12], bl
je 0x100fa39
movzx edx, byte [esp + 0x20]
mov ebx, esi
shr ebx, 1
shr edx, 1
xor edx, ebx
mov ebx, eax
xor ebx, ecx
sar ebx, 1
xor edx, ebx
mov bl, byte [esp + 0x12]
jmp 0x100fa3f
mov edx, eax
xor edx, esi
shr edx, 1
test dl, 1
je 0x100fa6c
test bl, bl
je 0x100fa5b
movzx ebx, byte [esp + 0x20]
shr ebx, 1
shr esi, 1
xor eax, ecx
xor ebx, esi
sar eax, 1
xor ebx, eax
jmp 0x100fa61
xor eax, esi
shr eax, 1
mov ebx, eax
movzx edx, byte [esp + 0x24]
xor edx, ebx
xor edx, ecx
jmp 0x100fa89
test bl, bl
je 0x100fa83
movzx edx, byte [esp + 0x20]
shr edx, 1
shr esi, 1
xor eax, ecx
xor edx, esi
sar eax, 1
xor edx, eax
jmp 0x100fa89
xor eax, esi
shr eax, 1
mov edx, eax
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x78]
sar edx, 1
xor byte [esp + 0x13], dl
mov byte [eax], dl
mov ebx, eax
mov eax, dword [esp + 0x80]
and dword [eax], 0xfffffffe
mov ecx, dword [esp + 0x3c]
mov dl, byte [esp + 0x13]
mov eax, dword [eax]
cmp dl, byte [ecx + 0x104d510]
jne 0x100fbcc
test al, 2
jne 0x100fb6e
mov edx, dword [0x1034d40]
mov eax, 0x1000000
mov ecx, eax
sub ecx, edx
mov dword [esp + 0x28], ecx
je 0x100fb64
mov ecx, dword [0x1006098]
sub ebx, eax
lea eax, [esi + ebx]
xor esi, esi
dec ecx
mov dword [esp + 0x3c], eax
js 0x100fb5c
lea eax, [ecx + esi]
cdq
sub eax, edx
sar eax, 1
mov edx, dword [eax*4 + 0x100609c]
and edx, 0xfffffff
cmp ebx, edx
jae 0x100fb0e
lea ecx, [eax - 1]
jmp 0x100fb13
jbe 0x100fb19
lea esi, [eax + 1]
cmp ecx, esi
jge 0x100faf0
jmp 0x100fb5c
mov esi, eax
jmp 0x100fb5c
mov ecx, dword [esi*4 + 0x100609c]
mov eax, ecx
and eax, 0xfffffff
cmp eax, dword [esp + 0x3c]
jae 0x100fb64
mov edx, ecx
shl ecx, 2
sar ecx, 0x1e
sar edx, 0x1e
and ecx, 3
and edx, 3
xor ebx, ebx
dec ecx
je 0x100fb4d
dec ecx
je 0x100fb94
dec ecx
jne 0x100fb51
mov ebx, dword [esp + 0x28]
dec edx
dec edx
jne 0x100fb5b
add dword [eax + 0x1000000], ebx
inc esi
cmp esi, dword [0x1006098]
jb 0x100fb1d
mov eax, dword [esp + 0x80]
or dword [eax], 2
mov eax, 0x6d19e56f
dec dword [esp + 0x14]
jns 0x100f440
call fcn.0100ccb8
hlt
xor ebx, ebx
jmp 0x100fb51
call fcn.0100ccb8
hlt
xlatb
invalid
call fcn.0100c594
pop esp
in eax, 4
and byte [eax + 0x3c90006e], bh
add byte [eax], al
inc eax
je 0x100fbaf
add al, 0xb0
mov dword [esp + 0x74], 0x80004005
xor esi, esi
cmp dword [esp + 0x94], esi
je 0x100fc48
lea eax, [esp + 0x8c]
push eax
push dword [esp + 0x90]
push dword [esp + 0x90]
push dword [esp + 0x90]
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
call fcn.0100ccb8
hlt
cmp dword [esp + 0x90], esi
je 0x100fc63
push 0x104e3b0
mov dword [esp + 0x94], esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor eax, eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], eax
xor ebx, ebx
call fcn.01001471
dec eax
add al, byte [eax]
push eax
cmp al, 0xe5
add al, 0x70
cmp ch, ah
add al, 0xb0
and byte [ebp], bh
and bh, bh
add eax, 0x104d500
cmp dword [esp + 0x74], ebx
jge 0x10103a5
call fcn.0100c594
pop esp
in eax, 4
mov al, byte [0xb0006eb8]
cmp al, 0
add byte [eax], al
je 0x100fc84
add al, 0x60
call fcn.0100c594
pop esp
in eax, 4
sar byte [eax + 0x3c70006e], 1
add byte [eax], al
xor byte [eax + edx*8 + 4], 0x70
call fcn.01001471
dec eax
add al, byte [eax]
jo 0x100fd11
in eax, 4
cmp byte [eax], 0xe5
add al, 0xb0
and byte [ebp], bh
loopne 0x100fce0
dec dword [0x104d500]
or eax, 0x104d500
jne 0x10103a5
cmp dword [0x104d4f0], ebx
mov dword [esp + 0x98], ebx
mov dword [esp + 0x9c], ebx
mov dword [esp + 0xa0], ebx
mov dword [esp + 0xa4], ebx
mov dword [esp + 0xa8], ebx
test al, 0
add byte [eax], al
mov dword [esp + 0x78], ebx
jle 0x1010377
mov eax, dword [esp + 0x78]
shl eax, 4
mov ebx, dword [eax + 0x104d518]
mov ecx, dword [eax + 0x104d514]
mov edx, 0xfffffff
mov dword [esp + 0x80], eax
and ebx, edx
lea eax, [eax + 0x104d50c]
and ecx, edx
add ebx, 0x1000000
mov esi, eax
mov dword [esp + 0x28], ebx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x3c], eax
mov eax, 0x73eaf545
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x9c]
cmp ebx, eax
jb 0x100fd84
mov edx, dword [esp + 0x18]
add edx, ebx
lea esi, [ecx + eax]
cmp edx, esi
jbe 0x100fe38
xor esi, esi
cmp dword [esp + 0xa8], esi
je 0x100fdad
lea edx, [esp + 0xa0]
push edx
push dword [esp + 0xa4]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
mov dword [esp + 0xa8], esi
cmp dword [esp + 0xa4], esi
je 0x100fdc8
push 0x104e3b0
mov dword [esp + 0xa8], esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov edx, dword [esp + 0x18]
and dword [esp + 0xa0], 0
mov ecx, 0xfffff000
lea edx, [edx + ebx + 0xfff]
mov eax, ebx
and eax, ecx
and edx, ecx
sub edx, eax
push 0x104e3b0
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], edx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea eax, [esp + 0xa0]
push eax
push 0x40
push dword [esp + 0xa4]
xor esi, esi
push dword [esp + 0xa4]
inc esi
mov dword [esp + 0xb4], esi
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
je 0x10102d3
mov dword [esp + 0xa8], esi
xor esi, esi
cmp ebx, esi
je 0x10102d5
mov eax, dword [esp + 0x3c]
test byte [eax], 1
jne 0x10102ba
mov byte [esp + 0x13], 0
cmp dword [esp + 0x18], esi
jbe 0x10102a2
mov esi, 0x104d4f8
mov eax, 0xde5ce362
mov ebx, dword [0x104d4fc]
mov esi, dword [0x104d4f8]
mov ecx, dword [0x1034d40]
and dword [esp + 0x48], 0
and dword [esp + 0x4c], 0
mov eax, 0xfffffff
and esi, eax
and ebx, eax
mov eax, 0x1000000
add esi, eax
sub eax, ecx
mov dword [esp + 0x7c], eax
jne 0x100fef0
xor ecx, ecx
test ebx, ebx
jbe 0x1010130
movzx eax, byte [ecx + esi]
sub eax, 0x1d913679
add dword [esp + 0x48], eax
add eax, dword [esp + 0x4c]
mov edx, 0xe26ec987
imul eax, eax, 0xe26ec987
ror eax, 0x17
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, edi
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, edi
add eax, edx
add dword [esp + 0x48], eax
inc ecx
mov dword [esp + 0x4c], eax
cmp ecx, ebx
jb 0x100fea6
jmp 0x1010130
mov ecx, esi
sub ecx, 0x1000000
mov edx, ecx
and edx, 0xfffff000
mov dword [esp + 0x14], edx
mov edx, ecx
sub edx, dword [esp + 0x14]
add ecx, ebx
lea eax, [esi + ebx]
mov ebx, ecx
and ebx, 0xfffff000
sub ecx, ebx
mov dword [esp + 0xc0], eax
mov eax, dword [0x100003c]
mov dword [esp + 0x60], ecx
mov ecx, dword [eax + 0x10000a0]
mov eax, dword [eax + 0x10000a4]
add ecx, 0x1000000
add eax, ecx
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x64], eax
cmp ecx, eax
je 0x100ff5a
mov eax, dword [esp + 0x14]
cmp dword [ecx], eax
jae 0x100ff5a
add ecx, dword [ecx + 4]
cmp ecx, dword [esp + 0x64]
jne 0x100ff49
and dword [esp + 0x6c], 0
cmp ecx, dword [esp + 0x64]
je 0x100ff9e
mov eax, dword [esp + 0x14]
cmp dword [ecx], eax
jne 0x100ff9e
mov eax, dword [ecx + 4]
sub eax, 8
shr eax, 1
je 0x100ff9e
lea ebx, [ecx + 8]
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x14]
movzx ebx, word [ebx]
and ebx, 0xfff
cmp ebx, edx
jae 0x100ff9e
inc dword [esp + 0x6c]
add dword [esp + 0x14], 2
cmp dword [esp + 0x6c], eax
jne 0x100ff7e
mov edx, dword [esp + 0x5c]
cmp ecx, dword [esp + 0x64]
je 0x10100d8
cmp dword [ecx], edx
ja 0x10100d8
mov eax, dword [ecx + 4]
lea ebx, [eax - 8]
shr ebx, 1
cmp dword [esp + 0x6c], ebx
jne 0x100ffdd
add ecx, eax
cmp ecx, dword [esp + 0x64]
je 0x10100d8
cmp dword [ecx], edx
ja 0x10100d8
and dword [esp + 0x6c], 0
jmp 0x100ffb4
cmp dword [ecx], edx
jne 0x100fff9
mov eax, dword [esp + 0x6c]
movzx eax, word [ecx + eax*2 + 8]
and eax, 0xfff
cmp eax, dword [esp + 0x60]
jae 0x10100d8
mov eax, dword [esp + 0x6c]
inc dword [esp + 0x6c]
mov ebx, 0xf000
test word [ecx + eax*2 + 8], bx
je 0x100ffa2
mov edx, dword [ecx]
lea eax, [ecx + eax*2 + 8]
movzx eax, word [eax]
and eax, 0xfff
lea eax, [eax + edx + 0x1000000]
mov dword [esp + 0x14], eax
xor ebx, ebx
sub dword [esp + 0x14], esi
mov dword [esp + 0x3c], eax
je 0x1010079
movzx eax, byte [ebx + esi]
sub eax, 0x1d913679
add dword [esp + 0x48], eax
add eax, dword [esp + 0x4c]
mov edx, 0xe26ec987
imul eax, eax, 0xe26ec987
ror eax, 0x17
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, edi
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, edi
add eax, edx
add dword [esp + 0x48], eax
inc ebx
mov dword [esp + 0x4c], eax
cmp ebx, dword [esp + 0x14]
jb 0x1010032
mov esi, dword [esp + 0x3c]
mov eax, dword [esi]
sub eax, dword [esp + 0x7c]
xor ebx, ebx
mov dword [esp + 0x70], eax
movzx eax, byte [esp + ebx + 0x70]
sub eax, 0x1d913679
add dword [esp + 0x48], eax
add eax, dword [esp + 0x4c]
mov edx, 0xe26ec987
imul eax, eax, 0xe26ec987
ror eax, 0x17
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, edi
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, edi
add eax, edx
add dword [esp + 0x48], eax
inc ebx
mov dword [esp + 0x4c], eax
cmp ebx, 4
jb 0x1010089
add esi, 4
jmp 0x100ff9e
mov eax, dword [esp + 0xc0]
xor ebx, ebx
sub eax, esi
mov dword [esp + 0x3c], eax
je 0x1010130
movzx eax, byte [ebx + esi]
sub eax, 0x1d913679
add dword [esp + 0x48], eax
add eax, dword [esp + 0x4c]
mov ecx, 0xe26ec987
imul eax, eax, 0xe26ec987
ror eax, 0x17
mul ecx
lea ecx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, edi
sub ecx, eax
mov eax, ecx
sar eax, 0x1f
and eax, edi
add eax, ecx
add dword [esp + 0x48], eax
inc ebx
mov dword [esp + 0x4c], eax
cmp ebx, dword [esp + 0x3c]
jb 0x10100e9
xor eax, eax
mov ecx, eax
and ecx, 7
mov cl, byte [esp + ecx + 0x48]
mov byte [esp + eax + 0x2c], cl
inc eax
cmp eax, 6
jb 0x1010132
mov eax, 0x1d5fb274
mov ebx, dword [esp + 0x28]
mov dl, byte [ebx]
or byte [esp + 0x2c], 1
or byte [esp + 0x2e], 1
or byte [esp + 0x30], 1
or byte [esp + 0x31], 1
movzx ecx, dl
mov byte [esp + 0x13], dl
add ecx, ecx
and dl, 0x80
je 0x101017b
movzx eax, byte [esp + 0x30]
xor eax, ecx
jmp 0x101017d
mov eax, ecx
test al, al
jns 0x101019b
test dl, dl
je 0x101018e
movzx eax, byte [esp + 0x30]
xor eax, ecx
jmp 0x1010190
mov eax, ecx
movzx ecx, byte [esp + 0x2c]
add eax, eax
xor eax, ecx
jmp 0x10101ac
test dl, dl
je 0x10101a8
movzx eax, byte [esp + 0x30]
xor eax, ecx
jmp 0x10101aa
mov eax, ecx
add eax, eax
mov cl, byte [esp + 0x2d]
xor edx, edx
xor cl, al
inc edx
mov byte [ebx], cl
cmp dword [esp + 0x18], edx
jbe 0x10102a2
mov al, byte [edx + ebx]
xor byte [esp + 0x13], al
movzx esi, al
add esi, esi
mov byte [esp + 0x12], al
test dl, 1
je 0x1010233
and byte [esp + 0x12], 0x80
je 0x10101e6
movzx ecx, byte [esp + 0x31]
xor ecx, esi
jmp 0x10101e8
mov ecx, esi
movzx eax, byte [edx + ebx - 1]
mov ebx, eax
xor ebx, ecx
test bl, bl
jns 0x1010214
cmp byte [esp + 0x12], 0
je 0x1010205
movzx ecx, byte [esp + 0x31]
xor ecx, esi
jmp 0x1010207
mov ecx, esi
xor eax, ecx
movzx ecx, byte [esp + 0x2e]
add eax, eax
xor eax, ecx
jmp 0x101022a
cmp byte [esp + 0x12], 0
je 0x1010224
movzx ecx, byte [esp + 0x31]
xor ecx, esi
jmp 0x1010226
mov ecx, esi
xor eax, ecx
add eax, eax
mov ecx, eax
movzx eax, byte [esp + 0x2f]
jmp 0x101028e
and byte [esp + 0x12], 0x80
je 0x1010243
movzx ecx, byte [esp + 0x30]
xor ecx, esi
jmp 0x1010245
mov ecx, esi
movzx eax, byte [edx + ebx - 1]
mov ebx, eax
xor ebx, ecx
test bl, bl
jns 0x1010271
cmp byte [esp + 0x12], 0
je 0x1010262
movzx ecx, byte [esp + 0x30]
xor ecx, esi
jmp 0x1010264
mov ecx, esi
xor eax, ecx
movzx ecx, byte [esp + 0x2c]
add eax, eax
xor eax, ecx
jmp 0x1010287
cmp byte [esp + 0x12], 0
je 0x1010281
movzx ecx, byte [esp + 0x30]
xor ecx, esi
jmp 0x1010283
mov ecx, esi
xor eax, ecx
add eax, eax
mov ecx, eax
movzx eax, byte [esp + 0x2d]
mov ebx, dword [esp + 0x28]
xor eax, ecx
mov byte [edx + ebx], al
inc edx
cmp edx, dword [esp + 0x18]
jb 0x10101c1
mov eax, dword [esp + 0x80]
mov cl, byte [esp + 0x13]
or dword [eax + 0x104d50c], 1
mov byte [eax + 0x104d510], cl
mov eax, 0x2a5ba40a
inc dword [esp + 0x78]
mov eax, dword [esp + 0x78]
cmp eax, dword [0x104d4f0]
jl 0x100fd1f
xor esi, esi
call fcn.0100ccb8
hlt
call fcn.0100d3a7
xor ch, ah
add al, 0
sub al, 0xe5
add al, 0x10
sbb byte [eax], ch
add byte [eax + 0x68], al
jg 0x101038b
xor byte [ebx], 0xc0
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], eax
xor ebx, ebx
call fcn.0100c594
pop esp
in eax, 4
cmp byte [eax + 0x3c40006e], 0
add byte [eax - 0x4ffb2f8c], dh
call fcn.0100ccb8
hlt
call fcn.0100ccb8
hlt