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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x6c
push ebx
push esi
mov esi, dword [ebp + 8]
mov eax, dword [esi + 8]
xor ebx, ebx
mov dword [esp + 0x3c], eax
push edi
mov edi, dword [ebp + 0xc]
mov eax, esi
mov byte [esp + 0x13], bl
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x38], ebx
call fcn.10058070
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx + 0x10]
mov ecx, dword [ebp + 0x1c]
mov dword [esp + 0x44], eax
mov eax, dword [edi + 0xc]
lea eax, [eax + eax*2]
mov dword [esp + 0x18], ebx
mov ebx, dword [edi + 0x14]
mov edi, dword [ecx + 0x38]
shl eax, 4
add eax, ebx
mov dword [esp + 0x2c], edx
xor edx, edx
xor ecx, ecx
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], edi
mov dword [esp + 0x48], edx
mov dword [esp + 0x4c], ecx
cmp ebx, eax
jae 0x10089f50
mov dword [esp + 0x28], 1
jmp 0x10089d43
mov esi, dword [ebp + 8]
mov edx, dword [edi]
or edx, dword [edi + 4]
jne 0x10089dd1
test byte [ebx + 0x14], 2
jne 0x10089dd1
mov ecx, dword [ebx]
test byte [ecx + 4], 1
jne 0x10089dd1
xor eax, eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
mov eax, dword [ebp + 0x10]
mov edx, dword [eax + 0x30]
push ecx
lea eax, [esp + 0x60]
push eax
mov byte [esp + 0x78], 3
mov dword [esp + 0x64], 0x10057c30
mov dword [esp + 0x68], 0x10057d40
mov dword [esp + 0x7c], edx
call fcn.10053e50
add esp, 8
cmp byte [esp + 0x70], 0
je 0x10089dd1
mov eax, dword [ebx]
mov ecx, dword [esi]
push 0
push 0
push eax
push ecx
call fcn.10056e40
mov ecx, dword [esp + 0x2c]
push eax
mov eax, dword [esi]
push ecx
call fcn.10056960
add esp, 0x18
mov dword [esp + 0x1c], eax
mov edx, dword [ebx + 8]
mov eax, dword [ebp + 0x10]
cmp edx, dword [eax + 0x30]
jne 0x10089f3b
test byte [ebx + 0x12], 2
je 0x10089f3b
mov eax, dword [ebx + 0x20]
mov ecx, dword [ebx + 0x24]
and eax, dword [ebp + 0x14]
and ecx, dword [ebp + 0x18]
or eax, ecx
jne 0x10089f3b
mov eax, dword [ebx + 0xc]
test eax, eax
js 0x10089f3b
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx + 0x10]
mov ecx, dword [edx + 4]
mov esi, dword [ebx]
lea eax, [eax + eax*2]
mov dl, byte [ecx + eax*8 + 0x15]
mov byte [esp + 0x14], dl
mov eax, dword [esp + 0x14]
push eax
call fcn.100562a0
add esp, 4
test eax, eax
je 0x10089f3b
cmp dword [ebx + 0xc], 0x40
jl 0x10089e46
xor esi, esi
mov dword [esp + 0x54], getpeername
jmp 0x10089e5b
mov ecx, dword [ebx + 0xc]
mov eax, 1
xor edx, edx
call fcn.101824a0
mov esi, eax
mov dword [esp + 0x54], edx
cmp byte [esp + 0x13], 0
mov dword [esp + 0x50], esi
jne 0x10089e91
mov eax, dword [ebx + 0xc]
lea ecx, [eax + eax*2]
mov eax, dword [esp + 0x2c]
mov edx, dword [eax + 4]
mov ecx, dword [edx + ecx*8]
mov edx, dword [eax]
push ecx
push edx
push str.automatic_index_on__s__s_
push 0x11c
call fcn.10027e20
add esp, 0x10
mov byte [esp + 0x13], 1
mov ecx, dword [esp + 0x54]
and ecx, dword [esp + 0x4c]
mov eax, esi
and eax, dword [esp + 0x48]
or eax, ecx
jne 0x10089f3b
movzx edx, word [edi + 0x2c]
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov dword [esp + 0x20], ecx
cmp edx, dword [esp + 0x28]
jge 0x10089f1c
mov eax, dword [esp + 0x28]
add eax, 7
and eax, 0xfffffff8
mov dword [esp + 0x3c], eax
add eax, eax
add eax, eax
push 0
push eax
mov esi, ecx
call fcn.100260c0
mov esi, eax
add esp, 8
test esi, esi
je 0x1008a840
movzx ecx, word [edi + 0x2c]
mov edx, dword [edi + 0x30]
add ecx, ecx
add ecx, ecx
push ecx
push edx
push esi
call sub.MSVCR100.dll_memcpy
mov eax, dword [edi + 0x30]
lea ecx, [edi + 0x38]
add esp, 0xc
cmp eax, ecx
je 0x10089f0c
mov ecx, dword [esp + 0x20]
call fcn.10025e40
mov dx, word [esp + 0x3c]
mov dword [edi + 0x30], esi
mov esi, dword [esp + 0x50]
mov word [edi + 0x2c], dx
mov eax, dword [esp + 0x18]
mov ecx, dword [edi + 0x30]
mov edx, dword [esp + 0x54]
inc dword [esp + 0x28]
or dword [esp + 0x48], esi
mov dword [ecx + eax*4], ebx
inc eax
or dword [esp + 0x4c], edx
mov dword [esp + 0x18], eax
add ebx, 0x30
cmp ebx, dword [esp + 0x30]
jb 0x10089d40
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x18]
mov esi, dword [ebp + 0x10]
mov word [edi + 0x28], ax
mov word [edi + 0x18], ax
mov dword [edi + 0x24], 0x4241
mov eax, dword [esi + 0x40]
mov edi, dword [esi + 0x44]
not edx
not ecx
mov esi, edx
and esi, eax
mov eax, dword [esp + 0x2c]
movzx eax, word [eax + 0x26]
or ecx, 0x80000000
and ecx, edi
mov dword [esp + 0x54], ecx
mov ecx, 0x3f
mov dword [esp + 0x50], esi
mov dword [esp + 0x3c], eax
cmp cx, ax
jge 0x10089fa0
mov dword [esp + 0x28], ecx
jmp 0x10089fa7
movsx edx, ax
mov dword [esp + 0x28], edx
xor ebx, ebx
cmp dword [esp + 0x28], ebx
jle 0x10089fd3
nop
mov eax, 1
xor edx, edx
mov ecx, ebx
call fcn.101824a0
and edx, dword [esp + 0x54]
and eax, esi
or eax, edx
je 0x10089fcc
inc dword [esp + 0x18]
inc ebx
cmp ebx, dword [esp + 0x28]
jl 0x10089fb0
and edi, 0x80000000
xor eax, eax
or eax, edi
je 0x10089ff0
movsx eax, word [esp + 0x3c]
mov ecx, dword [esp + 0x18]
lea edx, [ecx + eax - 0x3f]
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x18]
mov ecx, dword [ebp + 8]
mov esi, dword [ecx]
inc eax
movzx edi, ax
movsx ebx, di
lea eax, [ebx*4 + 7]
and eax, 0xfffffff8
lea edx, [ebx + ebx*4 + 9]
and edx, 0xfffffff8
mov dword [esp + 0x3c], eax
lea eax, [edx + eax + 0x38]
cdq
push edx
push eax
mov dword [esp + 0x28], eax
call fcn.100260c0
mov esi, eax
add esp, 8
test esi, esi
je 0x1008a840
mov eax, dword [esp + 0x20]
push eax
push 0
push esi
call sub.MSVCR100.dll_memset
mov edx, dword [esp + 0x40]
lea eax, [esi + 0x38]
mov dword [esi + 0x20], eax
add eax, dword [esp + 0x48]
mov word [esi + 0x30], di
mov dword [esi + 8], eax
lea eax, [eax + ebx*2 + 2]
lea ecx, [eax + ebx*2]
mov dword [esi + 4], eax
mov eax, dword [esp + 0x38]
dec edi
mov dword [esi + 0x1c], ecx
mov ecx, dword [ebp + 0xc]
mov word [esi + 0x2e], di
mov dword [edx + 0x1c], esi
mov dword [esi + 0xc], eax
xor eax, eax
mov dword [esi], str.auto_index
mov dword [esp + 0x2c], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
mov eax, dword [ecx + 0x14]
add esp, 0xc
mov dword [esp + 0x14], eax
cmp eax, dword [esp + 0x30]
jae 0x1008a230
jmp 0x1008a0a0
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 8]
mov ecx, dword [ebp + 0x10]
cmp eax, dword [ecx + 0x30]
jne 0x1008a21b
test byte [edx + 0x12], 2
je 0x1008a21b
mov ecx, edx
mov eax, dword [ecx + 0x20]
mov ecx, dword [ecx + 0x24]
and eax, dword [ebp + 0x14]
and ecx, dword [ebp + 0x18]
or eax, ecx
jne 0x1008a21b
mov eax, edx
mov eax, dword [eax + 0xc]
test eax, eax
js 0x1008a21b
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx + 0x10]
mov ecx, dword [edx + 4]
lea eax, [eax + eax*2]
mov dl, byte [ecx + eax*8 + 0x15]
mov eax, dword [esp + 0x14]
mov edi, dword [eax]
mov eax, dword [edi + 0xc]
mov byte [esp + 0x13], dl
call fcn.10055fc0
mov bl, al
mov eax, dword [edi + 0x10]
test eax, eax
je 0x1008a125
call fcn.10055fc0
test al, al
je 0x1008a13a
test bl, bl
je 0x1008a13e
cmp al, 0x43
jge 0x1008a121
cmp bl, 0x43
jl 0x1008a146
mov bl, 0x43
jmp 0x1008a148
test dword [edi + 4], 0x800
je 0x1008a142
mov ecx, dword [edi + 0x14]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
mov eax, dword [eax]
jmp 0x1008a10b
test bl, bl
je 0x1008a146
add bl, al
jmp 0x1008a148
test bl, bl
jne 0x1008a148
mov bl, 0x41
movsx eax, bl
sub eax, 0x41
je 0x1008a171
dec eax
je 0x1008a15f
xor eax, eax
cmp byte [esp + 0x13], 0x43
setge al
jmp 0x1008a169
xor eax, eax
cmp byte [esp + 0x13], 0x42
sete al
test eax, eax
je 0x1008a21b
mov ebx, dword [esp + 0x14]
mov ecx, dword [ebx + 0xc]
cmp ecx, 0x40
jl 0x1008a186
xor eax, eax
mov edx, closesocket
jmp 0x1008a196
mov eax, 1
xor edx, edx
call fcn.101824a0
mov ebx, dword [esp + 0x14]
mov ecx, eax
and ecx, dword [esp + 0x48]
mov edi, edx
and edi, dword [esp + 0x4c]
or ecx, edi
jne 0x1008a21b
or dword [esp + 0x48], eax
or dword [esp + 0x4c], edx
mov ecx, dword [ebx]
mov ax, word [ebx + 0xc]
mov edi, dword [esp + 0x20]
mov edx, dword [esi + 4]
mov word [edx + edi*2], ax
mov edi, dword [ecx + 0x10]
mov ecx, dword [ecx + 0xc]
mov eax, 0x100
test dword [ecx + 4], eax
je 0x1008a1d5
mov edx, dword [ebp + 8]
push edx
jmp 0x1008a1f7
test edi, edi
je 0x1008a1e4
test dword [edi + 4], eax
je 0x1008a1e4
mov eax, dword [ebp + 8]
push eax
jmp 0x1008a1f5
mov ebx, dword [ebp + 8]
push ebx
call fcn.10056120
add esp, 4
test eax, eax
jne 0x1008a203
push ebx
mov ecx, edi
call fcn.10056120
add esp, 4
test eax, eax
je 0x1008a207
mov eax, dword [eax]
jmp 0x1008a20c
mov eax, str.BINARY
mov ecx, dword [esp + 0x20]
mov edx, dword [esi + 0x20]
mov dword [edx + ecx*4], eax
inc ecx
mov dword [esp + 0x20], ecx
mov eax, dword [esp + 0x14]
add eax, 0x30
mov dword [esp + 0x14], eax
cmp eax, dword [esp + 0x30]
jb 0x1008a0a0
xor edi, edi
cmp dword [esp + 0x28], edi
jle 0x1008a277
mov ebx, dword [esp + 0x20]
lea esp, [esp]
mov eax, 1
xor edx, edx
mov ecx, edi
call fcn.101824a0
and eax, dword [esp + 0x50]
and edx, dword [esp + 0x54]
or eax, edx
je 0x1008a26c
mov eax, dword [esi + 4]
mov word [eax + ebx*2], di
mov ecx, dword [esi + 0x20]
mov dword [ecx + ebx*4], str.BINARY
inc ebx
inc edi
cmp edi, dword [esp + 0x28]
jl 0x1008a240
mov dword [esp + 0x20], ebx
mov edx, dword [ebp + 0x10]
mov ecx, dword [edx + 0x44]
and ecx, 0x80000000
xor eax, eax
or eax, ecx
je 0x1008a2bd
mov edx, dword [esp + 0x2c]
mov eax, 0x3f
cmp ax, word [edx + 0x26]
jge 0x1008a2bd
mov ecx, eax
mov eax, dword [esp + 0x20]
mov edi, edi
mov edi, dword [esi + 4]
mov word [edi + eax*2], cx
mov edi, dword [esi + 0x20]
mov dword [edi + eax*4], str.BINARY
movsx edi, word [edx + 0x26]
inc ecx
inc eax
cmp ecx, edi
jl 0x1008a2a0
jmp 0x1008a2c1
mov eax, dword [esp + 0x20]
mov ecx, dword [esi + 4]
mov edi, dword [esp + 0x40]
or edx, 0xffffffff
mov word [ecx + eax*2], dx
mov ecx, dword [esi + 0x20]
mov dword [ecx + eax*4], str.BINARY
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x44]
mov ecx, dword [ebp + 0x1c]
mov dword [ecx + 8], edx
inc dword [eax + 0x44]
mov eax, dword [ecx + 8]
mov ecx, dword [edi + 0x18]
mov dword [esp + 0x3c], eax
mov eax, dword [edi + 0x20]
mov dword [esp + 0x40], eax
mov dword [esp + 0x14], ecx
cmp dword [ecx + 0x54], eax
jg 0x1008a379
mov ecx, dword [ecx + 0x54]
lea eax, [ecx + ecx]
test ecx, ecx
jne 0x1008a311
mov eax, 0x33
mov edx, dword [esp + 0x14]
mov ebx, dword [edi + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx]
add ecx, ecx
add ecx, ecx
push 0
push ecx
call fcn.10026160
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x1008a3a5
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
test eax, eax
je 0x1008a355
cmp ebx, dword [eax + 0x114]
jb 0x1008a355
cmp ebx, dword [eax + 0x118]
jae 0x1008a355
movzx ecx, word [eax + 0xf8]
jmp 0x1008a361
push ebx
call dword [0x101f0e98]
mov ecx, eax
add esp, 4
mov eax, 0xcccccccd
mul ecx
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x40]
shr edx, 4
mov dword [ecx + 0x54], edx
mov dword [edi + 4], ebx
inc dword [edi + 0x20]
mov ecx, dword [esp + 0x3c]
lea edx, [eax + eax*4]
mov eax, dword [edi + 4]
lea eax, [eax + edx*4]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x18]
inc ecx
mov dword [eax + 8], ecx
xor ecx, ecx
mov byte [eax + 3], 0
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov word [eax], 0x38
mov eax, dword [ebp + 8]
mov ebx, dword [eax + 8]
push esi
push eax
call fcn.100665f0
mov ecx, dword [ebx + 4]
mov edx, dword [ebx]
add esp, 8
mov dword [esp + 0x30], eax
test ecx, ecx
je 0x1008a410
cmp byte [edx + 0x41], 0
jne 0x1008a410
mov eax, dword [ebx + 0x20]
lea eax, [eax + eax*4 - 5]
lea ebx, [ecx + eax*4]
movsx eax, byte [ebx + 1]
mov ecx, dword [ebx + 0x10]
call fcn.10044af0
cmp dword [esp + 0x30], 0
mov dword [ebx + 0x10], 0
jne 0x1008a3f9
mov dword [ebx + 0x10], 0
mov byte [ebx + 1], 0
jmp 0x1008a41c
mov ecx, dword [esp + 0x30]
mov dword [ebx + 0x10], ecx
mov byte [ebx + 1], 0xfa
jmp 0x1008a41c
mov ecx, eax
mov eax, 0xfffffffa
call fcn.10044af0
mov eax, dword [ebp + 8]
inc dword [eax + 0x64]
mov edx, dword [ebp + 0x1c]
mov eax, dword [edx + 4]
mov ecx, dword [edi + 0x18]
mov dword [esp + 0x3c], eax
mov eax, dword [edi + 0x20]
mov dword [esp + 0x40], eax
mov dword [esp + 0x14], ecx
cmp dword [ecx + 0x54], eax
jg 0x1008a4b5
mov eax, dword [ecx + 0x54]
test eax, eax
je 0x1008a44a
add eax, eax
jmp 0x1008a44f
mov eax, 0x33
mov ebx, dword [edi + 4]
lea edx, [eax + eax*4]
add edx, edx
add edx, edx
mov eax, ecx
mov eax, dword [eax]
push 0
push edx
call fcn.10026160
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x1008a54e
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
test eax, eax
je 0x1008a495
cmp ebx, dword [eax + 0x114]
jb 0x1008a495
cmp ebx, dword [eax + 0x118]
jae 0x1008a495
movzx ecx, word [eax + 0xf8]
jmp 0x1008a4a1
push ebx
call dword [0x101f0e98]
mov ecx, eax
add esp, 4
mov eax, 0xcccccccd
mul ecx
mov eax, dword [esp + 0x14]
shr edx, 4
mov dword [eax + 0x54], edx
mov dword [edi + 4], ebx
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x40]
inc dword [edi + 0x20]
lea edx, [ecx + ecx*4]
lea eax, [eax + edx*4]
mov edx, dword [esp + 0x3c]
mov dword [eax + 4], edx
xor edx, edx
mov byte [eax + 3], 0
mov dword [eax + 8], edx
mov dword [eax + 0xc], edx
mov dword [eax + 0x10], edx
mov word [eax], 0x6c
mov dword [esp + 0x28], ecx
cmp dword [esp + 0x1c], 0
je 0x1008a5d0
mov eax, dword [edi + 0x18]
mov ecx, dword [eax + 0x6c]
lea edx, [ecx + 1]
mov dword [eax + 0x6c], edx
lea edx, [ecx - 1]
mov dword [esp + 0x30], eax
mov dword [esp + 0x2c], ecx
test ecx, edx
jne 0x1008a598
mov ebx, dword [eax + 0x70]
mov eax, dword [eax]
lea edx, [ecx*8 + 4]
push 0
push edx
mov dword [esp + 0x48], eax
call fcn.10026160
add esp, 8
mov dword [esp + 0x3c], eax
test eax, eax
jne 0x1008a587
test ebx, ebx
je 0x1008a587
mov ecx, dword [esp + 0x40]
test ecx, ecx
je 0x1008a57e
cmp dword [ecx + 0x208], eax
je 0x1008a558
mov eax, ebx
call fcn.10025e00
jmp 0x1008a587
mov dword [esp + 0x28], 1
jmp 0x1008a4e4
cmp ebx, dword [ecx + 0x114]
jb 0x1008a57e
cmp ebx, dword [ecx + 0x118]
jae 0x1008a57e
mov eax, dword [ecx + 0x110]
mov dword [ebx], eax
dec dword [ecx + 0xfc]
mov dword [ecx + 0x110], ebx
jmp 0x1008a587
push ebx
call fcn.10025d60
add esp, 4
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x3c]
mov dword [ecx + 0x70], edx
mov eax, ecx
mov ecx, dword [esp + 0x2c]
mov eax, dword [eax + 0x70]
test eax, eax
je 0x1008a5a6
mov dword [eax + ecx*4], 0xffffffff
mov ebx, dword [ebp + 8]
or eax, 0xffffffff
sub eax, ecx
push 0x10
push eax
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x24]
push eax
push ebx
call fcn.1005b440
mov eax, dword [esp + 0x44]
add esp, 0x10
or dword [eax + 0x24], 0x20000
jmp 0x1008a5d3
mov ebx, dword [ebp + 8]
mov al, byte [ebx + 0x13]
test al, al
jne 0x1008a5e6
inc dword [ebx + 0x48]
mov ecx, dword [ebx + 0x48]
mov dword [esp + 0x2c], ecx
jmp 0x1008a5f6
dec al
movzx edx, al
mov byte [ebx + 0x13], al
mov eax, dword [ebx + edx*4 + 0x18]
mov dword [esp + 0x2c], eax
mov ecx, dword [esp + 0x2c]
mov edx, dword [ebp + 0x1c]
mov eax, dword [edx + 4]
push 0
push 0
push 0
push 0
push ecx
push eax
push esi
push ebx
call fcn.10068470
mov ecx, dword [ebp + 0x1c]
mov eax, dword [edi + 0x20]
mov esi, dword [edi + 0x18]
mov edx, dword [ecx + 8]
add esp, 0x20
mov dword [esp + 0x3c], edx
mov dword [esp + 0x40], eax
cmp dword [esi + 0x54], eax
jg 0x1008a699
mov eax, dword [esi + 0x54]
test eax, eax
je 0x1008a638
add eax, eax
jmp 0x1008a63d
mov eax, 0x33
mov ebx, dword [edi + 4]
lea eax, [eax + eax*4]
add eax, eax
add eax, eax
push 0
push eax
mov eax, dword [esi]
call fcn.10026160
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x1008a6c4
mov eax, dword [esi]
test eax, eax
je 0x1008a679
cmp ebx, dword [eax + 0x114]
jb 0x1008a679
cmp ebx, dword [eax + 0x118]
jae 0x1008a679
movzx ecx, word [eax + 0xf8]
jmp 0x1008a685
push ebx
call dword [0x101f0e98]
mov ecx, eax
add esp, 4
mov eax, 0xcccccccd
mul ecx
mov eax, dword [esp + 0x40]
shr edx, 4
mov dword [esi + 0x54], edx
mov dword [edi + 4], ebx
mov edx, dword [edi + 4]
inc dword [edi + 0x20]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*4]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x2c]
mov dword [eax + 4], ecx
xor ecx, ecx
mov byte [eax + 3], 0
mov dword [eax + 8], edx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov word [eax], 0x6e
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x1008a6d6
mov eax, dword [edi + 0x20]
lea eax, [eax + eax*4]
mov byte [ecx + eax*4 - 0x11], 0x10
cmp dword [esp + 0x1c], 0
je 0x1008a6fd
mov ecx, dword [edi + 0x18]
or eax, 0xffffffff
sub eax, dword [esp + 0x38]
js 0x1008a6f6
mov edx, dword [ecx + 0x70]
test edx, edx
je 0x1008a6f6
mov esi, dword [edi + 0x20]
mov dword [edx + eax*4], esi
mov edx, dword [edi + 0x20]
dec edx
mov dword [ecx + 0x58], edx
mov eax, dword [ebp + 0x1c]
mov ecx, dword [eax + 4]
mov eax, dword [edi + 0x20]
mov esi, dword [edi + 0x18]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], eax
cmp dword [esi + 0x54], eax
jg 0x1008a782
mov eax, dword [esi + 0x54]
test eax, eax
je 0x1008a721
add eax, eax
jmp 0x1008a726
mov eax, 0x33
mov ebx, dword [edi + 4]
lea edx, [eax + eax*4]
mov eax, dword [esi]
add edx, edx
add edx, edx
push 0
push edx
call fcn.10026160
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x1008a7b2
mov eax, dword [esi]
test eax, eax
je 0x1008a762
cmp ebx, dword [eax + 0x114]
jb 0x1008a762
cmp ebx, dword [eax + 0x118]
jae 0x1008a762
movzx ecx, word [eax + 0xf8]
jmp 0x1008a76e
push ebx
call dword [0x101f0e98]
mov ecx, eax
add esp, 4
mov eax, 0xcccccccd
mul ecx
mov eax, dword [esp + 0x40]
shr edx, 4
mov dword [esi + 0x54], edx
mov dword [edi + 4], ebx
mov ecx, dword [edi + 4]
inc dword [edi + 0x20]
mov edx, dword [esp + 0x3c]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*4]
mov ecx, dword [esp + 0x28]
mov dword [eax + 4], edx
lea edx, [ecx + 1]
mov dword [eax + 8], edx
xor edx, edx
mov byte [eax + 3], 0
mov dword [eax + 0xc], edx
mov dword [eax + 0x10], edx
mov word [eax], 9
jmp 0x1008a7b6
mov ecx, dword [esp + 0x28]
mov edx, dword [edi + 4]
test edx, edx
je 0x1008a7c8
mov eax, dword [edi + 0x20]
lea eax, [eax + eax*4]
mov byte [edx + eax*4 - 0x11], 3
mov eax, dword [edi + 0x20]
cmp eax, ecx
jbe 0x1008a7d9
mov edx, dword [edi + 4]
lea ecx, [ecx + ecx*4]
mov dword [edx + ecx*4 + 8], eax
mov eax, dword [edi + 0x20]
mov ecx, dword [edi + 0x18]
mov esi, dword [esp + 0x2c]
dec eax
mov dword [ecx + 0x58], eax
mov eax, dword [ebp + 8]
test esi, esi
je 0x1008a81c
mov bl, byte [eax + 0x13]
cmp bl, 8
jae 0x1008a81c
xor ecx, ecx
lea edx, [eax + 0x74]
jmp 0x1008a800
cmp dword [edx + 0xc], esi
je 0x1008a89b
inc ecx
add edx, 0x14
cmp ecx, 0xa
jl 0x1008a800
movzx edx, bl
mov dword [eax + edx*4 + 0x18], esi
inc byte [eax + 0x13]
call fcn.10059610
mov eax, dword [edi + 0x20]
mov ecx, dword [esp + 0x44]
cmp eax, ecx
jbe 0x1008a836
mov edx, dword [edi + 4]
lea ecx, [ecx + ecx*4]
mov dword [edx + ecx*4 + 8], eax
mov eax, dword [edi + 0x20]
mov ecx, dword [edi + 0x18]
dec eax
mov dword [ecx + 0x58], eax
mov edi, dword [esp + 0x1c]
mov edx, dword [ebp + 8]
mov esi, dword [edx]
test edi, edi
je 0x1008a954
test dword [edi + 4], 0x4000
jne 0x1008a8fa
mov eax, dword [edi + 0xc]
push eax
push esi
call fcn.10056d00
mov ecx, dword [edi + 0x10]
push ecx
push esi
call fcn.10056d00
add esp, 0x10
test dword [edi + 4], 0x10000
je 0x1008a8d3
mov eax, dword [edi + 8]
test eax, eax
je 0x1008a8d3
test esi, esi
je 0x1008a8ca
cmp dword [esi + 0x208], 0
je 0x1008a8a4
mov ecx, esi
call fcn.10025e00
jmp 0x1008a8d3
mov byte [edx + 6], 1
jmp 0x1008a81c
cmp eax, dword [esi + 0x114]
jb 0x1008a8ca
cmp eax, dword [esi + 0x118]
jae 0x1008a8ca
mov edx, dword [esi + 0x110]
mov dword [eax], edx
dec dword [esi + 0xfc]
mov dword [esi + 0x110], eax
jmp 0x1008a8d3
push eax
call fcn.10025d60
add esp, 4
test dword [edi + 4], 0x800
je 0x1008a8ed
mov eax, dword [edi + 0x14]
push 1
push eax
push esi
call fcn.10077530
add esp, 0xc
jmp 0x1008a8fa
mov ecx, dword [edi + 0x14]
push ecx
push esi
call fcn.10057ab0
add esp, 8
test dword [edi + 4], 0x8000
jne 0x1008a954
test esi, esi
je 0x1008a94b
cmp dword [esi + 0x208], 0
je 0x1008a920
mov eax, edi
mov ecx, esi
call fcn.10025e00
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp edi, dword [esi + 0x114]
jb 0x1008a94b
cmp edi, dword [esi + 0x118]
jae 0x1008a94b
mov edx, dword [esi + 0x110]
mov dword [edi], edx
dec dword [esi + 0xfc]
mov dword [esi + 0x110], edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push edi
call fcn.10025d60
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret