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

Disassembly:
mov eax, 0x100ea67a
call fcn.100e0410
sub esp, 0x194
push ebx
push esi
mov esi, ecx
mov eax, 0x4000
push edi
mov dword [ebp - 0x28], esi
mov ecx, dword [esi + 4]
mov dword [ebp - 0x10], esp
cmp ecx, eax
jae 0x100997fd
xor edi, edi
push eax
mov dword [esi + 8], edi
mov ecx, esi
mov dword [esi + 0xc], edi
call fcn.10097624
cmp dword [esi], edi
jne 0x100997fd
mov eax, 0x8007000e
jmp 0x1009a67d
and byte [esi + 0x20], 0
and byte [ebp - 0x13], 0
xor edi, edi
cmp byte [esi + 0x85], 0
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x60], edi
mov dword [ebp - 0x5c], edi
mov dword [ebp - 0x54], edi
mov dword [ebp - 0x50], edi
mov dword [ebp - 0x58], edi
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x3c], edi
je 0x10099c1e
cmp byte [esi + 0x86], 0
je 0x10099c1e
mov eax, dword [esi + 0x48]
mov ecx, dword [esi + 0x4c]
add eax, 4
adc ecx, edi
push ecx
push eax
push dword [esi + 0x68]
mov ecx, esi
call fcn.10096ec5
mov eax, dword [esi + 0x24]
and byte [esi + 0x22], 0
cmp eax, 0x6064b50
jne 0x100999b7
mov ecx, esi
mov byte [esi + 0x79], 1
call fcn.1009798b
mov edi, edx
mov ebx, eax
test edi, edi
ja 0x10099884
jb 0x10099a9b
cmp ebx, 0x2c
jb 0x10099a9b
cmp edi, 0x40000000
jb 0x1009989a
ja 0x10099a9b
test ebx, ebx
jae 0x10099a9b
lea eax, [ebp - 0x1a0]
push 0x2c
push eax
mov ecx, esi
call fcn.10097904
push 0x30
lea eax, [ebp - 0xfc]
push 0
push eax
call sub.MSVCRT.dll_memset
and byte [ebp - 0xfc], 0
add esp, 0xc
lea eax, [ebp - 0x1a0]
lea ecx, [ebp - 0xfc]
push eax
call fcn.10096cfa
cmp dword [ebp - 0xf4], 0
jne 0x10099a9b
cmp dword [ebp - 0xf0], 0
jne 0x10099a9b
mov eax, dword [ebp - 0xec]
or eax, dword [ebp - 0xe8]
jne 0x10099a9b
mov eax, dword [ebp - 0xe4]
or eax, dword [ebp - 0xe0]
jne 0x10099a9b
mov eax, dword [ebp - 0xdc]
or eax, dword [ebp - 0xd8]
jne 0x10099a9b
mov eax, dword [ebp - 0xd4]
or eax, dword [ebp - 0xd0]
jne 0x10099a9b
sub ebx, 0x2c
push 0
sbb edi, 0
mov ecx, esi
push edi
push ebx
call fcn.100979ee
test eax, eax
jne 0x1009a67d
mov ecx, esi
call fcn.100979a3
cmp dword [esi + 0x24], 0x7064b50
jne 0x10099a9b
lea eax, [ebp - 0x9c]
push 0x10
push eax
mov ecx, esi
call fcn.10097904
cmp dword [ebp - 0x9c], 0
jne 0x10099a9b
cmp dword [ebp - 0x90], 0
jne 0x10099a9b
mov eax, dword [ebp - 0x98]
or eax, dword [ebp - 0x94]
jne 0x10099a9b
mov ecx, esi
call fcn.100979a3
mov eax, dword [esi + 0x24]
cmp eax, 0x6054b50
je 0x100999be
jmp 0x10099a9b
cmp eax, 0x6054b50
jne 0x10099a29
lea eax, [ebp - 0x9c]
push 0x12
push eax
mov ecx, esi
call fcn.10097904
lea eax, [ebp - 0x9c]
lea ecx, [ebp - 0x88]
push eax
call fcn.10096c73
lea ecx, [ebp - 0x88]
call fcn.1009728a
test al, al
je 0x10099a9b
push dword [esi + 0x4c]
mov eax, dword [esi + 0x40]
mov dword [esi + 0x38], eax
mov eax, dword [esi + 0x44]
push dword [esi + 0x48]
mov ecx, esi
mov dword [esi + 0x3c], eax
mov byte [esi + 0x78], 1
push dword [esi + 0x68]
call fcn.10096ec5
test eax, eax
jne 0x1009a67d
mov ecx, esi
call fcn.100979a3
xor edi, edi
jmp 0x10099c51
lea ecx, [ebp - 0x174]
call fcn.10097ff2
and byte [ebp - 0x100], 0
and dword [ebp - 4], 0
lea eax, [ebp - 0x174]
push eax
mov ecx, esi
mov byte [ebp - 4], 2
call fcn.10097cf6
test al, al
je 0x10099a8c
lea eax, [ebp - 0x60]
mov ecx, esi
push eax
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp - 0x58]
push eax
mov dword [ebp - 4], 1
push dword [ebp + 8]
mov byte [esi + 0x78], 1
call fcn.10098b1d
test eax, eax
mov dword [ebp - 0x18], eax
jne 0x10099ab3
mov ecx, esi
call fcn.100979a3
jmp 0x10099ab3
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x174]
call fcn.1009534d
push 1
pop eax
jmp 0x1009a67d
and dword [ebp - 4], 0
push 1
pop eax
cmp dword [ebp - 0x18], eax
je 0x10099c0a
cmp dword [ebp - 0x18], 0
je 0x10099ae0
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x174]
call fcn.1009534d
mov eax, dword [ebp - 0x18]
jmp 0x1009a67d
mov ecx, dword [ebp + 8]
mov ebx, dword [ecx + 4]
test ebx, ebx
jne 0x10099af2
mov dword [ebp - 0x18], eax
jmp 0x10099c0a
mov eax, dword [esi + 0x4c]
mov edx, dword [esi + 0x3c]
mov ecx, dword [esi + 0x48]
mov edi, dword [esi + 0x38]
cmp eax, edx
jg 0x10099b14
jl 0x10099b08
cmp ecx, edi
jae 0x10099b14
mov dword [ebp - 0x18], 1
jmp 0x10099c0a
sub ecx, edi
sbb eax, edx
or edi, 0xffffffff
cmp byte [esi + 0x7b], 0
mov dword [ebp - 0x12c], ecx
mov dword [ebp - 0x128], eax
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x7c], edi
jne 0x10099b46
mov ecx, dword [ebp + 8]
lea edx, [ebp - 0x174]
call fcn.1009a68e
jmp 0x10099bc1
and dword [ebp - 0x1c], 0
test ebx, ebx
jbe 0x10099b08
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x20]
cmp edx, dword [ebp - 0x154]
jne 0x10099b82
mov eax, dword [ecx + 0x48]
cmp eax, dword [ebp - 0x12c]
jne 0x10099b82
mov eax, dword [ecx + 0x4c]
cmp eax, dword [ebp - 0x128]
jne 0x10099b82
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x1c], 0
je 0x10099ba0
cmp edx, dword [ebp - 0x24]
jb 0x10099ba0
jne 0x10099bac
mov eax, dword [ecx + 0x4c]
cmp eax, edi
ja 0x10099bac
jb 0x10099ba0
mov eax, dword [ecx + 0x48]
cmp eax, dword [ebp - 0x7c]
jae 0x10099bac
mov eax, dword [ecx + 0x48]
mov edi, dword [ecx + 0x4c]
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x7c], eax
inc dword [ebp - 0x1c]
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x1c]
add dword [ebp - 0x30], 4
cmp ecx, dword [eax + 4]
jb 0x10099b56
mov eax, dword [ebp - 0x28]
cmp eax, 0xffffffff
je 0x10099b08
mov ebx, dword [ebp + 8]
mov ecx, dword [ebx]
mov edx, dword [ecx + eax*4]
lea ecx, [ebp - 0x174]
call fcn.10098054
test al, al
je 0x10099b08
cmp byte [esi + 0x7b], 0
mov byte [esi + 0x6c], 1
je 0x10099bfa
mov eax, dword [ebp - 0x7c]
mov dword [esi + 0x60], eax
mov dword [esi + 0x64], edi
jmp 0x10099c0a
mov eax, dword [ebx]
mov eax, dword [eax]
mov ecx, dword [eax + 0x48]
mov dword [esi + 0x60], ecx
mov eax, dword [eax + 0x4c]
mov dword [esi + 0x64], eax
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x174]
call fcn.1009534d
jmp 0x10099a22
lea eax, [ebp - 0x60]
mov ecx, esi
push eax
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp - 0x58]
push eax
mov byte [esi + 0x78], 1
push dword [ebp + 8]
call fcn.10098b1d
cmp eax, edi
mov dword [ebp - 0x18], eax
jne 0x10099c48
mov ecx, esi
call fcn.100979a3
jmp 0x10099c51
cmp eax, 1
jne 0x1009a67d
mov dword [ebp - 0x4c], edi
mov dword [ebp - 0x48], edi
mov dword [ebp - 0x44], edi
mov eax, dword [ebp + 8]
and byte [ebp - 0x1d], 0
cmp dword [ebp - 0x18], edi
mov dword [ebp - 4], 5
mov eax, dword [eax + 4]
mov dword [ebp - 0x1c], eax
je 0x10099f29
mov ecx, dword [ebp + 8]
call fcn.1009572c
and byte [esi + 0x20], 0
and byte [esi + 0x7c], 0
and byte [esi + 0x7d], 0
and byte [esi + 0x7e], 0
xor ebx, ebx
mov byte [ebp - 0x13], 1
mov dword [esi + 8], ebx
mov dword [esi + 0xc], ebx
cmp byte [esi + 0x85], bl
mov dword [esi + 0x38], ebx
mov dword [esi + 0x3c], ebx
jne 0x10099cda
cmp byte [esi + 0x87], bl
jne 0x10099cb9
push 1
pop edi
jmp 0x1009a561
cmp dword [esi + 0xac], ebx
jne 0x10099cb1
push dword [esi + 0x4c]
push dword [esi + 0x48]
push ebx
mov ecx, esi
call fcn.10096ec5
cmp eax, ebx
je 0x10099cf9
mov edi, eax
jmp 0x1009a561
mov eax, dword [esi + 0x40]
or eax, dword [esi + 0x44]
je 0x10099cee
mov eax, dword [esi + 0x48]
mov dword [esi + 0x38], eax
mov eax, dword [esi + 0x4c]
mov dword [esi + 0x3c], eax
push dword [esi + 0x4c]
push dword [esi + 0x48]
push dword [esi + 0x68]
jmp 0x10099cc8
mov dword [esi + 0x18], ebx
mov ecx, esi
mov dword [esi + 0x1c], ebx
call fcn.100979a3
push dword [ebp + 8]
mov ecx, esi
mov byte [esi + 0x80], 1
call fcn.10098c57
cmp eax, ebx
jne 0x10099cd3
mov edi, dword [esi + 0x24]
mov ebx, 0x2014b50
cmp edi, ebx
je 0x10099ddb
mov eax, dword [ebp + 8]
cmp dword [eax + 4], 0
je 0x10099cb1
cmp edi, 0x18
mov byte [ebp - 0x11], 1
jb 0x10099dc9
cmp edi, 0x100000
ja 0x10099dc9
mov ecx, esi
call fcn.10097977
test eax, eax
jne 0x10099dc9
and dword [ebp - 0x2c], eax
and dword [ebp - 0x28], eax
push edi
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 6
call fcn.100045db
push edi
mov ecx, esi
push dword [ebp - 0x2c]
call fcn.10097904
mov ecx, esi
call fcn.100979a3
mov eax, dword [ebp - 0x2c]
cmp dword [esi + 0x24], ebx
lea eax, [eax + edi - 0x18]
jne 0x10099db6
mov edx, dword [eax]
xor ecx, ecx
cmp edx, edi
jne 0x10099db6
mov edx, dword [eax + 4]
cmp edx, ecx
jne 0x10099db6
push 0x10
add eax, 8
push str.APK_Sig_Block_42
push eax
call sub.MSVCRT.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x10099db6
and byte [ebp - 0x11], al
mov byte [esi + 0x7a], 1
push dword [ebp - 0x2c]
mov byte [ebp - 4], 5
call fcn.100035fc
cmp byte [ebp - 0x11], 0
pop ecx
je 0x10099ddb
mov byte [esi + 0x82], 1
mov byte [esi + 0x7c], 1
xor edi, edi
jmp 0x1009a561
mov eax, dword [esi + 0x10]
mov byte [esi + 0x20], 1
mov ecx, dword [esi + 0xc]
xor edx, edx
sub eax, ecx
mov ecx, dword [esi + 0x14]
sbb ecx, edx
mov edx, dword [esi + 8]
xor edi, edi
add eax, edx
adc ecx, edi
sub eax, 4
mov ebx, dword [esi + 0x18]
mov dword [ebp - 0x40], eax
mov eax, dword [esi + 0x9c]
sbb ecx, edi
mov dword [ebp - 0x58], eax
mov eax, dword [esi + 0x1c]
mov dword [ebp - 0x3c], ecx
lea ecx, [ebp - 0x174]
mov dword [ebp - 0x30], eax
call fcn.10097ff2
and byte [ebp - 0x100], 0
lea eax, [ebp - 0x174]
mov ecx, esi
push eax
mov byte [ebp - 4], 7
call fcn.100984e7
mov edi, eax
test edi, edi
jne 0x10099eca
lea ecx, [ebp - 0x4c]
call fcn.10053de9
lea eax, [ebp - 0x174]
lea ecx, [ebp - 0x4c]
push eax
call fcn.1009ac8a
mov ecx, dword [esi + 0x34]
test ecx, ecx
je 0x10099e94
test word [ebp - 0x48], 0xfff
jne 0x10099e94
mov eax, dword [ebp + 8]
and dword [ebp - 0x28], edi
lea edx, [ebp - 0x7c]
mov eax, dword [eax + 4]
push edx
mov dword [ebp - 0x2c], eax
mov eax, dword [esi + 0x18]
mov dword [ebp - 0x7c], eax
mov eax, dword [esi + 0x1c]
lea edx, [ebp - 0x2c]
mov dword [ebp - 0x78], eax
mov eax, dword [ecx]
push edx
push ecx
call dword [eax + 0x10]
mov edi, eax
test edi, edi
jne 0x10099eca
mov ecx, esi
call fcn.100979a3
cmp dword [esi + 0x24], 0x2014b50
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x174]
jne 0x10099ede
call fcn.1009534d
lea ecx, [ebp - 0x174]
call fcn.10097ff2
and byte [ebp - 0x100], 0
jmp 0x10099e26
lea ecx, [ebp - 0x174]
mov byte [ebp - 4], 5
call fcn.1009534d
jmp 0x1009a561
call fcn.1009534d
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x1c]
sub eax, ebx
mov edx, dword [ebp - 0x3c]
sbb ecx, dword [ebp - 0x30]
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x48]
mov byte [ebp - 0x1d], 1
mov dword [ebp - 0x5c], ecx
mov ecx, dword [ebp - 0x40]
sub ecx, dword [esi + 0x38]
mov dword [ebp - 0x1c], eax
sbb edx, dword [esi + 0x3c]
mov dword [ebp - 0x54], ecx
test eax, eax
mov dword [ebp - 0x50], edx
je 0x10099f29
mov eax, dword [ebp - 0x4c]
mov byte [esi + 0x6c], 1
mov eax, dword [eax]
mov ecx, dword [eax + 0x48]
mov dword [esi + 0x60], ecx
mov eax, dword [eax + 0x4c]
mov dword [esi + 0x64], eax
xor edi, edi
push 0x30
lea eax, [ebp - 0xcc]
push edi
push eax
call sub.MSVCRT.dll_memset
mov edx, dword [esi + 0xc]
mov eax, dword [esi + 8]
and byte [ebp - 0xcc], 0
and byte [ebp - 0x11], 0
add esp, 0xc
xor ebx, ebx
xor ecx, ecx
sub eax, edx
sbb ecx, ebx
add eax, dword [esi + 0x10]
mov dword [ebp - 0x94], edi
mov dword [ebp - 0x90], edi
adc ecx, dword [esi + 0x14]
sub eax, 4
mov dword [ebp - 0x34], eax
sbb ecx, edi
or dword [ebp - 0x28], 0xffffffff
cmp dword [esi + 0x24], 0x6064b50
mov dword [ebp - 0x30], ecx
jne 0x1009a03c
mov eax, dword [esi + 0x9c]
mov ecx, esi
mov dword [ebp - 0x28], eax
mov byte [ebp - 0x11], 1
mov byte [esi + 0x79], 1
call fcn.1009798b
mov edi, edx
mov ebx, eax
test edi, edi
ja 0x10099fa9
cmp ebx, 0x2c
jb 0x1009a006
cmp edi, 0x40000000
ja 0x1009a006
jb 0x10099fb7
test ebx, ebx
jae 0x1009a006
lea eax, [ebp - 0x1a0]
push 0x2c
push eax
mov ecx, esi
call fcn.10097904
lea eax, [ebp - 0x1a0]
lea ecx, [ebp - 0xcc]
push eax
call fcn.10096cfa
mov eax, dword [ebp + 8]
sub ebx, 0x2c
sbb edi, 0
mov ecx, esi
push dword [eax + 4]
push edi
push ebx
call fcn.100979ee
test eax, eax
jne 0x10099cd3
mov ecx, esi
call fcn.100979a3
cmp dword [esi + 0x24], 0x7064b50
je 0x1009a011
xor edi, edi
mov byte [esi + 0x7c], 1
jmp 0x1009a561
lea eax, [ebp - 0x84]
push 0x10
push eax
mov ecx, esi
call fcn.10097904
mov eax, dword [ebp - 0x80]
mov ecx, esi
mov dword [ebp - 0x94], eax
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 0x90], eax
call fcn.100979a3
xor edi, edi
cmp dword [esi + 0x24], 0x6054b50
mov bl, byte [ebp - 0x11]
jne 0x1009a66b
and byte [esi + 0x22], 0
lea eax, [ebp - 0x88]
push 0x12
push eax
mov ecx, esi
call fcn.10097904
lea eax, [ebp - 0x88]
lea ecx, [ebp - 0x74]
push eax
call fcn.10096c73
test bl, bl
je 0x1009a07b
cmp word [ebp - 0x74], 0xffff
je 0x1009a085
movzx eax, word [ebp - 0x74]
mov dword [ebp - 0xc4], eax
test bl, bl
je 0x1009a091
cmp word [ebp - 0x72], 0xffff
je 0x1009a09b
movzx eax, word [ebp - 0x72]
mov dword [ebp - 0xc0], eax
test bl, bl
je 0x1009a0a7
cmp word [ebp - 0x70], 0xffff
je 0x1009a0b8
movzx eax, word [ebp - 0x70]
cdq
mov dword [ebp - 0xbc], eax
mov dword [ebp - 0xb8], edx
test bl, bl
je 0x1009a0c4
cmp word [ebp - 0x6e], 0xffff
je 0x1009a0d5
movzx eax, word [ebp - 0x6e]
cdq
mov dword [ebp - 0xb4], eax
mov dword [ebp - 0xb0], edx
test bl, bl
je 0x1009a0df
cmp dword [ebp - 0x6c], 0xffffffff
je 0x1009a0ee
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0xa8], edi
mov dword [ebp - 0xac], eax
test bl, bl
je 0x1009a0f8
cmp dword [ebp - 0x68], 0xffffffff
je 0x1009a107
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0xa0], edi
mov dword [ebp - 0xa4], eax
mov ecx, dword [ebp - 0x60]
mov byte [ebp - 0x12], 1
cmp dword [ebp - 0xac], ecx
je 0x1009a11a
and byte [ebp - 0x12], 0
test bl, bl
je 0x1009a14a
mov edx, dword [ebp - 0xb4]
xor eax, eax
cmp edx, dword [ebp - 0x1c]
jne 0x1009a146
cmp dword [ebp - 0xb0], eax
jne 0x1009a146
cmp dword [ebp - 0xac], ecx
jne 0x1009a146
mov eax, dword [ebp - 0xa8]
cmp eax, dword [ebp - 0x5c]
je 0x1009a14a
and byte [ebp - 0x12], 0
cmp byte [esi + 0x87], 0
je 0x1009a174
mov eax, dword [ebp - 0xc0]
cmp dword [ebp - 0x58], eax
je 0x1009a162
mov byte [esi + 0x7c], 1
mov ebx, dword [ebp + 8]
cmp byte [ebp - 0x12], 0
jne 0x1009a2b9
jmp 0x1009a2b5
cmp byte [ebp - 0x1d], 0
je 0x1009a162
cmp byte [ebp - 0x12], 0
je 0x1009a2b2
mov edi, dword [esi + 0x38]
mov edx, dword [esi + 0x3c]
test bl, bl
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x78], edx
je 0x1009a1fb
mov eax, dword [ebp - 0x28]
cmp eax, dword [esi + 0xa8]
jne 0x1009a26e
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x30]
sub ecx, dword [ebp - 0x94]
sbb eax, dword [ebp - 0x90]
cmp eax, dword [ebp - 0x30]
jg 0x1009a26e
jl 0x1009a1c9
cmp ecx, dword [ebp - 0x34]
ja 0x1009a26e
cmp byte [ebp - 0x13], 0
je 0x1009a1e3
cmp eax, dword [esi + 0x4c]
jl 0x1009a1e3
jg 0x1009a26a
cmp ecx, dword [esi + 0x48]
ja 0x1009a26a
mov edx, dword [ebp - 0x40]
mov dword [esi + 0x38], ecx
sub edx, ecx
mov ecx, dword [ebp - 0x3c]
sbb ecx, eax
mov dword [esi + 0x3c], eax
mov dword [ebp - 0x54], edx
mov dword [ebp - 0x50], ecx
jmp 0x1009a26e
cmp dword [ebp - 0x1c], 0
je 0x1009a26e
mov eax, dword [ebp - 0x58]
cmp eax, dword [esi + 0xa8]
jne 0x1009a26e
mov ecx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x3c]
sub ecx, dword [ebp - 0xa4]
sbb eax, dword [ebp - 0xa0]
cmp eax, dword [ebp - 0x3c]
jg 0x1009a26a
jl 0x1009a22a
cmp ecx, dword [ebp - 0x40]
ja 0x1009a26a
cmp byte [ebp - 0x13], 0
je 0x1009a250
cmp eax, dword [esi + 0x4c]
jl 0x1009a250
jg 0x1009a23c
cmp ecx, dword [esi + 0x48]
jbe 0x1009a250
sub ecx, edi
sbb eax, edx
test ecx, ecx
mov dword [ebp - 0x3c], eax
jne 0x1009a26a
mov byte [esi + 0x83], 1
jmp 0x1009a26e
mov dword [esi + 0x38], ecx
mov dword [esi + 0x3c], eax
mov eax, dword [ebp - 0xa4]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0xa0]
mov dword [ebp - 0x50], eax
jmp 0x1009a26e
and byte [ebp - 0x12], 0
cmp byte [ebp - 0x13], 0
je 0x1009a162
mov edx, dword [ebp - 0x7c]
mov edi, dword [ebp - 0x78]
sub edx, dword [esi + 0x38]
sbb edi, dword [esi + 0x3c]
mov eax, edx
or eax, edi
je 0x1009a162
mov ebx, dword [ebp + 8]
xor ecx, ecx
cmp dword [ebx + 4], ecx
jbe 0x1009a165
mov eax, dword [ebx]
mov eax, dword [eax + ecx*4]
add dword [eax + 0x48], edx
adc dword [eax + 0x4c], edi
inc ecx
cmp ecx, dword [ebx + 4]
jb 0x1009a29c
jmp 0x1009a165
mov ebx, dword [ebp + 8]
mov byte [esi + 0x7c], 1
mov eax, dword [ebp - 0xc4]
cmp byte [esi + 0x87], 0
mov dword [esi + 0x8c], eax
jne 0x1009a32f
xor edi, edi
cmp eax, edi
jne 0x1009a2fd
cmp byte [esi + 0xa6], 0
lea ecx, [esi + 0xa6]
je 0x1009a2fd
cmp byte [esi + 0xa2], 0
je 0x1009a2fd
lea eax, [esi + 0xc4]
mov dword [eax + 4], edi
mov eax, dword [eax]
mov word [eax], di
and byte [ecx], 0
cmp byte [ebp - 0x13], 0
je 0x1009a326
cmp dword [esi + 0x8c], edi
je 0x1009a326
xor ecx, ecx
cmp dword [ebx + 4], edi
jbe 0x1009a326
mov eax, dword [ebx]
mov edx, dword [esi + 0x8c]
mov eax, dword [eax + ecx*4]
inc ecx
mov dword [eax + 0x20], edx
cmp ecx, dword [ebx + 4]
jb 0x1009a312
mov byte [esi + 0x88], 1
jmp 0x1009a331
xor edi, edi
cmp byte [ebp - 0x11], 0
je 0x1009a3c1
cmp dword [ebp - 0xc4], edi
jne 0x1009a367
mov eax, dword [esi + 0x38]
mov ecx, dword [esi + 0x3c]
add eax, dword [ebp - 0x94]
adc ecx, dword [ebp - 0x90]
cmp dword [ebp - 0x34], eax
jne 0x1009a66b
cmp dword [ebp - 0x30], ecx
jne 0x1009a66b
mov ecx, dword [ebp - 0xb4]
xor eax, eax
cmp ecx, dword [ebp - 0x1c]
jne 0x1009a66b
cmp dword [ebp - 0xb0], eax
jne 0x1009a66b
mov eax, dword [ebp - 0xac]
cmp eax, dword [ebp - 0x60]
jne 0x1009a66b
mov eax, dword [ebp - 0xa8]
cmp eax, dword [ebp - 0x5c]
jne 0x1009a66b
mov eax, dword [ebp - 0xa4]
cmp eax, dword [ebp - 0x54]
jne 0x1009a3b8
mov eax, dword [ebp - 0xa0]
cmp eax, dword [ebp - 0x50]
je 0x1009a3c1
cmp dword [ebx + 4], edi
jne 0x1009a66b
cmp byte [ebp - 0x12], 0
je 0x1009a5b0
cmp dword [ebp - 0x48], edi
je 0x1009a5b0
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x30], edi
mov byte [ebp - 4], 8
mov dword [ebp - 0x24], edi
mov byte [esi + 0x81], 1
mov dword [ebp - 0x18], edi
jbe 0x1009a574
mov ecx, dword [esi + 0x34]
test ecx, ecx
je 0x1009a42d
test word [ebp - 0x18], 0x3fff
jne 0x1009a42d
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x34]
and dword [ebp - 0x3c], 0
mov eax, dword [eax + 4]
add edx, eax
mov dword [ebp - 0x40], edx
mov eax, dword [ecx]
lea edx, [esi + 0x18]
push edx
lea edx, [ebp - 0x40]
push edx
push ecx
call dword [eax + 0x10]
mov edi, eax
test edi, edi
jne 0x1009a558
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x18]
or dword [ebp - 0x28], 0xffffffff
mov edi, dword [eax + ecx*4]
mov eax, dword [ebp - 0x24]
cmp eax, 0xffffffff
je 0x1009a495
mov ecx, dword [ebp + 8]
cmp eax, dword [ecx + 4]
jae 0x1009a495
mov ecx, dword [ecx]
mov ecx, dword [ecx + eax*4]
mov eax, dword [ecx + 0x20]
cmp eax, dword [edi + 0x20]
jne 0x1009a489
mov edx, dword [edi + 0x48]
mov eax, dword [ecx + 0x48]
mov ebx, dword [edi + 0x4c]
cmp eax, edx
jne 0x1009a46b
mov eax, dword [ecx + 0x4c]
cmp eax, ebx
je 0x1009a481
cmp byte [esi + 0x83], 0
je 0x1009a489
mov ecx, dword [ecx + 0x48]
xor eax, eax
cmp ecx, edx
jne 0x1009a489
cmp eax, ebx
jne 0x1009a489
mov eax, dword [ebp - 0x24]
inc dword [ebp - 0x24]
jmp 0x1009a490
or dword [ebp - 0x24], 0xffffffff
mov eax, dword [ebp - 0x28]
cmp eax, 0xffffffff
jne 0x1009a4d3
mov ecx, dword [ebp + 8]
mov edx, edi
call fcn.1009a68e
cmp eax, 0xffffffff
jne 0x1009a4d3
lea ecx, [ebp - 0x38]
call fcn.10053de9
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x38]
mov edx, dword [ebp - 0x18]
inc dword [ebp - 0x34]
mov dword [ecx + eax*4], edx
mov byte [esi + 0x7c], 1
inc dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x48]
jb 0x1009a3f4
jmp 0x1009a574
mov ecx, dword [ebp + 8]
lea edx, [edi + 0x24]
mov ecx, dword [ecx]
mov ebx, dword [ecx + eax*4]
lea ecx, [ebx + 0x24]
call fcn.100721e7
test al, al
jne 0x1009a4bb
mov eax, dword [ebx + 0x10]
cmp eax, dword [edi + 0x10]
jne 0x1009a4bb
mov eax, dword [ebx + 0x14]
cmp eax, dword [edi + 0x14]
jne 0x1009a4bb
mov eax, dword [ebx + 8]
cmp eax, dword [edi + 8]
jne 0x1009a4bb
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi + 0xc]
jne 0x1009a4bb
mov edx, edi
mov ecx, ebx
call fcn.100980f5
test al, al
je 0x1009a4bb
mov eax, dword [ebx + 0x1c]
cmp eax, dword [edi + 0x1c]
jne 0x1009a4bb
mov ax, word [edi + 0x40]
lea ecx, [ebx + 0x50]
mov word [ebx + 0x40], ax
lea eax, [edi + 0x50]
push eax
call fcn.1009818e
mov ax, word [edi + 0x42]
lea ecx, [ebx + 0x60]
mov word [ebx + 0x42], ax
mov eax, dword [edi + 0x44]
mov dword [ebx + 0x44], eax
lea eax, [edi + 0x60]
push eax
call fcn.1000e8ec
mov al, byte [edi + 0x69]
mov byte [ebx + 0x69], al
jmp 0x1009a4bf
push dword [ebp - 0x38]
call fcn.100035fc
pop ecx
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x4c]
call fcn.100956db
mov eax, edi
jmp 0x1009a67d
xor edi, edi
cmp dword [ebp - 0x34], edi
jbe 0x1009a59e
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x4c]
mov eax, dword [eax + edi*4]
mov ebx, dword [ecx + eax*4]
mov ecx, dword [ebp + 8]
call fcn.10053de9
mov ecx, dword [ebp + 8]
push ebx
call fcn.1009ac8a
inc edi
cmp edi, dword [ebp - 0x34]
jb 0x1009a57b
push dword [ebp - 0x38]
mov byte [ebp - 4], 5
call fcn.100035fc
mov ebx, dword [ebp + 8]
pop ecx
xor edi, edi
mov cx, word [ebp - 0x6e]
cmp cx, word [ebp - 0x70]
jae 0x1009a5be
mov byte [esi + 0x7c], 1
cmp word [ebp - 0x74], di
jne 0x1009a5ce
cmp cx, word [ebp - 0x70]
je 0x1009a5ce
mov byte [esi + 0x7c], 1
cmp byte [ebp - 0x11], 0
mov eax, dword [ebx + 4]
je 0x1009a5ff
xor ecx, ecx
cmp dword [ebp - 0xb4], eax
jne 0x1009a5f9
cmp dword [ebp - 0xb0], ecx
jne 0x1009a5f9
movzx ecx, word [ebp - 0x6e]
cmp ecx, eax
je 0x1009a62f
cmp word [ebp - 0x6e], 0xffff
je 0x1009a62f
mov byte [esi + 0x7c], 1
jmp 0x1009a62f
movzx ecx, cx
cmp ecx, eax
jbe 0x1009a60a
mov byte [esi + 0x7c], 1
mov ecx, dword [ebp - 0x1c]
xor eax, eax
cmp dword [ebp - 0xb4], ecx
jne 0x1009a61f
cmp dword [ebp - 0xb0], eax
je 0x1009a62f
cmp word [ebp - 0xb4], cx
jne 0x1009a5f9
mov byte [esi + 0x84], 1
movzx eax, word [ebp - 0x64]
push eax
lea eax, [esi + 0x70]
push eax
mov ecx, esi
call fcn.1009794b
mov ax, word [ebp - 0x1c]
and byte [esi + 0x20], 0
cmp word [ebp - 0xb4], ax
jne 0x1009a66b
mov eax, dword [ebp - 0xac]
cmp eax, dword [ebp - 0x60]
jne 0x1009a66b
mov eax, dword [ebp - 0xa4]
cmp eax, dword [ebp - 0x54]
je 0x1009a66f
cmp dword [ebx + 4], edi
je 0x1009a66f
mov byte [esi + 0x7c], 1
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x4c]
call fcn.100956db
xor eax, eax
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret 4