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

Disassembly:
sub esp, 0x38
mov ecx, dword [esp + 0x40]
mov eax, 1
push ebx
mov ebx, dword [esp + 0x40]
add ecx, 6
shl eax, cl
mov dword [esp + 0x18], eax
push ebp
mov ecx, dword [ebx + 0x7c]
mov eax, dword [ebx + 0x78]
add ecx, 3
mov edx, dword [ebx + 8]
push esi
push edi
mov edi, dword [ebx + 4]
lea ebp, [eax + ecx*4]
mov ecx, dword [ebx + 0x74]
xor esi, esi
mov eax, dword [ebx + 0x68]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x14], eax
mov eax, dword [ebx]
mov dword [esp + 0x18], ebp
mov dword [ecx], 0
test dword [ebx + 0x80], 0xfffffffc
mov dword [esp + 0x10], edx
mov dword [esp + 0x28], esi
jbe 0x100bc282
nop word [eax + eax]
mov esi, dword [ebx + 0x7c]
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], 0
test esi, esi
je 0x100bc25f
mov ecx, esi
nop dword [eax]
mov esi, dword [ebp]
mov dword [esp + 0x38], eax
test esi, esi
je 0x100bc242
mov ecx, dword [esp + 0x5c]
and ecx, 8
mov dword [esp + 0x40], ecx
test esi, 0x200010
jne 0x100bb812
mov ebp, esi
and ebp, 0x1ef
je 0x100bb812
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx]
and ecx, dword [esp + 0x24]
and ecx, 0x7fffffff
mov dword [esp + 0x20], ecx
mov ecx, 0
setne cl
mov dword [esp + 0x2c], ecx
mov ecx, dword [ebx + 0x6c]
movzx ecx, byte [ecx + ebp]
add ecx, 7
cmp byte [esp + 0x58], 1
lea ecx, [ebx + ecx*4]
mov dword [esp + 0x14], ecx
jne 0x100bb562
cmp edx, 0xdeadbeef
jne 0x100bb52d
mov eax, dword [esp + 0x2c]
mov ebp, 7
shl eax, 7
add eax, dword [esp + 0x38]
mov dword [esp + 0x10], ebp
jmp 0x100bb5f9
mov ebp, dword [esp + 0x2c]
dec edx
mov ecx, edx
mov dword [esp + 0x10], edx
shl ebp, cl
add eax, ebp
test edx, edx
jne 0x100bb5f5
mov ecx, dword [ebx + 0x10]
mov byte [ecx], al
mov eax, dword [ebx + 0x10]
mov cl, byte [eax]
inc eax
mov dword [ebx + 0x10], eax
xor eax, eax
cmp cl, 0xff
setne dl
add edx, 7
jmp 0x100bb5f1
mov ebp, dword [ecx]
mov ecx, dword [esp + 0x2c]
mov esi, dword [ebp]
sub edi, esi
cmp dword [ebp + 4], ecx
jne 0x100bb5b8
test edi, 0x8000
jne 0x100bb5b4
cmp edi, esi
jb 0x100bb580
add eax, esi
mov ecx, dword [ebp + 8]
cmp edi, esi
mov ebp, dword [esp + 0x14]
cmovae esi, edi
mov edi, esi
mov dword [ebp], ecx
add edi, edi
add eax, eax
sub edx, 1
jne 0x100bb5aa
push ebx
mov dword [ebx], eax
call fcn.100bf4d0
mov eax, dword [ebx]
add esp, 4
mov edx, dword [ebx + 8]
test edi, 0x8000
je 0x100bb591
jmp 0x100bb5f1
add eax, esi
jmp 0x100bb5f5
cmp edi, esi
jae 0x100bb5be
add eax, esi
mov ecx, dword [ebp + 0xc]
cmp edi, esi
mov ebp, dword [esp + 0x14]
cmovae edi, esi
mov dword [ebp], ecx
nop dword [eax]
add edi, edi
add eax, eax
sub edx, 1
jne 0x100bb5e9
push ebx
mov dword [ebx], eax
call fcn.100bf4d0
mov eax, dword [ebx]
add esp, 4
mov edx, dword [ebx + 8]
test edi, 0x8000
je 0x100bb5d0
mov dword [esp + 0x10], edx
mov ebp, dword [esp + 0x10]
cmp dword [esp + 0x20], 0
mov dword [esp + 0x3c], eax
je 0x100bb800
mov ecx, dword [esp + 0x18]
mov esi, dword [ecx]
mov edx, esi
mov ecx, dword [ecx - 4]
shr ecx, 2
and ecx, 0x20000
shr edx, 0xe
mov dword [esp + 0x20], ecx
and edx, 0x10
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx + 4]
and ecx, 0x80000
or dword [esp + 0x20], ecx
mov ecx, esi
shr dword [esp + 0x20], 1
and ecx, 0x400000
or dword [esp + 0x20], ecx
and esi, 0xaa
mov ecx, dword [esp + 0x20]
shr ecx, 0x10
or ecx, edx
or ecx, esi
mov dword [esp + 0x20], ecx
movzx ecx, byte [ecx + 0x101a8688]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx]
mov esi, edx
mov ecx, dword [esp + 0x50]
and edx, 0x7fffffff
shr esi, 0x1f
mov dword [esp + 0x2c], esi
test ecx, ecx
je 0x100bb693
shr edx, cl
and edx, 0x7f
movzx ecx, word [edx*2 + 0x101a8888]
jmp 0x100bb69e
and edx, 0x7f
movzx ecx, word [edx*2 + 0x101a8988]
mov edx, dword [esp + 0x54]
movsx ecx, cx
add dword [edx], ecx
mov ecx, dword [esp + 0x38]
add ecx, 7
cmp byte [esp + 0x58], 1
lea ecx, [ebx + ecx*4]
mov dword [esp + 0x14], ecx
jne 0x100bb714
cmp ebp, 0xdeadbeef
jne 0x100bb6db
mov eax, esi
mov ebp, 7
shl eax, 7
add eax, dword [esp + 0x3c]
mov dword [esp + 0x10], ebp
jmp 0x100bb7b9
dec ebp
mov edx, esi
mov ecx, ebp
mov dword [esp + 0x10], ebp
shl edx, cl
add eax, edx
test ebp, ebp
jne 0x100bb7b9
mov ecx, dword [ebx + 0x10]
xor edx, edx
mov byte [ecx], al
mov eax, dword [ebx + 0x10]
mov cl, byte [eax]
inc eax
mov dword [ebx + 0x10], eax
xor eax, eax
cmp cl, 0xff
setne dl
add edx, 7
mov dword [esp + 0x10], edx
jmp 0x100bb7b9
mov esi, dword [ecx]
mov ecx, dword [esp + 0x20]
mov edx, dword [esi]
sub edi, edx
movzx ecx, byte [ecx + 0x101a8788]
xor ecx, dword [esp + 0x2c]
cmp dword [esi + 4], ecx
jne 0x100bb777
test edi, 0x8000
jne 0x100bb773
cmp edi, edx
jb 0x100bb73c
add eax, edx
mov ecx, dword [esi + 8]
cmp edi, edx
mov esi, dword [esp + 0x14]
cmovae edx, edi
mov edi, edx
mov dword [esi], ecx
mov ecx, dword [esp + 0x10]
add edi, edi
add eax, eax
sub ecx, 1
jne 0x100bb769
push ebx
mov dword [ebx], eax
call fcn.100bf4d0
mov eax, dword [ebx]
add esp, 4
mov ecx, dword [ebx + 8]
test edi, 0x8000
je 0x100bb750
jmp 0x100bb7b1
add eax, edx
jmp 0x100bb7b5
cmp edi, edx
jae 0x100bb77d
add eax, edx
mov ecx, dword [esi + 0xc]
cmp edi, edx
mov esi, dword [esp + 0x14]
cmovae edi, edx
mov dword [esi], ecx
mov ecx, dword [esp + 0x10]
nop
add edi, edi
add eax, eax
sub ecx, 1
jne 0x100bb7a9
push ebx
mov dword [ebx], eax
call fcn.100bf4d0
mov eax, dword [ebx]
add esp, 4
mov ecx, dword [ebx + 8]
test edi, 0x8000
je 0x100bb790
mov dword [esp + 0x10], ecx
mov esi, dword [esp + 0x2c]
mov ebp, dword [esp + 0x18]
mov ecx, esi
mov edx, dword [ebx + 0x7c]
shl ecx, 0x13
or ecx, 0x10
or dword [ebp - 4], 0x20
or dword [ebp], ecx
or dword [ebp + 4], 8
cmp dword [esp + 0x40], 0
jne 0x100bb804
lea ecx, [edx*4 + 8]
shl esi, 0x1f
mov edx, ebp
or esi, 0x10000
sub edx, ecx
or dword [edx], esi
or dword [edx - 4], 0x20000
or dword [edx + 4], 0x8000
jmp 0x100bb804
mov ebp, dword [esp + 0x18]
or dword [ebp], 0x200000
mov esi, dword [ebp]
mov edx, dword [esp + 0x10]
mov dword [esp + 0x40], eax
mov ecx, esi
test esi, 0x1000080
jne 0x100bbb62
test esi, 0xf78
je 0x100bbb62
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx + 4]
and ecx, dword [esp + 0x24]
and ecx, 0x7fffffff
mov dword [esp + 0x3c], ecx
mov ecx, 0
setne cl
shr esi, 3
mov dword [esp + 0x2c], ecx
and esi, 0x1ef
mov ecx, dword [ebx + 0x6c]
movzx ecx, byte [esi + ecx]
add ecx, 7
cmp byte [esp + 0x58], 1
lea ecx, [ebx + ecx*4]
mov dword [esp + 0x14], ecx
jne 0x100bb8c8
cmp edx, 0xdeadbeef
jne 0x100bb893
mov eax, dword [esp + 0x2c]
mov ebp, 7
shl eax, 7
add eax, dword [esp + 0x40]
mov dword [esp + 0x10], ebp
jmp 0x100bb95c
mov ebp, dword [esp + 0x2c]
dec edx
mov ecx, edx
mov dword [esp + 0x10], edx
shl ebp, cl
add eax, ebp
test edx, edx
jne 0x100bb958
mov ecx, dword [ebx + 0x10]
mov byte [ecx], al
mov eax, dword [ebx + 0x10]
mov cl, byte [eax]
inc eax
mov dword [ebx + 0x10], eax
xor eax, eax
cmp cl, 0xff
setne dl
add edx, 7
jmp 0x100bb954
mov ebp, dword [ecx]
mov ecx, dword [esp + 0x2c]
mov esi, dword [ebp]
sub edi, esi
cmp dword [ebp + 4], ecx
jne 0x100bb91e
test edi, 0x8000
jne 0x100bb91a
cmp edi, esi
jb 0x100bb8e6
add eax, esi
mov ecx, dword [ebp + 8]
cmp edi, esi
mov ebp, dword [esp + 0x14]
cmovae esi, edi
mov edi, esi
mov dword [ebp], ecx
add edi, edi
add eax, eax
sub edx, 1
jne 0x100bb910
push ebx
mov dword [ebx], eax
call fcn.100bf4d0
mov eax, dword [ebx]
add esp, 4
mov edx, dword [ebx + 8]
test edi, 0x8000
je 0x100bb8f7
jmp 0x100bb954
add eax, esi
jmp 0x100bb958
cmp edi, esi
jae 0x100bb924
add eax, esi
mov ecx, dword [ebp + 0xc]
cmp edi, esi
mov ebp, dword [esp + 0x14]
cmovae edi, esi
mov dword [ebp], ecx
add edi, edi
add eax, eax
sub edx, 1
jne 0x100bb94c
push ebx
mov dword [ebx], eax
call fcn.100bf4d0
mov eax, dword [ebx]
add esp, 4
mov edx, dword [ebx + 8]
test edi, 0x8000
je 0x100bb933
mov dword [esp + 0x10], edx
mov ebp, dword [esp + 0x10]
cmp dword [esp + 0x3c], 0
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x38], eax
je 0x100bbb58
mov esi, dword [ecx]
mov edx, esi
mov ecx, dword [ecx - 4]
shr ecx, 2
and ecx, 0x100000
shr edx, 0xf
mov dword [esp + 0x20], ecx
and edx, 0x10
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx + 4]
and ecx, 0x400000
or dword [esp + 0x20], ecx
mov ecx, esi
shr dword [esp + 0x20], 1
and ecx, 0x2000000
or dword [esp + 0x20], ecx
and esi, 0x550
mov ecx, dword [esp + 0x20]
shr ecx, 0x10
or ecx, esi
shr ecx, 3
or ecx, edx
mov dword [esp + 0x20], ecx
movzx ecx, byte [ecx + 0x101a8688]
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx + 4]
mov esi, edx
mov ecx, dword [esp + 0x50]
and edx, 0x7fffffff
shr esi, 0x1f
test ecx, ecx
je 0x100bb9f6
shr edx, cl
and edx, 0x7f
movzx ecx, word [edx*2 + 0x101a8888]
jmp 0x100bba01
and edx, 0x7f
movzx ecx, word [edx*2 + 0x101a8988]
mov edx, dword [esp + 0x54]
movsx ecx, cx
add dword [edx], ecx
mov ecx, dword [esp + 0x40]
add ecx, 7
cmp byte [esp + 0x58], 1
lea ecx, [ebx + ecx*4]
mov dword [esp + 0x14], ecx
jne 0x100bba79
mov ecx, dword [esp + 0x10]
cmp ecx, 0xdeadbeef
jne 0x100bba42
mov eax, esi
mov ebp, 7
shl eax, 7
add eax, dword [esp + 0x38]
mov dword [esp + 0x10], ebp
jmp 0x100bbb3e
dec ecx
mov edx, esi
shl edx, cl
add eax, edx
mov dword [esp + 0x10], ecx
test ecx, ecx
jne 0x100bbb3a
mov ecx, dword [ebx + 0x10]
xor edx, edx
mov byte [ecx], al
mov eax, dword [ebx + 0x10]
mov cl, byte [eax]
inc eax
mov dword [ebx + 0x10], eax
xor eax, eax
cmp cl, 0xff
setne dl
add edx, 7
mov dword [esp + 0x10], edx
jmp 0x100bbb3a
mov ecx, dword [ecx]
mov edx, dword [ecx]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x14]
movzx ecx, byte [ecx + 0x101a8788]
xor ecx, esi
mov ebx, dword [edx]
mov edx, dword [esp + 0x40]
cmp dword [ebx + 4], ecx
mov ebx, dword [esp + 0x4c]
jne 0x100bbaf7
sub edi, edx
test edi, 0x8000
jne 0x100bbaf3
cmp edi, edx
jb 0x100bbab1
add eax, edx
mov ebp, dword [esp + 0x14]
cmp edi, edx
cmovae edx, edi
mov edi, edx
mov ecx, dword [ebp]
mov ecx, dword [ecx + 8]
mov dword [ebp], ecx
mov ecx, dword [esp + 0x10]
nop dword [eax]
add edi, edi
add eax, eax
sub ecx, 1
jne 0x100bbae9
push ebx
mov dword [ebx], eax
call fcn.100bf4d0
mov eax, dword [ebx]
add esp, 4
mov ecx, dword [ebx + 8]
test edi, 0x8000
je 0x100bbad0
jmp 0x100bbb36
add eax, edx
jmp 0x100bbb3e
sub edi, edx
cmp edi, edx
jae 0x100bbaff
add eax, edx
mov ebp, dword [esp + 0x14]
cmp edi, edx
cmovae edi, edx
mov ecx, dword [ebp]
mov ecx, dword [ecx + 0xc]
mov dword [ebp], ecx
mov ecx, dword [esp + 0x10]
add edi, edi
add eax, eax
sub ecx, 1
jne 0x100bbb2e
push ebx
mov dword [ebx], eax
call fcn.100bf4d0
mov eax, dword [ebx]
add esp, 4
mov ecx, dword [ebx + 8]
test edi, 0x8000
je 0x100bbb15
mov dword [esp + 0x10], ecx
mov ebp, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
shl esi, 0x16
or esi, 0x80
or dword [ecx - 4], 0x100
or dword [ecx], esi
or dword [ecx + 4], 0x40
or dword [ecx], 0x1000000
mov ecx, dword [ecx]
jmp 0x100bbb66
mov ebp, dword [esp + 0x10]
mov dword [esp + 0x3c], eax
mov edx, ecx
test ecx, 0x8000400
jne 0x100bbece
test ecx, 0x7bc0
je 0x100bbece
mov edx, dword [esp + 0x1c]
mov edx, dword [edx + 8]
and edx, dword [esp + 0x24]
and edx, 0x7fffffff
mov dword [esp + 0x38], edx
mov edx, 0
setne dl
shr ecx, 6
and ecx, 0x1ef
mov dword [esp + 0x2c], edx
mov dword [esp + 0x40], ecx
mov ecx, dword [ebx + 0x6c]
mov edx, dword [esp + 0x40]
movzx ecx, byte [edx + ecx]
add ecx, 7
cmp byte [esp + 0x58], 1
lea ecx, [ebx + ecx*4]
mov dword [esp + 0x14], ecx
jne 0x100bbc28
mov edx, dword [esp + 0x10]
cmp edx, 0xdeadbeef
jne 0x100bbbf3
mov eax, dword [esp + 0x2c]
mov ebp, 7
shl eax, 7
add eax, dword [esp + 0x3c]
mov dword [esp + 0x10], ebp
jmp 0x100bbcc9
mov esi, dword [esp + 0x2c]
dec edx
mov ecx, edx
mov dword [esp + 0x10], edx
shl esi, cl
add eax, esi
test edx, edx
jne 0x100bbcc5
mov ecx, dword [ebx + 0x10]
mov byte [ecx], al
mov eax, dword [ebx + 0x10]
mov cl, byte [eax]
inc eax
mov dword [ebx + 0x10], eax
xor eax, eax
cmp cl, 0xff
setne dl
add edx, 7
jmp 0x100bbcc1
mov ecx, dword [ecx]
mov esi, dword [esp + 0x2c]
mov edx, dword [ecx]
sub edi, edx
cmp dword [ecx + 4], esi
jne 0x100bbc87
test edi, 0x8000
jne 0x100bbc83
cmp edi, edx
jb 0x100bbc45
add eax, edx
mov esi, dword [esp + 0x14]
cmp edi, edx
mov ecx, dword [ecx + 8]
cmovae edx, edi
mov edi, edx
mov edx, dword [esp + 0x10]
mov dword [esi], ecx
nop dword [eax]
add edi, edi
add eax, eax
sub edx, 1
jne 0x100bbc79
push ebx
mov dword [ebx], eax
call fcn.100bf4d0
mov eax, dword [ebx]
add esp, 4
mov edx, dword [ebx + 8]
test edi, 0x8000
je 0x100bbc60
jmp 0x100bbcc1
add eax, edx
jmp 0x100bbcc9
cmp edi, edx
jae 0x100bbc8d
add eax, edx
mov esi, dword [esp + 0x14]
cmp edi, edx
mov ecx, dword [ecx + 0xc]
cmovae edi, edx
mov edx, dword [esp + 0x10]
mov dword [esi], ecx
nop
add edi, edi
add eax, eax
sub edx, 1
jne 0x100bbcb9
push ebx
mov dword [ebx], eax
call fcn.100bf4d0
mov eax, dword [ebx]
add esp, 4
mov edx, dword [ebx + 8]
test edi, 0x8000
je 0x100bbca0
mov dword [esp + 0x10], edx
mov ebp, dword [esp + 0x10]
cmp dword [esp + 0x38], 0
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x3c], eax
je 0x100bbec6
mov esi, dword [ecx]
mov edx, esi
mov ecx, dword [ecx - 4]
shr ecx, 2
and ecx, 0x800000
shr edx, 0x12
mov dword [esp + 0x20], ecx
and edx, 0x10
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx + 4]
and ecx, 0x2000000
or dword [esp + 0x20], ecx
mov ecx, esi
shr dword [esp + 0x20], 1
and ecx, 0x10000000
or dword [esp + 0x20], ecx
and esi, 0x2a80
mov ecx, dword [esp + 0x20]
shr ecx, 0x10
or ecx, esi
shr ecx, 6
or ecx, edx
mov dword [esp + 0x20], ecx
movzx ecx, byte [ecx + 0x101a8688]
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx + 8]
mov esi, edx
mov ecx, dword [esp + 0x50]
and edx, 0x7fffffff
shr esi, 0x1f
test ecx, ecx
je 0x100bbd63
shr edx, cl
and edx, 0x7f
movzx ecx, word [edx*2 + 0x101a8888]
jmp 0x100bbd6e
and edx, 0x7f
movzx ecx, word [edx*2 + 0x101a8988]
mov edx, dword [esp + 0x54]
movsx ecx, cx
add dword [edx], ecx
mov ecx, dword [esp + 0x40]
add ecx, 7
cmp byte [esp + 0x58], 1
lea ecx, [ebx + ecx*4]
mov dword [esp + 0x14], ecx
jne 0x100bbde6
mov ecx, dword [esp + 0x10]
cmp ecx, 0xdeadbeef
jne 0x100bbdaf
mov eax, esi
mov ebp, 7
shl eax, 7
add eax, dword [esp + 0x3c]
mov dword [esp + 0x10], ebp
jmp 0x100bbea9
dec ecx
mov edx, esi
shl edx, cl
add eax, edx
mov dword [esp + 0x10], ecx
test ecx, ecx
jne 0x100bbea5
mov ecx, dword [ebx + 0x10]
xor edx, edx
mov byte [ecx], al
mov eax, dword [ebx + 0x10]
mov cl, byte [eax]
inc eax
mov dword [ebx + 0x10], eax
xor eax, eax
cmp cl, 0xff
setne dl
add edx, 7
mov dword [esp + 0x10], edx
jmp 0x100bbea5
mov ecx, dword [ecx]
mov edx, dword [ecx]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x14]
movzx ecx, byte [ecx + 0x101a8788]
xor ecx, esi
mov ebx, dword [edx]
mov edx, dword [esp + 0x40]
cmp dword [ebx + 4], ecx
mov ebx, dword [esp + 0x4c]
jne 0x100bbe5d
sub edi, edx
test edi, 0x8000
jne 0x100bbe59
cmp edi, edx
jb 0x100bbe1e
add eax, edx
mov ebp, dword [esp + 0x14]
cmp edi, edx
cmovae edx, edi
mov edi, edx
mov ecx, dword [ebp]
mov ecx, dword [ecx + 8]
mov dword [ebp], ecx
mov ecx, dword [esp + 0x10]
add edi, edi
add eax, eax
sub ecx, 1
jne 0x100bbe4f
push ebx
mov dword [ebx], eax
call fcn.100bf4d0
mov eax, dword [ebx]
add esp, 4
mov ecx, dword [ebx + 8]
test edi, 0x8000
je 0x100bbe36
jmp 0x100bbea1
add eax, edx
jmp 0x100bbea9
sub edi, edx
cmp edi, edx
jae 0x100bbe65
add eax, edx
mov ebp, dword [esp + 0x14]
cmp edi, edx
cmovae edi, edx
mov ecx, dword [ebp]
mov ecx, dword [ecx + 0xc]
mov dword [ebp], ecx
mov ecx, dword [esp + 0x10]
nop dword [eax + eax]
add edi, edi
add eax, eax
sub ecx, 1
jne 0x100bbe99
push ebx
mov dword [ebx], eax
call fcn.100bf4d0
mov eax, dword [ebx]
add esp, 4
mov ecx, dword [ebx + 8]
test edi, 0x8000
je 0x100bbe80
mov dword [esp + 0x10], ecx
mov ebp, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
shl esi, 0x19
or esi, 0x400
or dword [ecx - 4], 0x800
or dword [ecx], esi
or dword [ecx + 4], 0x200
or dword [ecx], 0x8000000
mov edx, dword [ecx]
mov dword [esp + 0x40], eax
test edx, 0x40002000
jne 0x100bc236
test edx, 0x3de00
je 0x100bc236
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx + 0xc]
and ecx, dword [esp + 0x24]
and ecx, 0x7fffffff
mov dword [esp + 0x3c], ecx
mov ecx, 0
setne cl
shr edx, 9
mov dword [esp + 0x2c], ecx
and edx, 0x1ef
mov ecx, dword [ebx + 0x6c]
movzx ecx, byte [edx + ecx]
add ecx, 7
cmp byte [esp + 0x58], 1
lea ecx, [ebx + ecx*4]
mov dword [esp + 0x14], ecx
jne 0x100bbf86
mov edx, dword [esp + 0x10]
cmp edx, 0xdeadbeef
jne 0x100bbf51
mov eax, dword [esp + 0x2c]
mov ebp, 7
shl eax, 7
add eax, dword [esp + 0x40]
mov dword [esp + 0x10], ebp
jmp 0x100bc01f
mov esi, dword [esp + 0x2c]
dec edx
mov ecx, edx
mov dword [esp + 0x10], edx
shl esi, cl
add eax, esi
test edx, edx
jne 0x100bc01b
mov ecx, dword [ebx + 0x10]
mov byte [ecx], al
mov eax, dword [ebx + 0x10]
mov cl, byte [eax]
inc eax
mov dword [ebx + 0x10], eax
xor eax, eax
cmp cl, 0xff
setne dl
add edx, 7
jmp 0x100bc017
mov ecx, dword [ecx]
mov esi, dword [esp + 0x2c]
mov edx, dword [ecx]
sub edi, edx
cmp dword [ecx + 4], esi
jne 0x100bbfde
test edi, 0x8000
jne 0x100bbfda
cmp edi, edx
jb 0x100bbfa3
add eax, edx
mov esi, dword [esp + 0x14]
cmp edi, edx
mov ecx, dword [ecx + 8]
cmovae edx, edi
mov edi, edx
mov edx, dword [esp + 0x10]
mov dword [esi], ecx
add edi, edi
add eax, eax
sub edx, 1
jne 0x100bbfd0
push ebx
mov dword [ebx], eax
call fcn.100bf4d0
mov eax, dword [ebx]
add esp, 4
mov edx, dword [ebx + 8]
test edi, 0x8000
je 0x100bbfb7
jmp 0x100bc017
add eax, edx
jmp 0x100bc01f
cmp edi, edx
jae 0x100bbfe4
add eax, edx
mov esi, dword [esp + 0x14]
cmp edi, edx
mov ecx, dword [ecx + 0xc]
cmovae edi, edx
mov edx, dword [esp + 0x10]
mov dword [esi], ecx
add edi, edi
add eax, eax
sub edx, 1
jne 0x100bc00f
push ebx
mov dword [ebx], eax
call fcn.100bf4d0
mov eax, dword [ebx]
add esp, 4
mov edx, dword [ebx + 8]
test edi, 0x8000
je 0x100bbff6
mov dword [esp + 0x10], edx
mov ebp, dword [esp + 0x10]
cmp dword [esp + 0x3c], 0
mov dword [esp + 0x38], eax
je 0x100bc229
mov ecx, dword [esp + 0x18]
mov esi, dword [ecx]
mov edx, esi
mov ecx, dword [ecx - 4]
shr ecx, 2
and ecx, 0x4000000
shr edx, 0x15
mov dword [esp + 0x20], ecx
and edx, 0x10
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx + 4]
and ecx, 0x10000000
or dword [esp + 0x20], ecx
mov ecx, esi
shr dword [esp + 0x20], 1
and ecx, 0x81ffffff
or dword [esp + 0x20], ecx
and esi, 0x15400
mov ecx, dword [esp + 0x20]
shr ecx, 0x10
or ecx, esi
shr ecx, 9
or ecx, edx
mov dword [esp + 0x20], ecx
movzx ecx, byte [ecx + 0x101a8688]
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx + 0xc]
mov esi, edx
mov ecx, dword [esp + 0x50]
and edx, 0x7fffffff
shr esi, 0x1f
mov dword [esp + 0x2c], esi
test ecx, ecx
je 0x100bc0bd
shr edx, cl
and edx, 0x7f
movzx ecx, word [edx*2 + 0x101a8888]
jmp 0x100bc0c8
and edx, 0x7f
movzx ecx, word [edx*2 + 0x101a8988]
mov edx, dword [esp + 0x54]
movsx ecx, cx
add dword [edx], ecx
mov ecx, dword [esp + 0x40]
add ecx, 7
cmp byte [esp + 0x58], 1
lea ecx, [ebx + ecx*4]
mov dword [esp + 0x14], ecx
jne 0x100bc13e
cmp ebp, 0xdeadbeef
jne 0x100bc105
mov eax, esi
mov ebp, 7
shl eax, 7
add eax, dword [esp + 0x38]
mov dword [esp + 0x10], ebp
jmp 0x100bc1e9
dec ebp
mov edx, esi
mov ecx, ebp
mov dword [esp + 0x10], ebp
shl edx, cl
add eax, edx
test ebp, ebp
jne 0x100bc1e9
mov ecx, dword [ebx + 0x10]
xor edx, edx
mov byte [ecx], al
mov eax, dword [ebx + 0x10]
mov cl, byte [eax]
inc eax
mov dword [ebx + 0x10], eax
xor eax, eax
cmp cl, 0xff
setne dl
add edx, 7
mov dword [esp + 0x10], edx
jmp 0x100bc1e9
mov esi, dword [ecx]
mov ecx, dword [esp + 0x20]
mov edx, dword [esi]
sub edi, edx
movzx ecx, byte [ecx + 0x101a8788]
xor ecx, dword [esp + 0x2c]
cmp dword [esi + 4], ecx
jne 0x100bc1a7
test edi, 0x8000
jne 0x100bc1a3
cmp edi, edx
jb 0x100bc166
add eax, edx
mov ecx, dword [esi + 8]
cmp edi, edx
mov esi, dword [esp + 0x14]
cmovae edx, edi
mov edi, edx
mov dword [esi], ecx
mov ecx, dword [esp + 0x10]
nop word [eax + eax]
add edi, edi
add eax, eax
sub ecx, 1
jne 0x100bc199
push ebx
mov dword [ebx], eax
call fcn.100bf4d0
mov eax, dword [ebx]
add esp, 4
mov ecx, dword [ebx + 8]
test edi, 0x8000
je 0x100bc180
jmp 0x100bc1e1
add eax, edx
jmp 0x100bc1e5
cmp edi, edx
jae 0x100bc1ad
add eax, edx
mov ecx, dword [esi + 0xc]
cmp edi, edx
mov esi, dword [esp + 0x14]
cmovae edi, edx
mov dword [esi], ecx
mov ecx, dword [esp + 0x10]
nop
add edi, edi
add eax, eax
sub ecx, 1
jne 0x100bc1d9
push ebx
mov dword [ebx], eax
call fcn.100bf4d0
mov eax, dword [ebx]
add esp, 4
mov ecx, dword [ebx + 8]
test edi, 0x8000
je 0x100bc1c0
mov dword [esp + 0x10], ecx
mov esi, dword [esp + 0x2c]
mov ebp, dword [esp + 0x18]
mov ecx, esi
mov edx, dword [ebx + 0x7c]
shl ecx, 0x1c
or ecx, 0x2000
shl esi, 0x12
or dword [ebp - 4], 0x4000
or esi, 2
or dword [ebp], ecx
or dword [ebp + 4], 0x1000
or dword [ebp + edx*4 + 8], esi
or dword [ebp + edx*4 + 4], 4
or dword [ebp + edx*4 + 0xc], 1
or dword [ebp], 0x40000000
jmp 0x100bc23a
mov ebp, dword [esp + 0x18]
or dword [ebp], 0x40000000
jmp 0x100bc23a
mov ebp, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x30]
mov esi, dword [esp + 0x34]
add ebp, 4
add dword [esp + 0x1c], 0x10
inc esi
mov dword [esp + 0x34], esi
mov dword [esp + 0x18], ebp
cmp esi, ecx
jb 0x100bb4a0
mov esi, dword [esp + 0x28]
add ebp, 8
mov ecx, dword [ebx + 0x80]
add esi, 4
and ecx, 0xfffffffc
mov dword [esp + 0x28], esi
mov dword [esp + 0x18], ebp
cmp esi, ecx
jb 0x100bb480
mov edx, dword [ebx + 0x80]
mov ebp, dword [esp + 0x10]
cmp esi, edx
jae 0x100bc755
xor ecx, ecx
mov dword [esp + 0x34], ecx
cmp dword [ebx + 0x7c], ecx
jbe 0x100bc755
mov esi, dword [esp + 0x18]
mov esi, dword [esi]
test esi, esi
jne 0x100bc2c3
mov esi, dword [esp + 0x1c]
mov ecx, edx
sub ecx, dword [esp + 0x28]
lea esi, [esi + ecx*4]
mov dword [esp + 0x1c], esi
jmp 0x100bc738
mov ebx, dword [esp + 0x4c]
cmp dword [esp + 0x28], edx
jae 0x100bc73c
xor ecx, ecx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x20], ecx
nop dword [eax + eax]
mov dword [esp + 0x40], eax
test ecx, ecx
jne 0x100bc2f7
test byte [esp + 0x5c], 8
mov dword [esp + 0x38], 1
jne 0x100bc2ff
mov dword [esp + 0x38], 0
mov ecx, dword [esp + 0x20]
mov edx, 0x200010
shl edx, cl
mov dword [esp + 0x30], esi
test esi, edx
jne 0x100bc707
mov edx, 0x1ef
mov dword [esp + 0x30], esi
shl edx, cl
test esi, edx
je 0x100bc707
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx]
and ecx, dword [esp + 0x24]
and ecx, 0x7fffffff
mov dword [esp + 0x3c], ecx
mov ecx, 0
setne cl
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x20]
shr esi, cl
mov ecx, dword [ebx + 0x6c]
and esi, 0x1ef
movzx ecx, byte [esi + ecx]
add ecx, 7
cmp byte [esp + 0x58], 1
lea ecx, [ebx + ecx*4]
mov dword [esp + 0x14], ecx
jne 0x100bc3c7
mov edx, dword [esp + 0x10]
cmp edx, 0xdeadbeef
jne 0x100bc392
mov eax, dword [esp + 0x30]
mov ebp, 7
shl eax, 7
add eax, dword [esp + 0x40]
mov dword [esp + 0x10], ebp
jmp 0x100bc460
mov esi, dword [esp + 0x30]
dec edx
mov ecx, edx
mov dword [esp + 0x10], edx
shl esi, cl
add eax, esi
test edx, edx
jne 0x100bc45c
mov ecx, dword [ebx + 0x10]
mov byte [ecx], al
mov eax, dword [ebx + 0x10]
mov cl, byte [eax]
inc eax
mov dword [ebx + 0x10], eax
xor eax, eax
cmp cl, 0xff
setne dl
add edx, 7
jmp 0x100bc458
mov ecx, dword [ecx]
mov esi, dword [esp + 0x30]
mov edx, dword [ecx]
sub edi, edx
cmp dword [ecx + 4], esi
jne 0x100bc41f
test edi, 0x8000
jne 0x100bc41b
cmp edi, edx
jb 0x100bc3e4
add eax, edx
mov esi, dword [esp + 0x14]
cmp edi, edx
mov ecx, dword [ecx + 8]
cmovae edx, edi
mov edi, edx
mov edx, dword [esp + 0x10]
mov dword [esi], ecx
add edi, edi
add eax, eax
sub edx, 1
jne 0x100bc411
push ebx
mov dword [ebx], eax
call fcn.100bf4d0
mov eax, dword [ebx]
add esp, 4
mov edx, dword [ebx + 8]
test edi, 0x8000
je 0x100bc3f8
jmp 0x100bc458
add eax, edx
jmp 0x100bc460
cmp edi, edx
jae 0x100bc425
add eax, edx
mov esi, dword [esp + 0x14]
cmp edi, edx
mov ecx, dword [ecx + 0xc]
cmovae edi, edx
mov edx, dword [esp + 0x10]
mov dword [esi], ecx
add edi, edi
add eax, eax
sub edx, 1
jne 0x100bc450
push ebx
mov dword [ebx], eax
call fcn.100bf4d0
mov eax, dword [ebx]
add esp, 4
mov edx, dword [ebx + 8]
test edi, 0x8000
je 0x100bc437
mov dword [esp + 0x10], edx
mov ebp, dword [esp + 0x10]
cmp dword [esp + 0x3c], 0
mov dword [esp + 0x44], eax
je 0x100bc6f2
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x20]
mov ecx, dword [edx]
mov edx, dword [edx - 4]
mov dword [esp + 0x40], ecx
lea ecx, [esi + 0x13]
shr edx, cl
mov ecx, dword [esp + 0x18]
and edx, 1
mov dword [esp + 0x14], edx
mov edx, dword [ecx + 4]
lea ecx, [esi + 0x11]
mov esi, dword [esp + 0x40]
shr edx, cl
mov ecx, dword [esp + 0x20]
and edx, 4
or dword [esp + 0x14], edx
mov edx, esi
shr edx, cl
mov ecx, dword [esp + 0x2c]
and edx, 0xaa
or dword [esp + 0x14], edx
test ecx, ecx
mov edx, esi
lea ecx, [ecx + ecx*2]
jne 0x100bc4c7
shr edx, 0xe
jmp 0x100bc4d4
mov dword [esp + 0x40], ecx
add ecx, 0xc
shr edx, cl
mov ecx, dword [esp + 0x40]
add ecx, 0x10
and edx, 0x10
shr esi, cl
and esi, 0x40
or esi, edx
or esi, dword [esp + 0x14]
movzx ecx, byte [esi + 0x101a8688]
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx]
mov ecx, edx
shr ecx, 0x1f
and edx, 0x7fffffff
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x50]
test ecx, ecx
je 0x100bc51c
shr edx, cl
and edx, 0x7f
movzx ecx, word [edx*2 + 0x101a8888]
jmp 0x100bc527
and edx, 0x7f
movzx ecx, word [edx*2 + 0x101a8988]
mov edx, dword [esp + 0x54]
movsx ecx, cx
add dword [edx], ecx
mov ecx, dword [esp + 0x40]
add ecx, 7
cmp byte [esp + 0x58], 1
lea ecx, [ebx + ecx*4]
mov dword [esp + 0x14], ecx
jne 0x100bc5a1
mov esi, dword [esp + 0x30]
cmp ebp, 0xdeadbeef
jne 0x100bc568
mov eax, esi
mov ebp, 7
shl eax, 7
add eax, dword [esp + 0x44]
mov dword [esp + 0x10], ebp
jmp 0x100bc65a
dec ebp
mov edx, esi
mov ecx, ebp
mov dword [esp + 0x10], ebp
shl edx, cl
add eax, edx
test ebp, ebp
jne 0x100bc65a
mov ecx, dword [ebx + 0x10]
xor edx, edx
mov byte [ecx], al
mov eax, dword [ebx + 0x10]
mov cl, byte [eax]
inc eax
mov dword [ebx + 0x10], eax
xor eax, eax
cmp cl, 0xff
setne dl
add edx, 7
mov dword [esp + 0x10], edx
jmp 0x100bc65a
mov ecx, dword [ecx]
mov ebp, dword [esp + 0x14]
mov edx, dword [ecx]
mov ebx, dword [ebp]
movzx ecx, byte [esi + 0x101a8788]
mov esi, dword [esp + 0x30]
xor ecx, esi
cmp dword [ebx + 4], ecx
mov ebx, dword [esp + 0x4c]
jne 0x100bc617
sub edi, edx
test edi, 0x8000
jne 0x100bc613
cmp edi, edx
jb 0x100bc5d2
add eax, edx
mov ebp, dword [esp + 0x14]
cmp edi, edx
cmovae edx, edi
mov edi, edx
mov ecx, dword [ebp]
mov ecx, dword [ecx + 8]
mov dword [ebp], ecx
mov ecx, dword [esp + 0x10]
nop word [eax + eax]
add edi, edi
add eax, eax
sub ecx, 1
jne 0x100bc609
push ebx
mov dword [ebx], eax
call fcn.100bf4d0
mov eax, dword [ebx]
add esp, 4
mov ecx, dword [ebx + 8]
test edi, 0x8000
je 0x100bc5f0
jmp 0x100bc656
add eax, edx
jmp 0x100bc65a
sub edi, edx
cmp edi, edx
jae 0x100bc61f
add eax, edx
mov ebp, dword [esp + 0x14]
cmp edi, edx
cmovae edi, edx
mov ecx, dword [ebp]
mov ecx, dword [ecx + 0xc]
mov dword [ebp], ecx
mov ecx, dword [esp + 0x10]
add edi, edi
add eax, eax
sub ecx, 1
jne 0x100bc64e
push ebx
mov dword [ebx], eax
call fcn.100bf4d0
mov eax, dword [ebx]
add esp, 4
mov ecx, dword [ebx + 8]
test edi, 0x8000
je 0x100bc635
mov dword [esp + 0x10], ecx
mov ecx, dword [ebx + 0x7c]
mov edx, 0x20
add ecx, 2
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x20]
shl edx, cl
mov ecx, dword [esp + 0x18]
or dword [ecx - 4], edx
mov edx, esi
mov ecx, dword [esp + 0x20]
shl edx, 0x13
or edx, 0x10
shl edx, cl
mov ecx, dword [esp + 0x18]
or dword [ecx], edx
mov edx, 8
mov ecx, dword [esp + 0x20]
shl edx, cl
mov ecx, dword [esp + 0x18]
or dword [ecx + 4], edx
mov ecx, dword [esp + 0x2c]
test ecx, ecx
jne 0x100bc6d2
cmp dword [esp + 0x38], ecx
jne 0x100bc6f2
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x18]
shl ecx, 2
sub edx, ecx
shl esi, 0x1f
or esi, 0x10000
or dword [edx], esi
or dword [edx - 4], 0x20000
or dword [edx + 4], 0x8000
jmp 0x100bc6f2
cmp ecx, 3
jne 0x100bc6f2
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x18]
shl esi, 0x12
or esi, 2
or dword [edx + ecx*4], esi
or dword [edx + ecx*4 - 4], 4
or dword [edx + ecx*4 + 4], 1
mov ecx, dword [esp + 0x20]
mov edx, 0x200000
shl edx, cl
mov ecx, dword [esp + 0x18]
or dword [ecx], edx
mov esi, dword [ecx]
jmp 0x100bc70b
mov esi, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
add dword [esp + 0x20], 3
inc ecx
add dword [esp + 0x1c], 4
mov edx, dword [ebx + 0x80]
mov ebp, dword [esp + 0x10]
mov dword [esp + 0x2c], ecx
add ecx, dword [esp + 0x28]
cmp ecx, edx
mov ecx, dword [esp + 0x2c]
jb 0x100bc2e0
mov ecx, dword [esp + 0x34]
mov esi, dword [esp + 0x18]
inc ecx
add esi, 4
mov dword [esp + 0x34], ecx
mov dword [esp + 0x18], esi
cmp ecx, dword [ebx + 0x7c]
jb 0x100bc2a7
mov ecx, dword [esp + 0x14]
mov dword [ebx + 4], edi
pop edi
pop esi
mov dword [ebx + 8], ebp
pop ebp
mov dword [ebx + 0x68], ecx
mov dword [ebx], eax
pop ebx
add esp, 0x38
ret