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

Disassembly:
sub esp, 0xd0
mov edx, dword [esp + 0xd4]
mov ecx, dword [esp + 0xd8]
mov eax, dword [esp + 0xec]
push ebx
mov dword [edx + 0x14], eax
mov ebx, 0x7fffffff
mov dword [edx + 0xc], eax
push ebp
mov ebp, dword [esp + 0xe8]
push esi
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0xfc]
mov dword [ecx + 0x14], eax
mov dword [ecx + 0xc], eax
mov ecx, dword [edx]
push edi
mov edi, dword [esp + 0xf4]
mov esi, edi
shl esi, 0x10
mov dword [esp + 0x40], eax
mov edx, esi
mov eax, dword [ecx + 0x1c]
cmp eax, esi
mov dword [esp + 0x3c], ebx
cmovge edx, eax
mov dword [esp + 0x24], edx
cmp eax, edx
jg 0x10239030
mov ebp, edx
nop dword [eax]
mov edx, dword [ecx + 0x18]
lea eax, [edx + 0x10000]
cmp ebp, eax
jne 0x10238ff5
mov eax, dword [ecx + 0x10]
add dword [ecx + 0xc], eax
jmp 0x1023900b
cmp ebp, edx
je 0x1023900e
mov eax, ebp
sub eax, dword [ecx + 0x1c]
imul dword [ecx + 0x10]
shrd eax, edx, 0x10
add eax, dword [ecx + 0x14]
mov dword [ecx + 0xc], eax
mov dword [ecx + 0x18], ebp
mov eax, dword [ecx + 0x20]
cmp eax, ebp
jle 0x1023901a
cmp eax, ebx
cmovl ebx, eax
mov ecx, dword [ecx]
cmp dword [ecx + 0x1c], ebp
jle 0x10238fe0
mov ebp, dword [esp + 0xf0]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x3c], ebx
mov eax, dword [ecx + 0x1c]
cmp eax, edx
jle 0x10239040
cmp eax, ebx
cmovl ebx, eax
mov dword [esp + 0x3c], ebx
mov ecx, dword [esp + 0xec]
mov ebx, dword [esp + 0x24]
movzx eax, cl
and eax, 1
shr ecx, 1
and cl, 1
mov dword [esp + 0x98], ecx
mov ecx, dword [esp + 0x104]
lea eax, [eax*2 - 1]
mov dword [esp + 0x14], ecx
mov dword [esp + 0xb0], eax
je 0x10239172
cmp esi, ebx
je 0x10239172
mov esi, dword [esp + 0x40]
sub esi, dword [esp + 0x2c]
sar ebx, 0x10
sar esi, 0x10
cmp ebx, edi
je 0x102390bc
mov eax, dword [ebp]
mov ecx, ebp
push 0
call dword [eax + 0x34]
mov ecx, ebx
sub ecx, edi
push ecx
mov ecx, dword [esp + 0x30]
mov edx, dword [eax]
push esi
sar ecx, 0x10
push edi
push ecx
mov ecx, eax
call dword [edx + 0x10]
mov ecx, dword [esp + 0x14]
mov edi, ebx
test cl, cl
je 0x102390f5
cmp edi, dword [ebp + 0x448]
je 0x102390e9
mov edx, edi
mov dword [ebp + 0x448], edi
sub edx, dword [ebp + 0x18]
imul edx, dword [ebp + 0x24]
sub edx, dword [ebp + 0x14]
add edx, dword [ebp + 0x10]
mov dword [esp + 0x58], edx
mov dword [ebp + 0x444], edx
jmp 0x102390fd
mov edx, dword [ebp + 0x444]
mov dword [esp + 0x58], edx
jmp 0x102390fd
mov dword [esp + 0x58], 0
mov eax, dword [esp + 0x24]
mov ecx, edi
mov ebx, dword [esp + 0x2c]
shl ecx, 0x10
sub eax, ecx
sar ebx, 0x10
mov ecx, dword [esp + 0x14]
imul eax, eax, 0xff
add eax, 0x8000
sar eax, 0x10
test cl, cl
je 0x10239149
xor edx, edx
test esi, esi
jle 0x1023916e
add ebx, dword [esp + 0x58]
movzx edi, al
movzx ecx, byte [ebx + edx]
add ecx, edi
mov eax, ecx
shr eax, 8
sub cl, al
mov byte [ebx + edx], cl
inc edx
cmp edx, esi
jl 0x10239132
jmp 0x1023916a
mov edx, dword [ebp]
mov ecx, ebp
cmp al, 0xff
jne 0x10239163
push 0
call dword [edx + 0x34]
push esi
push edi
push ebx
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 4]
jmp 0x1023916a
push eax
push esi
push edi
push ebx
call dword [edx + 0x38]
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x24]
mov edx, dword [esp + 0x2c]
mov eax, edx
mov edi, dword [esp + 0x3c]
sar eax, 0x10
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0xf8]
shl eax, 0x10
mov dword [esp + 0xdc], eax
mov eax, dword [esp + 0x108]
mov dword [esp + 0xa4], 1
mov dword [esp + 0x50], eax
nop dword [eax]
xor eax, eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x98]
mov byte [esp + 0x2b], al
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x44], 0
mov dword [esp + 0x5c], 0
mov eax, dword [eax + 0xc]
mov dword [esp + 0x7c], eax
lea eax, [ebx + 0x10000]
and eax, 0xffff0000
cmp eax, edi
cmovl edi, eax
movzx eax, di
test eax, eax
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x18], eax
sete byte [esp + 0xac]
mov dword [esp + 0x3c], edi
mov esi, dword [eax]
xor al, al
mov byte [esp + 0x8c], al
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x48], eax
mov eax, 0x7fffffff
mov dword [esp + 0x60], eax
mov dword [esp + 0x58], eax
mov eax, edi
sub eax, ebx
mov dword [esp + 0x6c], esi
test eax, 0x4000
je 0x1023925f
lea edi, [ebx + 0x4000]
mov dword [esp + 0x5c], 2
mov dword [esp + 0x3c], edi
jmp 0x10239274
test eax, 0x8000
mov eax, dword [esp + 0x5c]
cmovne eax, dword [esp + 0xa4]
mov dword [esp + 0x5c], eax
mov eax, edi
mov dword [esp + 0x10], 0
sub eax, ebx
imul ebx, eax, 0xff
add ebx, 0x8000
sar ebx, 0x10
mov dword [esp + 0x1c], ebx
mov byte [esp + 0xa8], bl
test cl, cl
je 0x102392d4
mov ecx, dword [esp + 0x24]
sar ecx, 0x10
cmp ecx, dword [ebp + 0x448]
je 0x102392ca
mov eax, dword [ebp + 0x10]
mov dword [ebp + 0x448], ecx
sub ecx, dword [ebp + 0x18]
imul ecx, dword [ebp + 0x24]
sub ecx, dword [ebp + 0x14]
add eax, ecx
mov dword [ebp + 0x444], eax
jmp 0x102392d0
mov eax, dword [ebp + 0x444]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x24]
cmp dword [esi + 0x1c], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x4c], eax
jg 0x10239cb5
mov eax, dword [esp + 0x98]
movzx ebx, al
mov eax, dword [esp + 0xac]
mov dword [esp + 0x74], ebx
mov dword [esp + 0xb8], eax
nop dword [eax + eax]
movsx eax, byte [esi + 0x37]
add dword [esp + 0x80], eax
mov eax, dword [esp + 0x80]
and eax, dword [esp + 0xb0]
mov cl, byte [esp + 0x2b]
neg eax
sbb eax, eax
inc eax
cmp eax, ebx
sete byte [esp + 0x2b]
jne 0x10239343
test cl, cl
jne 0x10239343
mov bh, 1
jmp 0x10239345
xor bh, bh
cmp eax, dword [esp + 0x74]
je 0x10239353
test cl, cl
je 0x10239353
mov bl, 1
jmp 0x10239355
xor bl, bl
cmp dword [esi + 0x20], edi
mov cl, byte [esp + 0x10c]
sete byte [esp + 0xb4]
test cl, cl
je 0x10239455
mov eax, dword [esi + 8]
test eax, eax
je 0x102393ad
test bh, bh
jne 0x102393ad
push dword [esp + 0x40]
push dword [esp + 0x30]
push dword [esp + 0x58]
push dword [esp + 0x20]
push dword [esp + 0x20]
push ebp
push dword [eax + 0xc]
push dword [esi + 0xc]
push dword [esp + 0x44]
push esi
call fcn.1023b280
mov edx, dword [esp + 0x48]
add esp, 0x28
mov cl, byte [esp + 0x10c]
mov eax, dword [esp + 0x18]
cmp dword [eax + 8], esi
jne 0x10239459
test bl, bl
jne 0x1023945d
push dword [esp + 0x40]
push dword [esp + 0x30]
push dword [esp + 0x58]
push dword [esp + 0x20]
push dword [esp + 0x20]
push ebp
push dword [esi + 0xc]
push edx
push dword [esp + 0x44]
push eax
call fcn.1023b280
add esp, 0x28
test bh, bh
je 0x10239414
mov eax, dword [esi + 0xc]
cmp eax, dword [esp + 0x2c]
mov dword [esp + 0x18], esi
cmovl eax, dword [esp + 0x2c]
cmp dword [esi + 0x20], edi
mov dword [esp + 0x20], eax
mov eax, dword [esi + 0x24]
mov dword [esp + 0x44], eax
sete al
mov byte [esp + 0x8c], al
mov eax, dword [esi + 0x10]
mov ecx, dword [esp + 0x5c]
sar eax, cl
add dword [esi + 0xc], eax
mov dword [esi + 0x18], edi
mov ebx, dword [esi]
cmp dword [esi + 0x20], edi
jg 0x10239bb1
nop
mov al, byte [esi + 0x34]
test al, al
jns 0x10239b8f
mov eax, dword [esi + 0xc]
mov ecx, esi
mov dword [esi + 0x54], eax
mov eax, dword [esi + 0x18]
push 1
mov dword [esi + 0x7c], eax
call fcn.10275630
jmp 0x10239ba4
mov eax, dword [esp + 0x18]
test bl, bl
je 0x102393e8
test cl, cl
je 0x102394a8
push dword [esp + 0x5c]
push dword [esp + 0x44]
push dword [esp + 0x34]
push dword [esp + 0x5c]
push dword [esp + 0x24]
push dword [esp + 0x24]
push ebp
push dword [esp + 0xd0]
push dword [esp + 0xac]
push dword [esp + 0xdc]
push edi
push dword [esp + 0x50]
push dword [esp + 0x74]
push edx
push esi
push eax
call fcn.1023b980
add esp, 0x40
jmp 0x10239423
mov ecx, dword [esp + 0x5c]
mov edx, dword [esi + 0xc]
mov ebx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x40]
mov eax, ebp
mov dword [esi + 0x18], edi
mov edi, dword [esi + 0x10]
sar edi, cl
mov ecx, dword [esp + 0x18]
add edi, edx
mov dword [esi + 0xc], edi
mov ecx, dword [ecx + 0xc]
cmp ebx, ecx
cmovl ebx, ecx
cmp edx, ebp
cmovl eax, edx
cmp edi, ebp
mov dword [esp + 0x68], eax
cmovl ebp, edi
cmp byte [esp + 0x50], 0
jne 0x10239532
cmp byte [esp + 0x1c], 0xff
jne 0x1023952a
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x48]
sar eax, 0x10
cmp edx, eax
jg 0x10239532
sar ecx, 0x10
cmp edx, ecx
jg 0x10239532
mov ecx, dword [esi]
test ecx, ecx
je 0x1023952a
mov edx, dword [esp + 0x3c]
cmp dword [ecx + 0x1c], edx
jge 0x1023952a
mov eax, dword [ecx + 0x10]
mov ecx, dword [ecx + 0xc]
cdq
xor eax, edx
sub eax, edx
sub ecx, eax
lea eax, [edi + 0x10000]
cmp eax, ecx
jge 0x10239532
xor cl, cl
mov byte [esp + 0x34], cl
jmp 0x10239538
mov al, 1
mov byte [esp + 0x34], al
mov eax, dword [esi + 0x24]
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x20]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x24]
sar eax, 0x10
mov dword [esp + 0x30], eax
cmp edx, ecx
jg 0x10239991
cmp ebx, ebp
jle 0x1023959b
mov edi, ebx
mov ecx, edx
cmp edx, ebx
jle 0x1023956a
mov edi, edx
mov ecx, ebx
mov ebx, dword [esp + 0x68]
mov edx, ebp
mov eax, ebx
cmp ebx, ebp
jle 0x1023957a
mov edx, ebx
mov eax, ebp
cmp ecx, eax
cmovge eax, ecx
mov ecx, dword [esp + 0x68]
cmp edx, edi
cmovge edx, edi
add eax, edx
cdq
sub eax, edx
mov edx, dword [esp + 0x20]
mov ebp, eax
mov eax, dword [esp + 0x30]
sar ebp, 1
mov ebx, ebp
cmp edx, ecx
jne 0x102395a7
cmp ebx, ebp
je 0x10239991
cmp edx, ebx
mov edi, ebx
mov ecx, ebp
cmovle edi, edx
cmp dword [esp + 0x20], ebx
cmovle edx, ebx
mov ebx, dword [esp + 0x68]
cmp ebx, ebp
mov dword [esp + 0xc0], edx
cmovle ecx, ebx
cmp ebx, ebp
mov dword [esp + 0x64], ecx
lea ecx, [edx + 0xffff]
cmovle ebx, ebp
mov ebp, dword [esp + 0x64]
and ecx, 0xffff0000
mov dword [esp + 0x54], ebx
and ebp, 0xffff0000
mov dword [esp + 0x48], ecx
mov dword [esp + 0x90], ebp
cmp ecx, ebp
jg 0x10239b52
cmp edi, ecx
jge 0x1023967a
mov eax, ecx
sub eax, edi
mov dword [esp + 0x70], eax
add eax, 0xffff
sar eax, 0x10
cmp eax, 1
jne 0x10239751
lea eax, [ecx + ecx]
sub eax, edi
sar edi, 0x10
sub eax, edx
cdq
sub eax, edx
sar eax, 1
sar eax, 8
cmp byte [esp + 0x14], 0
mov byte [esp + 0xbc], al
je 0x102396eb
mov edx, dword [esp + 0x1c]
cmp dl, 0xff
jne 0x10239654
cmp byte [esp + 0x34], 0
jne 0x10239654
add edi, dword [esp + 0x10]
jmp 0x10239678
add edi, dword [esp + 0x10]
movzx ecx, al
movzx eax, dl
mov edx, 0xff
imul ecx, eax
movzx eax, byte [edi]
shr ecx, 8
add ecx, eax
movzx eax, cl
cmp ecx, edx
cmovb edx, eax
mov al, dl
mov byte [edi], al
mov edi, dword [esp + 0xf0]
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x14]
cmp ecx, ebp
jge 0x10239907
mov ebx, ebp
sub ebx, ecx
sar ecx, 0x10
sar ebx, 0x10
mov dword [esp + 0x48], ecx
test al, al
je 0x102398bc
xor edi, edi
test ebx, ebx
jle 0x10239903
mov ebp, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
add ebp, ecx
movzx esi, al
nop
movzx ecx, byte [edi + ebp]
mov edx, 0xff
add ecx, esi
cmp ecx, edx
movzx eax, cl
cmovb edx, eax
mov byte [edi + ebp], dl
inc edi
cmp edi, ebx
jl 0x102396c0
mov esi, dword [esp + 0x6c]
mov ebp, dword [esp + 0x90]
jmp 0x102398ff
cmp byte [esp + 0x1c], 0xff
jne 0x10239721
cmp byte [esp + 0x34], 0
jne 0x10239721
mov ecx, dword [esp + 0xf0]
push 0
mov eax, dword [ecx]
call dword [eax + 0x34]
push dword [esp + 0xbc]
mov ecx, eax
push 1
push dword [esp + 0x38]
mov edx, dword [eax]
push edi
call dword [edx + 0xc]
jmp 0x1023967a
mov ecx, dword [esp + 0xf0]
mov edx, dword [ecx]
movzx ecx, al
mov eax, dword [esp + 0x1c]
movzx eax, al
imul ecx, eax
shr ecx, 8
push ecx
push dword [esp + 0x34]
push edi
mov edi, dword [esp + 0xfc]
mov ecx, edi
call dword [edx + 0x3c]
jmp 0x10239681
cmp eax, 2
jne 0x10239884
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x44]
add ecx, 0xffff0000
sar edx, 0xb
mov eax, ecx
sar eax, 0xb
mov esi, edx
imul esi, eax
imul esi, eax
mov eax, esi
mov dword [esp + 0x70], esi
sar eax, 8
mov esi, dword [esp + 0x6c]
mov dword [esp + 0x70], eax
mov byte [esp + 0xc4], al
mov eax, dword [esp + 0xc0]
sub eax, edi
sar edi, 0x10
sub eax, ecx
mov ecx, dword [esp + 0x1c]
sar eax, 0xb
imul edx, eax
imul edx, eax
mov al, cl
sar edx, 8
sub al, dl
cmp byte [esp + 0x14], 0
mov byte [esp + 0x88], al
je 0x1023980e
mov eax, dword [esp + 0x10]
mov edx, 0xff
movzx ecx, byte [edi + eax]
mov eax, dword [esp + 0x70]
movzx eax, al
add ecx, eax
cmp ecx, edx
movzx eax, cl
cmovb edx, eax
mov eax, dword [esp + 0x10]
mov byte [edi + eax], dl
mov edx, 0xff
movzx ecx, byte [edi + eax + 1]
movzx eax, byte [esp + 0x88]
add ecx, eax
movzx eax, cl
cmp ecx, edx
cmovb edx, eax
mov eax, dword [esp + 0x10]
mov byte [edi + eax + 1], dl
jmp 0x1023967a
cmp cl, 0xff
jne 0x1023984a
cmp byte [esp + 0x34], 0
jne 0x1023984a
mov ecx, dword [esp + 0xf0]
push 0
mov eax, dword [ecx]
call dword [eax + 0x34]
movzx ecx, byte [esp + 0x88]
push ecx
mov ecx, dword [esp + 0x74]
mov edx, dword [eax]
movzx ecx, cl
push ecx
push dword [esp + 0x38]
mov ecx, eax
push edi
call dword [edx + 0x20]
jmp 0x1023967a
mov ecx, dword [esp + 0xf0]
push dword [esp + 0xc4]
push dword [esp + 0x34]
mov eax, dword [ecx]
push edi
call dword [eax + 0x3c]
mov ecx, dword [esp + 0xf0]
lea eax, [edi + 1]
push dword [esp + 0x88]
mov edi, ecx
push dword [esp + 0x34]
mov edx, dword [ecx]
push eax
call dword [edx + 0x3c]
jmp 0x10239681
push 1
push dword [esp + 0x38]
push dword [esp + 0x1c]
push dword [esp + 0x1c]
push dword [esp + 0x5c]
push 0x7fffffff
push dword [esp + 0x5c]
push ecx
push edx
push ecx
push edi
push dword [esp + 0x5c]
mov edi, dword [esp + 0x120]
push edi
call fcn.1023abf0
add esp, 0x34
jmp 0x10239681
cmp byte [esp + 0x1c], 0xff
jne 0x102398ee
cmp byte [esp + 0x34], 0
jne 0x102398ee
mov eax, dword [edi]
mov ecx, edi
push 0
call dword [eax + 0x34]
mov edi, dword [esp + 0x30]
mov ecx, eax
push ebx
push edi
mov edx, dword [eax]
push dword [esp + 0x50]
call dword [edx + 4]
mov ebx, dword [esp + 0x54]
mov eax, dword [esp + 0x14]
jmp 0x1023990b
push dword [esp + 0x4c]
mov eax, dword [edi]
push ebx
push dword [esp + 0x38]
push ecx
mov ecx, edi
call dword [eax + 0x38]
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x54]
mov edi, dword [esp + 0x30]
cmp ebx, ebp
jle 0x10239991
mov ecx, ebx
sub ecx, ebp
add ecx, 0xffff
sar ecx, 0x10
cmp ecx, 1
jne 0x10239a12
lea ecx, [ebp*2]
sar ebp, 0x10
sub ebx, ecx
add ebx, dword [esp + 0x64]
mov eax, ebx
cdq
sub eax, edx
sar eax, 1
sar eax, 8
cmp byte [esp + 0x14], 0
mov byte [esp + 0xc8], al
je 0x102399ba
mov edx, dword [esp + 0x1c]
cmp dl, 0xff
jne 0x10239969
cmp byte [esp + 0x34], 0
jne 0x10239969
mov edi, dword [esp + 0x10]
add edi, ebp
jmp 0x1023998f
mov edi, dword [esp + 0x10]
movzx ecx, al
add edi, ebp
movzx eax, dl
mov edx, 0xff
imul ecx, eax
movzx eax, byte [edi]
shr ecx, 8
add ecx, eax
movzx eax, cl
cmp ecx, edx
cmovb edx, eax
mov al, dl
mov byte [edi], al
mov ebp, dword [esp + 0xf0]
mov ebx, dword [esi + 0xc]
mov eax, dword [esp + 0x68]
cmp eax, ebx
mov edi, dword [esp + 0x3c]
cmovge ebx, eax
add ebx, 0xffff
sar ebx, 0x10
mov dword [esp + 0x48], ebx
jmp 0x10239423
mov ebx, dword [esp + 0x1c]
cmp bl, 0xff
jne 0x102399ec
cmp byte [esp + 0x34], 0
jne 0x102399ec
mov ecx, dword [esp + 0xf0]
push 0
mov eax, dword [ecx]
call dword [eax + 0x34]
push dword [esp + 0xc8]
mov ecx, eax
push 1
mov edx, dword [eax]
push edi
push ebp
call dword [edx + 0xc]
jmp 0x10239991
mov ecx, dword [esp + 0xf0]
mov edx, dword [ecx]
movzx ecx, al
movzx eax, bl
imul ecx, eax
shr ecx, 8
push ecx
push edi
push ebp
mov ebp, dword [esp + 0xfc]
mov ecx, ebp
call dword [edx + 0x3c]
jmp 0x10239998
cmp ecx, 2
jne 0x10239b17
sub ebx, dword [esp + 0x64]
mov edx, ebp
sub edx, dword [esp + 0x64]
mov eax, dword [esp + 0x78]
add edx, 0x10000
sar eax, 0xb
sub ebx, edx
mov ecx, edx
mov dword [esp + 0x78], eax
sar ecx, 0xb
imul eax, ecx
sar ebx, 0xb
imul ebx, ebx
sar ebp, 0x10
imul eax, ecx
mov cl, byte [esp + 0x1c]
imul ebx, dword [esp + 0x78]
sar eax, 8
sub cl, al
sar ebx, 8
cmp byte [esp + 0x14], 0
mov byte [esp + 0x9c], cl
mov byte [esp + 0xcc], bl
je 0x10239aaf
mov edi, dword [esp + 0x10]
mov edx, 0xff
movzx ecx, cl
movzx eax, byte [edi + ebp]
add ecx, eax
cmp ecx, edx
movzx eax, cl
cmovb edx, eax
movzx eax, bl
mov byte [edi + ebp], dl
mov edx, 0xff
movzx ecx, byte [edi + ebp + 1]
add ecx, eax
cmp ecx, edx
movzx eax, cl
cmovb edx, eax
mov byte [edi + ebp + 1], dl
jmp 0x10239991
cmp byte [esp + 0x1c], 0xff
jne 0x10239ae6
cmp byte [esp + 0x34], 0
jne 0x10239ae6
mov ecx, dword [esp + 0xf0]
push 0
mov eax, dword [ecx]
call dword [eax + 0x34]
movzx ecx, bl
push ecx
movzx ecx, byte [esp + 0xa0]
mov edx, dword [eax]
push ecx
push edi
push ebp
mov ecx, eax
call dword [edx + 0x20]
jmp 0x10239991
mov ebx, dword [esp + 0xf0]
mov ecx, ebx
push dword [esp + 0x9c]
push edi
mov eax, dword [ebx]
push ebp
call dword [eax + 0x3c]
push dword [esp + 0xcc]
mov edx, dword [ebx]
lea eax, [ebp + 1]
push edi
mov ebp, ebx
push eax
mov ecx, ebp
call dword [edx + 0x3c]
jmp 0x10239998
push 1
push dword [esp + 0x38]
push eax
push dword [esp + 0x1c]
push dword [esp + 0x5c]
push dword [esp + 0x8c]
push 0x7fffffff
push ebx
push ebp
push dword [esp + 0x88]
push ebp
mov ebp, dword [esp + 0x11c]
push edi
push ebp
call fcn.1023abf0
add esp, 0x34
jmp 0x10239998
push 1
push dword [esp + 0x38]
mov ebp, dword [esp + 0xf8]
push dword [esp + 0x1c]
push dword [esp + 0x1c]
push dword [esp + 0x5c]
push dword [esp + 0x8c]
push dword [esp + 0x5c]
push ebx
push edx
push dword [esp + 0x88]
push edi
push eax
push ebp
call fcn.1023abf0
add esp, 0x34
jmp 0x10239998
jle 0x10239bb1
mov eax, dword [esi + 0xc]
mov ecx, esi
mov dword [esi + 0x74], eax
mov eax, dword [esi + 0x18]
mov dword [esi + 0x78], eax
call fcn.10275880
test al, al
je 0x10239bb1
cmp dword [esi + 0x20], edi
jle 0x10239430
mov eax, dword [esi + 0x20]
cmp eax, edi
jg 0x10239bcc
mov ecx, dword [esi + 4]
mov eax, dword [esi]
mov dword [ecx], eax
mov ecx, dword [esi]
mov eax, dword [esi + 4]
mov dword [ecx + 4], eax
jmp 0x10239c96
mov ecx, dword [esp + 0x60]
cmp eax, ecx
cmovl ecx, eax
mov eax, dword [esi + 0xc]
mov dword [esp + 0x60], ecx
mov dword [esp + 0x58], ecx
cmp eax, dword [esp + 0x7c]
jge 0x10239d17
mov edx, dword [esp + 0x18]
mov ecx, eax
cmp dword [edx + 8], esi
jne 0x10239c25
cmp byte [esp + 0x10c], 0
je 0x10239c25
push dword [esp + 0x40]
push dword [esp + 0x30]
push dword [esp + 0x58]
push dword [esp + 0x20]
push dword [esp + 0x20]
push ebp
push eax
push dword [edx + 0xc]
push edi
push edx
call fcn.1023b280
mov ecx, dword [esi + 0xc]
add esp, 0x28
mov edi, dword [esi + 4]
mov edx, edi
cmp dword [edx + 4], 0
lea eax, [edx + 4]
je 0x10239c43
cmp dword [edx + 0xc], ecx
jle 0x10239c43
mov edx, dword [eax]
cmp dword [edx + 4], 0
lea eax, [edx + 4]
jne 0x10239c33
cmp dword [edx], esi
je 0x10239c61
mov eax, dword [esi]
mov dword [edi], eax
mov ecx, dword [esi]
mov eax, dword [esi + 4]
mov dword [ecx + 4], eax
mov dword [esi + 4], edx
mov eax, dword [edx]
mov dword [esi], eax
mov eax, dword [edx]
mov dword [eax + 4], esi
mov dword [edx], esi
mov edi, dword [esp + 0x3c]
cmp byte [esp + 0x110], 0
jne 0x10239c96
mov eax, dword [esi + 4]
cmp dword [eax + 4], 0
je 0x10239c96
mov ecx, dword [eax + 0x10]
add ecx, dword [eax + 0xc]
mov eax, dword [esi + 0x10]
add eax, dword [esi + 0xc]
cmp ecx, eax
jle 0x10239c96
lea eax, [edi + 0x4000]
mov dword [esp + 0x60], eax
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x24]
mov esi, ebx
cmp dword [ebx + 0x1c], eax
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x74]
mov dword [esp + 0x6c], esi
jle 0x10239310
mov ebx, dword [esp + 0x1c]
cmp byte [esp + 0x2b], 0
je 0x1023a383
cmp byte [esp + 0x10c], 0
je 0x10239dca
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x10]
mov eax, dword [eax + 8]
mov ecx, eax
test eax, eax
je 0x10239d20
cmp eax, dword [esp + 0xe8]
je 0x10239d20
push dword [esp + 0x40]
push dword [esp + 0x30]
push dword [esp + 0x58]
push dword [esp + 0x20]
push ebx
push ebp
push dword [eax + 0xc]
push edx
push dword [esp + 0x44]
push dword [esp + 0x3c]
call fcn.1023b280
mov edx, dword [esp + 0x40]
add esp, 0x28
mov ecx, dword [edx + 8]
jmp 0x10239d24
mov dword [esp + 0x7c], eax
jmp 0x10239c65
mov edx, dword [esp + 0x18]
test ecx, ecx
jne 0x10239d67
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0xe8]
mov ecx, dword [esp + 0x24]
mov dword [edx + 0x28], eax
mov eax, dword [esp + 0x44]
mov dword [edx + 0x30], eax
mov eax, dword [esp + 0xe8]
mov dword [edx + 0x2c], ecx
mov eax, dword [eax + 0xc]
mov dword [esi + 0x28], eax
mov eax, esi
mov esi, dword [esp + 0x6c]
mov dword [eax + 0x2c], ecx
mov ecx, eax
mov eax, dword [ecx + 0x24]
mov dword [ecx + 0x30], eax
mov dword [edx + 8], ecx
jmp 0x10239d6e
mov ecx, dword [esp + 0xe8]
mov edx, dword [ecx + 0x10]
mov dword [ecx + 0x18], edi
mov ecx, dword [esp + 0x5c]
sar edx, cl
mov ecx, dword [esp + 0xe8]
mov eax, dword [ecx + 0xc]
add eax, edx
cmp dword [esp + 0x94], 0
mov dword [ecx + 0xc], eax
je 0x10239da1
cmp byte [esp + 0x8c], 0
je 0x1023a383
push dword [esp + 0x40]
push dword [esp + 0x30]
push dword [esp + 0x58]
push dword [esp + 0x20]
push ebx
push ebp
push eax
mov eax, dword [esp + 0x34]
push dword [eax + 0xc]
push edi
push eax
call fcn.1023b280
add esp, 0x28
jmp 0x1023a383
cmp byte [esp + 0x50], 0
jne 0x10239e0f
cmp bl, 0xff
jne 0x10239e07
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x10239e07
mov edi, dword [ecx + 4]
test edi, edi
je 0x10239e07
mov eax, dword [esp + 0x3c]
cmp dword [ecx + 0x1c], eax
jge 0x10239e07
mov eax, dword [ecx + 0x10]
mov ecx, dword [ecx + 0xc]
cdq
xor eax, edx
sub eax, edx
sub ecx, eax
mov eax, dword [edi + 0xc]
add eax, 0x10000
cmp eax, ecx
jge 0x10239e0f
xor bl, bl
mov byte [esp + 0x38], bl
jmp 0x10239e15
mov al, 1
mov byte [esp + 0x38], al
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x24]
mov ebx, dword [esp + 0x20]
mov eax, dword [eax + 0xc]
cmp ecx, eax
cmovl ecx, eax
mov eax, dword [esp + 0x40]
mov edi, eax
sar edx, 0x10
mov dword [esp + 0x18], edx
cmp ebx, edi
jg 0x1023a383
cmp ecx, edi
jle 0x10239e71
mov eax, dword [esp + 0x20]
mov ebx, ecx
mov edx, eax
cmp eax, ecx
jle 0x10239e56
mov ebx, eax
mov edx, ecx
cmp edx, edi
mov eax, edi
cmovl edx, dword [esp + 0x40]
cmp edi, ebx
cmovge eax, ebx
mov ebx, dword [esp + 0x20]
add eax, edx
cdq
sub eax, edx
sar eax, 1
mov ecx, eax
cmp ebx, edi
jne 0x10239e7d
cmp ecx, eax
je 0x1023a383
mov edx, dword [esp + 0x20]
mov ebx, ecx
cmp edx, ecx
cmovle ebx, edx
cmovle edx, ecx
cmp edi, eax
mov dword [esp + 0x20], edx
mov ecx, eax
cmovle ecx, edi
cmovle edi, eax
mov dword [esp + 0x54], ecx
mov ecx, edx
mov edx, dword [esp + 0x18]
add ecx, 0xffff
mov dword [esp + 0x7c], edi
and ecx, 0xffff0000
mov edi, dword [esp + 0x54]
and edi, 0xffff0000
mov dword [esp + 0x48], ecx
mov dword [esp + 0x90], edi
cmp ecx, edi
jg 0x1023a353
cmp ebx, ecx
jge 0x1023a101
mov eax, ecx
sub eax, ebx
mov dword [esp + 0x94], eax
add eax, 0xffff
sar eax, 0x10
cmp eax, 1
jne 0x10239fb1
lea eax, [ecx + ecx]
sub eax, dword [esp + 0x20]
sub eax, ebx
sar ebx, 0x10
cdq
sub eax, edx
sar eax, 1
sar eax, 8
cmp byte [esp + 0x14], 0
mov byte [esp + 0xd0], al
je 0x10239f5c
mov edx, dword [esp + 0x1c]
cmp dl, 0xff
jne 0x10239f31
cmp byte [esp + 0x38], 0
jne 0x10239f31
add ebx, dword [esp + 0x10]
mov byte [ebx], al
jmp 0x1023a101
add ebx, dword [esp + 0x10]
movzx ecx, al
movzx eax, dl
mov edx, 0xff
imul ecx, eax
movzx eax, byte [ebx]
shr ecx, 8
add ecx, eax
movzx eax, cl
cmp ecx, edx
cmovb edx, eax
mov al, dl
mov byte [ebx], al
jmp 0x1023a101
cmp byte [esp + 0x1c], 0xff
jne 0x10239f8e
cmp byte [esp + 0x38], 0
jne 0x10239f8e
mov eax, dword [ebp]
mov ecx, ebp
push 0
call dword [eax + 0x34]
push dword [esp + 0xd0]
mov ecx, eax
push 1
push dword [esp + 0x20]
mov edx, dword [eax]
push ebx
call dword [edx + 0xc]
jmp 0x1023a101
mov edx, dword [ebp]
movzx ecx, al
mov eax, dword [esp + 0x1c]
movzx eax, al
imul ecx, eax
shr ecx, 8
push ecx
push dword [esp + 0x1c]
mov ecx, ebp
push ebx
call dword [edx + 0x3c]
jmp 0x1023a101
cmp eax, 2
jne 0x1023a0d5
mov ecx, dword [esp + 0x94]
mov esi, dword [esp + 0x44]
add ecx, 0xffff0000
sub dword [esp + 0x20], ecx
mov eax, ecx
mov ecx, dword [esp + 0x20]
sub ecx, ebx
sar esi, 0xb
sar ecx, 0xb
imul ecx, ecx
sar eax, 0xb
mov dword [esp + 0x44], esi
imul esi, eax
sar ebx, 0x10
imul ecx, dword [esp + 0x44]
imul esi, eax
sar ecx, 8
mov dword [esp + 0x20], ecx
mov cl, byte [esp + 0x1c]
sub cl, byte [esp + 0x20]
mov eax, esi
sar eax, 8
cmp byte [esp + 0x14], 0
mov dword [esp + 0x60], esi
mov esi, dword [esp + 0x6c]
mov dword [esp + 0x60], eax
mov byte [esp + 0xd4], al
mov byte [esp + 0x84], cl
je 0x1023a074
movzx ecx, al
mov edx, 0xff
mov eax, dword [esp + 0x10]
movzx eax, byte [ebx + eax]
add ecx, eax
cmp ecx, edx
movzx eax, cl
movzx ecx, byte [esp + 0x84]
cmovb edx, eax
mov eax, dword [esp + 0x10]
mov byte [ebx + eax], dl
mov edx, 0xff
movzx eax, byte [ebx + eax + 1]
add ecx, eax
movzx eax, cl
cmp ecx, edx
cmovb edx, eax
mov eax, dword [esp + 0x10]
mov byte [ebx + eax + 1], dl
jmp 0x1023a101
cmp byte [esp + 0x1c], 0xff
jne 0x1023a0ab
cmp byte [esp + 0x38], 0
jne 0x1023a0ab
mov eax, dword [ebp]
mov ecx, ebp
push 0
call dword [eax + 0x34]
movzx ecx, byte [esp + 0x84]
push ecx
mov ecx, dword [esp + 0x64]
mov edx, dword [eax]
movzx ecx, cl
push ecx
push dword [esp + 0x20]
mov ecx, eax
push ebx
call dword [edx + 0x20]
jmp 0x1023a101
push dword [esp + 0xd4]
mov eax, dword [ebp]
mov ecx, ebp
push edx
push ebx
call dword [eax + 0x3c]
push dword [esp + 0x84]
mov edx, dword [ebp]
lea eax, [ebx + 1]
push dword [esp + 0x1c]
mov ecx, ebp
push eax
call dword [edx + 0x3c]
jmp 0x1023a101
push 1
push dword [esp + 0x3c]
push dword [esp + 0x1c]
push dword [esp + 0x1c]
push dword [esp + 0x5c]
push 0x7fffffff
push dword [esp + 0x5c]
push ecx
push dword [esp + 0x40]
push ecx
push ebx
push edx
push ebp
call fcn.1023abf0
add esp, 0x34
mov ecx, dword [esp + 0x48]
cmp ecx, edi
jge 0x1023a16d
mov edx, edi
sub edx, ecx
sar ecx, 0x10
sar edx, 0x10
cmp byte [esp + 0x14], 0
mov dword [esp + 0x74], edx
mov dword [esp + 0x48], ecx
je 0x1023a1d6
xor ebx, ebx
test edx, edx
jle 0x1023a16d
mov edi, dword [esp + 0x10]
mov ebp, edx
mov eax, dword [esp + 0x1c]
add edi, ecx
movzx esi, al
nop dword [eax + eax]
movzx ecx, byte [ebx + edi]
mov edx, 0xff
add ecx, esi
cmp ecx, edx
movzx eax, cl
cmovb edx, eax
mov byte [ebx + edi], dl
inc ebx
cmp ebx, ebp
jl 0x1023a140
mov esi, dword [esp + 0x6c]
mov edi, dword [esp + 0x90]
mov ebp, dword [esp + 0xf0]
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x7c]
cmp eax, edi
jle 0x1023a383
mov ecx, eax
sub ecx, edi
add ecx, 0xffff
sar ecx, 0x10
cmp ecx, 1
jne 0x1023a299
mov edx, dword [esp + 0x54]
lea ecx, [edi + edi]
sub edx, ecx
sar edi, 0x10
add eax, edx
cdq
sub eax, edx
sar eax, 1
sar eax, 8
cmp byte [esp + 0x14], 0
mov byte [esp + 0xd8], al
je 0x1023a24a
mov edx, dword [esp + 0x1c]
cmp dl, 0xff
jne 0x1023a21f
cmp byte [esp + 0x38], 0
jne 0x1023a21f
add edi, dword [esp + 0x10]
mov byte [edi], al
jmp 0x1023a383
cmp byte [esp + 0x1c], 0xff
jne 0x1023a207
cmp byte [esp + 0x38], 0
jne 0x1023a207
mov eax, dword [ebp]
mov ecx, ebp
push 0
call dword [eax + 0x34]
push dword [esp + 0x74]
mov ebx, dword [esp + 0x1c]
mov ecx, eax
push ebx
mov edx, dword [eax]
push dword [esp + 0x50]
call dword [edx + 4]
jmp 0x1023a171
push dword [esp + 0x4c]
mov ebx, dword [esp + 0x1c]
mov eax, dword [ebp]
push edx
push ebx
push ecx
mov ecx, ebp
call dword [eax + 0x38]
jmp 0x1023a171
add edi, dword [esp + 0x10]
movzx ecx, al
movzx eax, dl
mov edx, 0xff
imul ecx, eax
movzx eax, byte [edi]
shr ecx, 8
add ecx, eax
movzx eax, cl
cmp ecx, edx
cmovb edx, eax
mov al, dl
mov byte [edi], al
jmp 0x1023a383
cmp byte [esp + 0x1c], 0xff
jne 0x1023a279
cmp byte [esp + 0x38], 0
jne 0x1023a279
mov eax, dword [ebp]
mov ecx, ebp
push 0
call dword [eax + 0x34]
push dword [esp + 0xd8]
mov ecx, eax
push 1
mov edx, dword [eax]
push ebx
push edi
call dword [edx + 0xc]
jmp 0x1023a383
mov edx, dword [ebp]
movzx ecx, al
mov eax, dword [esp + 0x1c]
movzx eax, al
imul ecx, eax
shr ecx, 8
push ecx
push ebx
push edi
mov ecx, ebp
call dword [edx + 0x3c]
jmp 0x1023a383
cmp ecx, 2
jne 0x1023a330
sar edi, 0x10
cmp byte [esp + 0x14], 0
je 0x1023a2e7
mov ebx, dword [esp + 0x10]
mov edx, 0xff
mov eax, dword [esp + 0x1c]
movzx eax, al
movzx ecx, byte [edi + ebx]
add ecx, eax
cmp ecx, edx
movzx eax, cl
cmovb edx, eax
mov byte [edi + ebx], dl
mov edx, 0xff
cmp byte [edi + ebx + 1], dl
movzx eax, byte [edi + ebx + 1]
cmovb edx, eax
mov byte [edi + ebx + 1], dl
jmp 0x1023a383
cmp byte [esp + 0x1c], 0xff
jne 0x1023a311
cmp byte [esp + 0x38], 0
jne 0x1023a311
mov eax, dword [ebp]
mov ecx, ebp
push 0
call dword [eax + 0x34]
push 0
push 0xff
push ebx
mov edx, dword [eax]
mov ecx, eax
push edi
call dword [edx + 0x20]
jmp 0x1023a383
push dword [esp + 0x4c]
mov eax, dword [ebp]
mov ecx, ebp
push ebx
push edi
call dword [eax + 0x3c]
mov edx, dword [ebp]
lea eax, [edi + 1]
push 0
push ebx
push eax
mov ecx, ebp
call dword [edx + 0x3c]
jmp 0x1023a383
push 1
push dword [esp + 0x3c]
push dword [esp + 0x1c]
push dword [esp + 0x1c]
push dword [esp + 0x5c]
push 0
push 0x7fffffff
push eax
push edi
push dword [esp + 0x78]
push edi
push ebx
jmp 0x1023a37a
mov eax, dword [esp + 0x7c]
push 1
push dword [esp + 0x3c]
push dword [esp + 0x1c]
push dword [esp + 0x1c]
push dword [esp + 0x5c]
push 0
push dword [esp + 0x5c]
push eax
push dword [esp + 0x40]
push dword [esp + 0x78]
push ebx
push edx
push ebp
call fcn.1023abf0
add esp, 0x34
cmp byte [esp + 0x50], 0
je 0x1023a39b
mov edx, dword [esp + 0x3c]
mov ecx, ebp
mov eax, dword [ebp]
push edx
push dword [esp + 0x28]
call dword [eax + 0x48]
mov eax, dword [esp + 0x3c]
mov ebx, eax
mov dword [esp + 0x24], ebx
cmp eax, dword [esp + 0xdc]
jge 0x1023a3ce
lea ecx, [esp + 0x58]
push ecx
push eax
push esi
call fcn.1023bbc0
mov edi, dword [esp + 0x64]
add esp, 0xc
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x2c]
jmp 0x102391b0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd0
ret