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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x198
mov ebx, dword [ebp + 0xc]
mov edi, dword [ebx + 0x10]
mov eax, dword [ebx + 0x14]
cmp edi, eax
jbe 0x488e37
mov dword [ecx], 0
jmp 0x48bb36
mov ebx, dword [ebx]
mov esi, dword [ebp + 8]
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 0x14], ecx
lea eax, [ebx - 1]
cmp eax, 2
jb 0x488e6f
cmp byte [edx + 0x3c], 3
lea eax, [edx + 0x30]
mov esi, 0x55583c
cmovne esi, eax
mov dword [esp + 0x10], esi
cmp byte [esi + 0xc], 2
mov esi, dword [ebp + 8]
jne 0x4891c1
mov dword [esp + 4], ebx
mov ebx, dword [ebp + 0xc]
cmp byte [ebx + 0x18], 0
je 0x48902f
mov eax, dword [edx + 0x280]
test edi, edi
mov dword [esp + 0x18], eax
je 0x489012
lea eax, [edi - 1]
cmp dword [ebx + 0xc], eax
jbe 0x489012
mov ecx, dword [ebx + 8]
test ecx, ecx
je 0x489012
movzx eax, byte [ecx + eax]
mov ecx, dword [edx + 0x260]
mov ebx, dword [edx + 0x268]
or ebx, dword [edx + 0x278]
or ecx, dword [edx + 0x270]
mov byte [esp + 0x10], al
mov eax, dword [edx + 0x26c]
or ecx, ebx
mov ebx, dword [edx + 0x264]
or eax, dword [edx + 0x27c]
or ebx, dword [edx + 0x274]
or ebx, eax
movzx eax, byte [esp + 0x10]
or ebx, ecx
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 4]
mov dword [esp + 0xc], eax
je 0x489546
mov ch, byte [esp + 0x10]
mov dword [esp + 0xd0], 0
mov dword [esp + 0xcc], 0
mov dword [esp + 0xc8], 0
mov dword [esp + 0xc4], 1
mov dword [esp + 0xc0], 0
mov dword [esp + 0xbc], 0
mov dword [esp + 0xb8], 0
mov dword [esp + 0xb4], 0
mov al, ch
and ch, 7
and al, 0x78
mov cl, ch
shr al, 3
neg al
movsx edx, al
mov ebx, dword [esp + edx + 0xcc]
mov eax, dword [esp + edx + 0xd0]
mov dword [esp + 0x24], edx
shld eax, ebx, cl
shl ebx, cl
not cl
mov dword [esp + 0x1c], eax
mov eax, dword [esp + edx + 0xc8]
mov edx, eax
mov esi, eax
mov eax, dword [esp + 0x20]
shr edx, 1
shr edx, cl
mov cl, ch
or edx, ebx
mov ebx, dword [esp + 0x24]
shr eax, 3
and eax, 0xfffffff0
mov ebx, dword [esp + ebx + 0xc4]
shld esi, ebx, cl
shl ebx, cl
mov ecx, dword [esp]
mov dword [esp + 0x40], esi
add ecx, 0x260
mov dword [esp + 0x24], ecx
and edx, dword [ecx + eax + 8]
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp + 0x24]
and ecx, dword [esi + eax + 0xc]
mov esi, dword [esp + 0x40]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x24]
and esi, dword [ecx + eax + 4]
and ebx, dword [ecx + eax]
or esi, dword [esp + 0x1c]
or ebx, edx
or esi, ebx
mov esi, dword [ebp + 8]
je 0x489546
movzx eax, byte [esp + 0x10]
mov dword [esp + 0x48], 4
mov byte [esp + 0x4c], al
jmp 0x489594
mov eax, dword [ebx + 4]
mov dword [esp + 0xc], eax
mov al, 2
mov ebx, dword [esp + 4]
movzx ecx, al
test ebx, ebx
jne 0x48955d
jmp 0x489569
mov eax, dword [edx + 0x280]
test edi, edi
mov dword [esp + 0x20], eax
je 0x48936a
lea eax, [edi - 1]
cmp dword [ebx + 0xc], eax
jbe 0x48936a
mov ecx, dword [ebx + 8]
test ecx, ecx
je 0x48936a
movzx eax, byte [ecx + eax]
mov ecx, dword [edx + 0x260]
mov ebx, dword [edx + 0x268]
or ebx, dword [edx + 0x278]
or ecx, dword [edx + 0x270]
mov byte [esp + 0x10], al
mov eax, dword [edx + 0x26c]
or ecx, ebx
mov ebx, dword [edx + 0x264]
or eax, dword [edx + 0x27c]
or ebx, dword [edx + 0x274]
or ebx, eax
movzx eax, byte [esp + 0x10]
or ebx, ecx
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 4]
mov dword [esp + 0xc], eax
je 0x4899f6
mov ch, byte [esp + 0x10]
mov dword [esp + 0xb0], 0
mov dword [esp + 0xac], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0xa4], 1
mov dword [esp + 0xa0], 0
mov dword [esp + 0x9c], 0
mov dword [esp + 0x98], 0
mov dword [esp + 0x94], 0
mov al, ch
and ch, 7
and al, 0x78
mov cl, ch
shr al, 3
neg al
movsx edx, al
mov ebx, dword [esp + edx + 0xac]
mov eax, dword [esp + edx + 0xb0]
mov dword [esp + 0x24], edx
shld eax, ebx, cl
shl ebx, cl
not cl
mov dword [esp + 0x18], eax
mov eax, dword [esp + edx + 0xa8]
mov esi, eax
mov edx, eax
mov eax, dword [esp + 0x1c]
shr esi, 1
shr esi, cl
mov cl, ch
or esi, ebx
mov ebx, dword [esp + 0x24]
shr eax, 3
and eax, 0xfffffff0
mov ebx, dword [esp + ebx + 0xa4]
shld edx, ebx, cl
shl ebx, cl
mov ecx, dword [esp]
mov dword [esp + 0x40], edx
add ecx, 0x260
mov dword [esp + 0x24], ecx
and esi, dword [ecx + eax + 8]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
and ecx, dword [edx + eax + 0xc]
mov edx, dword [esp + 0x40]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x24]
and edx, dword [ecx + eax + 4]
and ebx, dword [ecx + eax]
or edx, dword [esp + 0x18]
or ebx, esi
mov esi, dword [ebp + 8]
or edx, ebx
je 0x4899f6
movzx eax, byte [esp + 0x10]
mov dword [esp + 0x48], 4
mov byte [esp + 0x4c], al
jmp 0x489a44
mov ebx, dword [ebp + 0xc]
cmp byte [ebx + 0x18], 0
je 0x4893a6
mov eax, dword [edx + 0x280]
test edi, edi
mov dword [esp + 0x40], eax
mov eax, dword [eax + 0x13c]
mov dword [esp + 0x20], eax
je 0x489387
lea eax, [edi - 1]
cmp dword [ebx + 0xc], eax
jbe 0x489387
mov ecx, dword [ebx + 8]
test ecx, ecx
je 0x489387
movzx eax, byte [ecx + eax]
mov ecx, dword [edx + 0x260]
mov ebx, dword [edx + 0x268]
or ebx, dword [edx + 0x278]
or ecx, dword [edx + 0x270]
mov byte [esp + 4], al
mov eax, dword [edx + 0x26c]
or ecx, ebx
mov ebx, dword [edx + 0x264]
or eax, dword [edx + 0x27c]
or ebx, dword [edx + 0x274]
or ebx, eax
movzx eax, byte [esp + 4]
or ebx, ecx
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 4]
mov dword [esp + 0x24], eax
je 0x489fad
mov ch, byte [esp + 4]
mov dword [esp + 0x190], 0
mov dword [esp + 0x18c], 0
mov dword [esp + 0x188], 0
mov dword [esp + 0x184], 1
mov dword [esp + 0x180], 0
mov dword [esp + 0x17c], 0
mov dword [esp + 0x178], 0
mov dword [esp + 0x174], 0
mov al, ch
and ch, 7
and al, 0x78
mov cl, ch
shr al, 3
neg al
movsx edx, al
mov ebx, dword [esp + edx + 0x18c]
mov eax, dword [esp + edx + 0x190]
mov dword [esp + 0x1c], edx
shld eax, ebx, cl
shl ebx, cl
not cl
mov dword [esp + 0xc], eax
mov eax, dword [esp + edx + 0x188]
mov esi, eax
mov edx, eax
mov eax, dword [esp + 0x18]
shr esi, 1
shr esi, cl
mov cl, ch
or esi, ebx
mov ebx, dword [esp + 0x1c]
shr eax, 3
and eax, 0xfffffff0
mov ebx, dword [esp + ebx + 0x184]
shld edx, ebx, cl
shl ebx, cl
mov ecx, dword [esp]
mov dword [esp + 0x44], edx
add ecx, 0x260
mov dword [esp + 0x1c], ecx
and esi, dword [ecx + eax + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x1c]
and ecx, dword [edx + eax + 0xc]
mov edx, dword [esp + 0x44]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x1c]
and edx, dword [ecx + eax + 4]
and ebx, dword [ecx + eax]
or edx, dword [esp + 0xc]
or ebx, esi
mov esi, dword [ebp + 8]
or edx, ebx
je 0x489fad
movzx eax, byte [esp + 4]
mov dword [esp + 0x48], 4
mov byte [esp + 0x4c], al
jmp 0x489fe7
mov eax, dword [ebx + 4]
mov dword [esp + 0xc], eax
mov al, 2
mov ebx, dword [esp + 4]
movzx ecx, al
test ebx, ebx
jne 0x489a0d
jmp 0x489a19
mov eax, dword [ebx + 4]
mov dword [esp + 0x24], eax
mov al, 2
mov edx, dword [esi + 0x88]
movzx eax, al
cmp edx, eax
ja 0x489fca
jmp 0x48bd63
mov eax, dword [edx + 0x280]
test edi, edi
mov dword [esp + 0x44], eax
mov eax, dword [eax + 0x13c]
mov dword [esp + 0x1c], eax
je 0x489973
lea eax, [edi - 1]
cmp dword [ebx + 0xc], eax
jbe 0x489973
mov ecx, dword [ebx + 8]
test ecx, ecx
je 0x489973
movzx eax, byte [ecx + eax]
mov ecx, dword [edx + 0x260]
mov ebx, dword [edx + 0x268]
or ebx, dword [edx + 0x278]
or ecx, dword [edx + 0x270]
mov byte [esp + 4], al
mov eax, dword [edx + 0x26c]
or ecx, ebx
mov ebx, dword [edx + 0x264]
or eax, dword [edx + 0x27c]
or ebx, dword [edx + 0x274]
movzx edx, byte [esp + 4]
or ebx, eax
mov dword [esp + 0x18], edx
or ebx, ecx
mov ecx, dword [ebp + 0xc]
mov ebx, dword [ecx + 4]
je 0x48a2d1
mov ch, byte [esp + 4]
mov dword [esp + 0x130], 0
mov dword [esp + 0x12c], 0
mov dword [esp + 0x128], 0
mov dword [esp + 0x124], 1
mov dword [esp + 0x120], 0
mov dword [esp + 0x11c], 0
mov dword [esp + 0x118], 0
mov dword [esp + 0x114], 0
mov dword [esp + 0x6c], ebx
mov al, ch
and ch, 7
and al, 0x78
mov cl, ch
shr al, 3
neg al
movsx edx, al
mov ebx, dword [esp + edx + 0x12c]
mov eax, dword [esp + edx + 0x130]
mov dword [esp + 0x20], edx
shld eax, ebx, cl
shl ebx, cl
not cl
mov dword [esp + 0xc], eax
mov eax, dword [esp + edx + 0x128]
mov esi, eax
mov edx, eax
mov eax, dword [esp + 0x18]
shr esi, 1
shr esi, cl
mov cl, ch
or esi, ebx
mov ebx, dword [esp + 0x20]
shr eax, 3
and eax, 0xfffffff0
mov ebx, dword [esp + ebx + 0x124]
shld edx, ebx, cl
shl ebx, cl
mov ecx, dword [esp]
mov dword [esp + 0x24], edx
add ecx, 0x260
mov dword [esp + 0x20], ecx
and esi, dword [ecx + eax + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x20]
and ecx, dword [edx + eax + 0xc]
mov edx, dword [esp + 0x24]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x20]
and edx, dword [ecx + eax + 4]
and ebx, dword [ecx + eax]
or edx, dword [esp + 0xc]
or ebx, esi
mov esi, dword [ebp + 8]
or edx, ebx
mov ebx, dword [esp + 0x6c]
je 0x48a2d1
movzx eax, byte [esp + 4]
mov dword [esp + 0x48], 4
mov byte [esp + 0x4c], al
jmp 0x48a30b
mov edx, dword [esp]
mov eax, dword [esp + 0x20]
movzx eax, byte [edx + eax + 0x60]
mov ebx, dword [esp + 4]
movzx ecx, al
test ebx, ebx
je 0x489569
cmp ebx, 1
jne 0x48961c
add ecx, 6
mov edx, dword [esi + 0x88]
cmp ecx, edx
jae 0x489f4a
mov edx, dword [esi + 0x84]
mov edx, dword [edx + ecx*4]
test edx, edx
js 0x489f84
mov dword [esp + 0x4c], edx
mov dword [esp + 0x48], 5
lea edx, [esp + 0x48]
lea ecx, [esp + 0x28]
push edi
call fcn.0048c010
add esp, 4
cmp dword [esp + 0x28], 0
mov edx, dword [esp + 0x2c]
jne 0x489a60
cmp dword [esi + 0xb0], 1
jne 0x4895da
mov eax, dword [esi + 0xb8]
mov ecx, dword [esi + 0xb4]
mov esi, eax
sub esi, ecx
neg esi
sub eax, ecx
cmovb eax, esi
mov esi, dword [ebp + 8]
add dword [esi + 0x70], eax
cmp edi, dword [esp + 8]
mov dword [esi + 0xb0], 1
mov dword [esi + 0xb4], edi
mov dword [esi + 0xb8], edi
jae 0x48963b
mov eax, dword [ebp + 0xc]
mov ebx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x10], eax
mov eax, dword [esp]
mov dword [esp + 4], ebx
mov eax, dword [eax + 0x284]
and eax, 0x1f
mov dword [esp + 0x24], eax
jmp 0x4896ee
test byte [edx + 0x59], 1
jne 0x489938
mov eax, dword [esp + 0xc]
mov dword [esp + 0x48], 2
mov dword [esp + 0x4c], eax
jmp 0x489594
mov eax, dword [ebp + 0xc]
mov esi, dword [eax + 0xc]
mov ecx, dword [esp + 8]
cmp ecx, esi
jae 0x4899a1
mov eax, dword [eax + 8]
mov edi, dword [ebp + 8]
movzx ebx, byte [eax + ecx]
mov eax, dword [esp]
mov ecx, edx
and ecx, 0x7ffffff
movzx esi, bl
movzx eax, byte [eax + esi + 0x160]
add ecx, eax
mov eax, dword [edi + 0x7c]
cmp ecx, eax
jae 0x48bb51
mov eax, dword [edi + 0x78]
mov edi, dword [eax + ecx*4]
test edi, edi
js 0x48a70e
test edi, 0x8000000
jne 0x48b7ea
test edi, 0x20000000
je 0x4899ef
movzx eax, byte [0x5b9430]
xor ecx, ecx
mov edx, 0xc
call fcn.0051b940
mov ecx, dword [esp + 8]
test eax, eax
je 0x48bf23
mov edx, ecx
mov ecx, dword [esp + 0x14]
mov byte [eax], 0
mov byte [eax + 1], bl
mov dword [eax + 4], edx
jmp 0x48b548
mov edx, ecx
nop word cs:[eax + eax]
nop
inc edi
mov esi, dword [ebp + 8]
cmp edi, dword [esp + 8]
jae 0x48998e
cmp edx, 0x7ffffff
jbe 0x489770
cmp dword [esi + 0xb0], 0
je 0x48be8b
cmp edi, dword [esp + 0x10]
mov dword [esi + 0xb8], edi
jae 0x48bc96
movzx ebx, byte [ebx + edi]
mov eax, dword [esp]
mov ecx, edx
and ecx, 0x7ffffff
movzx eax, byte [eax + ebx + 0x160]
add ecx, eax
mov eax, dword [esi + 0x7c]
cmp ecx, eax
jae 0x48bb51
mov eax, dword [esi + 0x78]
mov esi, dword [eax + ecx*4]
test esi, esi
js 0x48990b
mov ebx, dword [esp + 4]
mov eax, edi
cmp esi, 0x7ffffff
mov edx, esi
mov edi, eax
jbe 0x4896e0
test esi, 0x10000000
jne 0x4898ee
jmp 0x48a226
cmp edi, dword [esp + 8]
jae 0x4896e0
mov eax, dword [esi + 0x7c]
mov ecx, dword [esi + 0x78]
mov dword [esp + 0x1c], eax
mov eax, ecx
nop word cs:[eax + eax]
movzx ecx, byte [ebx + edi]
mov esi, dword [esp]
movzx ecx, byte [esi + ecx + 0x160]
add ecx, edx
mov ecx, dword [eax + ecx*4]
cmp ecx, 0x7ffffff
ja 0x48983e
mov edx, dword [esp + 8]
mov esi, eax
lea eax, [edi + 3]
cmp eax, edx
jae 0x4896d3
movzx edx, byte [ebx + edi + 1]
mov ebx, dword [esp]
mov dword [esp + 0xc], eax
mov eax, esi
movzx edx, byte [ebx + edx + 0x160]
add edx, ecx
mov edx, dword [esi + edx*4]
cmp edx, 0x7ffffff
ja 0x4898c9
mov esi, dword [esp + 4]
movzx ecx, byte [esi + edi + 2]
movzx ecx, byte [ebx + ecx + 0x160]
add ecx, edx
mov ecx, dword [eax + ecx*4]
cmp ecx, 0x7ffffff
ja 0x4898f7
movzx edx, byte [esi + edi + 3]
movzx edx, byte [ebx + edx + 0x160]
add edx, ecx
mov edx, dword [eax + edx*4]
cmp edx, 0x7ffffff
ja 0x4898ce
add edi, 4
mov ebx, dword [esp + 4]
cmp edi, dword [esp + 8]
jb 0x489790
jmp 0x4896e0
mov dword [esp + 0xc], edi
mov esi, ecx
test esi, esi
jns 0x4898de
mov ecx, dword [ebp + 8]
mov edi, eax
mov eax, dword [esp + 0xc]
cmp dword [ecx + 0xb0], 0
je 0x48be8b
mov dword [ecx + 0xb8], eax
mov ecx, dword [esp]
movzx esi, byte [ebx + eax]
movzx ecx, byte [ecx + esi + 0x160]
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0x1c]
add ecx, edx
cmp ecx, esi
jae 0x48bdd0
mov esi, dword [edi + ecx*4]
test esi, esi
jns 0x48974b
mov eax, dword [esp]
mov esi, dword [esp + 0x20]
lea ecx, [esp + 0x28]
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 8]
shl esi, 8
mov dword [esp + 0x2c], eax
push esi
call fcn.00541b40
add esp, 4
test eax, eax
jne 0x48bd0b
mov eax, dword [esp + 0xc]
mov esi, edx
jmp 0x48974b
inc edi
mov dword [esp + 0xc], edi
mov ebx, dword [esp + 4]
mov esi, edx
mov edx, ecx
test esi, esi
js 0x48984c
mov eax, dword [esp + 0xc]
test esi, 0x10000000
je 0x48a226
mov edx, esi
mov edi, eax
jmp 0x4896e0
add edi, 2
mov ebx, esi
mov esi, ecx
mov dword [esp + 0xc], edi
test esi, esi
jns 0x4898de
jmp 0x48984c
mov eax, dword [esp]
shl ebx, 8
lea ecx, [esp + 0x28]
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x2c], eax
push ebx
call fcn.00541b40
add esp, 4
test eax, eax
jne 0x48b523
mov esi, edx
jmp 0x489745
mov byte [esp + 0x10], al
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0xc]
cmp dword [ebx + 0x15c], eax
jbe 0x489f54
lea edx, [eax + eax*2]
mov ebx, dword [esp + 4]
movzx eax, byte [esp + 0x10]
lea ecx, [ecx + edx*2 + 0xc]
mov edx, dword [esi + 0x88]
cmp ecx, edx
jb 0x489577
jmp 0x489f4a
mov ebx, dword [ebx + 4]
mov al, 2
mov edx, dword [esi + 0x88]
movzx eax, al
cmp edx, eax
ja 0x48a2ee
jmp 0x48bd63
mov eax, dword [ebp + 0xc]
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 8]
cmp ecx, esi
jb 0x48964d
mov eax, dword [esp]
mov dword [esp + 0x10], esi
mov edi, dword [ebp + 8]
mov ecx, edx
and ecx, 0x7ffffff
movzx esi, byte [eax + 0x25f]
shl esi, 0x10
add esi, 0x10001
mov eax, esi
shr eax, 0x10
add ecx, eax
mov eax, dword [edi + 0x7c]
cmp ecx, eax
jae 0x48bddc
mov eax, dword [edi + 0x78]
mov edi, dword [eax + ecx*4]
test edi, edi
js 0x48a762
test edi, 0x8000000
jne 0x48b881
xor eax, eax
jmp 0x48b8f0
mov edx, dword [esp]
mov eax, dword [esp + 0x1c]
movzx eax, byte [edx + eax + 0x60]
mov ebx, dword [esp + 4]
movzx ecx, al
test ebx, ebx
je 0x489a19
cmp ebx, 1
jne 0x489dd0
add ecx, 6
mov edx, dword [esi + 0x88]
cmp ecx, edx
jae 0x489f4a
mov edx, dword [esi + 0x84]
mov edx, dword [edx + ecx*4]
test edx, edx
js 0x48a2a8
mov dword [esp + 0x4c], edx
mov dword [esp + 0x48], 5
lea edx, [esp + 0x48]
lea ecx, [esp + 0x28]
push edi
call fcn.0048c010
add esp, 4
cmp dword [esp + 0x28], 0
mov edx, dword [esp + 0x2c]
je 0x489a72
mov eax, dword [esp + 0x14]
mov dword [eax + 4], edx
mov dword [eax], 2
jmp 0x48bb36
cmp dword [esi + 0xb0], 1
jne 0x489a98
mov eax, dword [esi + 0xb8]
mov ecx, dword [esi + 0xb4]
mov esi, eax
sub esi, ecx
neg esi
sub eax, ecx
cmovb eax, esi
mov esi, dword [ebp + 8]
add dword [esi + 0x70], eax
mov ebx, dword [esp + 8]
mov dword [esi + 0xb0], 1
mov dword [esi + 0xb4], edi
mov dword [esi + 0xb8], edi
cmp edi, ebx
jae 0x489def
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x24], 0
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x1c], eax
mov eax, dword [esp]
mov dword [esp + 4], ecx
mov eax, dword [eax + 0x284]
and eax, 0x1f
mov dword [esp + 0x6c], eax
jmp 0x489af2
mov esi, edi
inc esi
cmp esi, ebx
mov edi, esi
jae 0x489e8e
cmp edx, 0x7ffffff
jbe 0x489b80
mov esi, dword [ebp + 8]
cmp dword [esi + 0xb0], 0
je 0x48be8b
cmp edi, dword [esp + 0x1c]
mov dword [esi + 0xb8], edi
jae 0x48bca6
mov eax, dword [esp + 4]
mov ecx, edx
and ecx, 0x7ffffff
movzx ebx, byte [eax + edi]
mov eax, dword [esp]
movzx eax, byte [eax + ebx + 0x160]
add ecx, eax
mov eax, dword [esi + 0x7c]
cmp ecx, eax
jae 0x48bb51
mov eax, dword [esi + 0x78]
mov eax, dword [eax + ecx*4]
test eax, eax
js 0x489d9f
mov ebx, dword [esp + 8]
mov esi, edi
mov edx, eax
cmp edx, 0x7ffffff
jbe 0x489ae7
test edx, 0x10000000
jne 0x489ae7
jmp 0x489d0e
cmp edi, ebx
jae 0x489ae5
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x78]
mov dword [esp + 0xc], eax
mov eax, dword [ecx + 0x7c]
mov dword [esp + 0x10], eax
nop dword [eax]
mov ecx, dword [esp + 4]
mov esi, dword [esp]
movzx ecx, byte [ecx + edi]
movzx ecx, byte [esi + ecx + 0x160]
mov esi, dword [esp + 0xc]
add ecx, edx
mov ecx, dword [esi + ecx*4]
cmp ecx, 0x7ffffff
ja 0x489c58
mov esi, edi
add edi, 3
cmp edi, ebx
jae 0x489cd5
mov ebx, dword [esp + 4]
mov eax, dword [esp]
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0xc]
movzx edx, byte [ebx + esi + 1]
movzx edx, byte [eax + edx + 0x160]
add edx, ecx
mov edx, dword [edi + edx*4]
cmp edx, 0x7ffffff
ja 0x489cdc
movzx ecx, byte [ebx + esi + 2]
movzx ecx, byte [eax + ecx + 0x160]
add ecx, edx
mov ecx, dword [edi + ecx*4]
cmp ecx, 0x7ffffff
ja 0x489ce1
movzx edx, byte [ebx + esi + 3]
movzx edx, byte [eax + edx + 0x160]
add edx, ecx
mov edx, dword [edi + edx*4]
cmp edx, 0x7ffffff
ja 0x489ce8
mov ebx, dword [esp + 8]
mov eax, dword [esp + 0x10]
add esi, 4
mov edi, esi
cmp esi, ebx
jb 0x489ba0
jmp 0x489ae5
mov esi, edi
mov ebx, ecx
test ebx, ebx
jns 0x489cfc
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0xb0], 0
je 0x48be8b
mov dword [ecx + 0xb8], esi
mov ecx, dword [esp + 4]
mov ebx, dword [esp + 8]
movzx edi, byte [ecx + esi]
mov ecx, dword [esp]
movzx ecx, byte [ecx + edi + 0x160]
add ecx, edx
cmp ecx, eax
jae 0x48bb51
mov eax, dword [esp + 0xc]
mov eax, dword [eax + ecx*4]
test eax, eax
jns 0x489b5a
mov eax, dword [esp]
shl edi, 8
lea ecx, [esp + 0x28]
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x2c], eax
push edi
call fcn.00541b40
add esp, 4
test eax, eax
je 0x489b5c
jmp 0x48bd39
mov edx, ecx
jmp 0x489ae7
mov ebx, edx
inc esi
jmp 0x489cee
add esi, 2
mov ebx, ecx
jmp 0x489cf0
mov esi, dword [esp + 0x18]
mov ebx, edx
mov edx, ecx
mov eax, dword [esp + 0x10]
test ebx, ebx
js 0x489c64
mov edx, ebx
mov ebx, dword [esp + 8]
test edx, 0x10000000
jne 0x489ae7
test edx, 0x8000000
je 0x48a5e4
mov eax, dword [esp + 0x20]
mov dword [esp + 0x24], 1
mov dword [esp + 0x40], 0
cmp dword [eax + 0x15c], 1
je 0x489d71
mov edi, edx
mov ecx, dword [esp + 0x6c]
and edi, 0x7ffffff
shr edi, cl
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x94]
cmp edi, eax
jae 0x48bdc2
mov ecx, dword [ecx + 0x90]
mov eax, dword [ecx + edi*8 + 4]
test eax, eax
je 0x48bd6f
mov ecx, dword [ecx + edi*8]
test byte [ecx + 8], 2
jne 0x489d7a
mov dword [esp + 0x44], esi
jmp 0x489ae7
cmp eax, 0xd
jb 0x48bed7
add eax, 0xfffffff3
cmp eax, 3
jbe 0x48bee8
mov eax, dword [ecx + 0x15]
mov dword [esp + 0x44], esi
mov dword [esp + 0x40], eax
jmp 0x489ae7
mov eax, dword [esp]
shl ebx, 8
lea ecx, [esp + 0x28]
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x2c], eax
push ebx
call fcn.00541b40
add esp, 4
mov ebx, dword [esp + 8]
test eax, eax
jne 0x48b523
mov esi, edi
jmp 0x489b5c
test byte [edx + 0x59], 1
jne 0x489f14
mov eax, dword [esp + 0xc]
mov dword [esp + 0x48], 2
mov dword [esp + 0x4c], eax
jmp 0x489a44
mov eax, dword [ebp + 0xc]
mov edi, ebx
mov dword [esp + 0x24], 0
mov esi, dword [eax + 0xc]
cmp edi, esi
jae 0x489e9f
mov eax, dword [eax + 8]
mov ecx, edx
and ecx, 0x7ffffff
movzx ebx, byte [eax + edi]
mov eax, dword [esp]
mov edi, dword [ebp + 8]
movzx esi, bl
movzx eax, byte [eax + esi + 0x160]
add ecx, eax
mov eax, dword [edi + 0x7c]
cmp ecx, eax
jae 0x48bb51
mov eax, dword [edi + 0x78]
mov edi, dword [eax + ecx*4]
test edi, edi
js 0x48ae8d
test edi, 0x8000000
jne 0x48ba4e
mov esi, dword [ebp + 8]
test edi, 0x20000000
je 0x48baef
movzx eax, byte [0x5b9430]
xor ecx, ecx
mov edx, 0xc
call fcn.0051b940
test eax, eax
je 0x48bf23
mov byte [eax], 0
mov byte [eax + 1], bl
mov ebx, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov dword [eax + 4], ebx
jmp 0x48b548
mov eax, dword [ebp + 0xc]
mov esi, dword [esp + 0x1c]
mov edi, ebx
cmp edi, esi
jb 0x489e07
mov eax, dword [esp]
mov ebx, esi
mov edi, dword [ebp + 8]
mov ecx, edx
and ecx, 0x7ffffff
movzx esi, byte [eax + 0x25f]
shl esi, 0x10
add esi, 0x10001
mov eax, esi
shr eax, 0x10
add ecx, eax
mov eax, dword [edi + 0x7c]
cmp ecx, eax
jae 0x48bddc
mov eax, dword [edi + 0x78]
mov edi, dword [eax + ecx*4]
test edi, edi
js 0x48aeda
mov esi, dword [ebp + 8]
test edi, 0x8000000
je 0x48baef
mov eax, dword [esp + 0x20]
mov dword [esp + 0x24], 1
cmp dword [eax + 0x15c], 1
jne 0x48a57c
mov dword [esp + 0x40], 0
jmp 0x48baeb
mov byte [esp + 0x10], al
mov ebx, dword [esp + 0x20]
mov eax, dword [esp + 0xc]
cmp dword [ebx + 0x15c], eax
jbe 0x48a278
lea edx, [eax + eax*2]
mov ebx, dword [esp + 4]
movzx eax, byte [esp + 0x10]
lea ecx, [ecx + edx*2 + 0xc]
mov edx, dword [esi + 0x88]
cmp ecx, edx
jb 0x489a27
push 0x5557fc
call fcn.0053bb10
mov ecx, dword [edx + 0x284]
movzx eax, byte [esp + 0x10]
mov edx, 1
and ecx, 0x1f
shl edx, cl
cmp ecx, 0x1b
jae 0x48bef9
mov ebx, dword [esp + 4]
or edx, 0x40000000
test edx, edx
jns 0x489588
mov ecx, dword [esp]
movzx eax, al
lea edx, [esp + 0x28]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], esi
lea ecx, [esp + 0x48]
push eax
push dword [esp + 0x10]
push ebx
call fcn.005434e0
add esp, 0xc
jmp 0x489594
mov eax, dword [esp]
mov ecx, dword [esp + 0x18]
movzx eax, byte [eax + ecx + 0x60]
mov edx, dword [esi + 0x88]
movzx eax, al
cmp edx, eax
jbe 0x48bd63
mov ecx, dword [esi + 0x84]
mov ecx, dword [ecx + eax*4]
test ecx, ecx
js 0x48a62c
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x48], 5
lea ecx, [esp + 0x28]
lea edx, [esp + 0x48]
push edi
call fcn.0048c010
add esp, 4
cmp dword [esp + 0x28], 0
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 8]
je 0x48a019
mov eax, dword [esp + 0x14]
mov dword [eax + 4], ebx
mov dword [eax], 2
jmp 0x48bb36
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x18], eax
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov edx, dword [ecx + 8]
mov dword [esp + 0xc], eax
mov ecx, dword [ecx + 0x20]
mov eax, dword [esp + 0xc]
dec edx
and edx, 0xfffffff8
lea edx, [edx + eax + 8]
lea eax, [esp + 0x84]
push esi
push edi
push dword [esp + 0x20]
push dword [esp + 0x10]
mov dword [esp + 0x7c], edx
push edx
push eax
mov dword [esp + 0x5c], ecx
call ecx
add esp, 0x18
cmp dword [esp + 0x84], 0
je 0x48a54b
cmp dword [esp + 0x20], 0
mov edi, dword [esp + 0x88]
je 0x48a81c
mov eax, dword [esp + 8]
mov ecx, dword [esp]
mov dword [esp + 0x78], edi
cmp dword [esp + 0x18], eax
mov dword [esp + 0x7c], eax
jb 0x48bf56
inc eax
cmp eax, edi
jb 0x48bf56
test edi, edi
je 0x48a558
lea eax, [edi - 1]
cmp dword [esp + 0x18], eax
jbe 0x48a558
mov esi, ecx
mov edx, dword [ecx + 0x26c]
mov ecx, dword [ecx + 0x260]
mov ebx, dword [esi + 0x268]
or ecx, dword [esi + 0x270]
or edx, dword [esi + 0x27c]
or ebx, dword [esi + 0x278]
or ecx, ebx
mov ebx, dword [esi + 0x264]
or ebx, dword [esi + 0x274]
or ebx, edx
or ebx, ecx
mov ecx, dword [esp + 4]
movzx ecx, byte [ecx + eax]
movzx eax, cl
mov dword [esp + 0x1c], eax
je 0x48a7b3
mov eax, ecx
mov dword [esp + 0x170], 0
mov dword [esp + 0x16c], 0
mov dword [esp + 0x168], 0
mov dword [esp + 0x164], 1
mov dword [esp + 0x160], 0
mov dword [esp + 0x15c], 0
mov dword [esp + 0x158], 0
mov dword [esp + 0x154], 0
mov byte [esp + 0x60], cl
and al, 0x78
mov ch, byte [esp + 0x60]
shr al, 3
neg al
movsx eax, al
mov dword [esp + 0x10], eax
and ch, 7
mov ebx, dword [esp + eax + 0x16c]
mov eax, dword [esp + eax + 0x170]
mov cl, ch
shld eax, ebx, cl
shl ebx, cl
not cl
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x10]
mov edx, dword [esp + eax + 0x168]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x5c], edx
shr edx, 1
shr eax, 3
shr edx, cl
mov cl, ch
and eax, 0xfffffff0
or edx, ebx
mov ebx, dword [esp + 0x10]
mov ebx, dword [esp + ebx + 0x164]
shld dword [esp + 0x5c], ebx, cl
shl ebx, cl
lea ecx, [esi + 0x260]
mov dword [esp + 0x10], ecx
and edx, dword [ecx + eax + 8]
mov ecx, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
and ecx, dword [esi + eax + 0xc]
mov esi, dword [esp + 0x10]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x10]
and ebx, dword [ecx + eax]
mov ecx, dword [esp + 0x5c]
and ecx, dword [esi + eax + 4]
mov esi, dword [esp]
movzx eax, byte [esp + 0x60]
or ebx, edx
or ecx, dword [esp + 0xc]
or ecx, ebx
je 0x48a7b3
mov dword [esp + 0x48], 4
mov byte [esp + 0x4c], al
jmp 0x48a7ed
test esi, 0x8000000
jne 0x48a55f
test esi, 0x40000000
jne 0x48b6ff
test esi, 0x20000000
je 0x48bfd0
mov ecx, dword [ebp + 8]
mov edx, eax
mov esi, eax
call fcn.0048c0e0
mov edx, dword [esp + 0x10]
mov eax, esi
cmp esi, edx
jae 0x48be67
movzx ecx, byte [ebx + eax]
mov edx, eax
call fcn.0048c120
mov ecx, dword [esp + 0x14]
jmp 0x48b548
mov ecx, dword [edx + 0x284]
movzx eax, byte [esp + 0x10]
mov edx, 1
and ecx, 0x1f
shl edx, cl
cmp ecx, 0x1b
jae 0x48bef9
mov ebx, dword [esp + 4]
or edx, 0x40000000
test edx, edx
jns 0x489a38
mov ecx, dword [esp]
movzx eax, al
lea edx, [esp + 0x28]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], esi
lea ecx, [esp + 0x48]
push eax
push dword [esp + 0x10]
push ebx
call fcn.005434e0
add esp, 0xc
jmp 0x489a44
mov eax, dword [esp]
mov ecx, dword [esp + 0x18]
movzx eax, byte [eax + ecx + 0x60]
mov edx, dword [esi + 0x88]
movzx eax, al
cmp edx, eax
jbe 0x48bd63
mov ecx, dword [esi + 0x84]
mov ecx, dword [ecx + eax*4]
test ecx, ecx
js 0x48a6ea
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x48], 5
lea ecx, [esp + 0x28]
lea edx, [esp + 0x48]
push edi
call fcn.0048c010
add esp, 4
cmp dword [esp + 0x28], 0
mov ecx, dword [esp + 0x2c]
je 0x48a339
mov eax, dword [esp + 0x14]
mov dword [eax + 4], ecx
mov dword [eax], 2
jmp 0x48bb36
mov eax, dword [ebp + 0xc]
mov dword [esp + 4], ecx
mov dword [esp + 0x6c], ebx
mov ecx, dword [eax + 8]
mov ebx, dword [eax + 0xc]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov edx, dword [ecx + 8]
mov ecx, dword [ecx + 0x20]
dec edx
and edx, 0xfffffff8
lea eax, [edx + eax + 8]
lea edx, [esp + 0x84]
push dword [esp + 8]
push edi
mov edi, ebx
push ebx
push dword [esp + 0x18]
mov dword [esp + 0x50], eax
push eax
push edx
mov dword [esp + 0x3c], ecx
call ecx
add esp, 0x18
cmp dword [esp + 0x84], 0
je 0x48a54b
mov eax, dword [esp + 0x88]
cmp dword [esp + 0x1c], 0
mov ebx, edi
mov dword [esp + 0x20], ebx
mov edi, eax
je 0x48af94
mov eax, dword [esp + 8]
mov dword [esp + 0x78], edi
cmp ebx, eax
mov ebx, dword [esp]
mov dword [esp + 0x7c], eax
jb 0x48bf72
inc eax
cmp eax, edi
jb 0x48bf72
test edi, edi
je 0x48a5dd
lea eax, [edi - 1]
cmp dword [esp + 0x20], eax
jbe 0x48a5dd
mov ecx, dword [ebx + 0x260]
mov esi, dword [ebx + 0x268]
mov edx, dword [ebx + 0x26c]
or esi, dword [ebx + 0x278]
or ecx, dword [ebx + 0x270]
or edx, dword [ebx + 0x27c]
or ecx, esi
mov esi, dword [ebx + 0x264]
or esi, dword [ebx + 0x274]
or esi, edx
or esi, ecx
mov ecx, dword [esp + 0xc]
movzx ecx, byte [ecx + eax]
movzx eax, cl
mov dword [esp + 0x10], eax
je 0x48af20
mov eax, ecx
mov dword [esp + 0x110], 0
mov dword [esp + 0x10c], 0
mov dword [esp + 0x108], 0
mov dword [esp + 0x104], 1
mov dword [esp + 0x100], 0
mov dword [esp + 0xfc], 0
mov dword [esp + 0xf8], 0
mov dword [esp + 0xf4], 0
mov byte [esp + 0x60], cl
and al, 0x78
mov ch, byte [esp + 0x60]
shr al, 3
neg al
movsx eax, al
mov dword [esp + 0x5c], eax
and ch, 7
mov esi, dword [esp + eax + 0x10c]
mov eax, dword [esp + eax + 0x110]
mov cl, ch
shld eax, esi, cl
shl esi, cl
not cl
mov dword [esp + 4], eax
mov eax, dword [esp + 0x5c]
mov ebx, dword [esp + eax + 0x108]
mov dword [esp + 0x18], edi
mov eax, dword [esp + 0x10]
mov edi, ebx
shr eax, 3
shr edi, 1
and eax, 0xfffffff0
shr edi, cl
mov cl, ch
or edi, esi
mov esi, dword [esp + 0x5c]
mov esi, dword [esp + esi + 0x104]
shld ebx, esi, cl
shl esi, cl
mov ecx, dword [esp]
add ecx, 0x260
mov dword [esp + 0x5c], ecx
and edi, dword [ecx + eax + 8]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x5c]
and ecx, dword [edx + eax + 0xc]
mov edx, dword [esp + 0x5c]
and ebx, dword [edx + eax + 4]
and esi, dword [edx + eax]
mov dword [esp + 4], ecx
movzx eax, byte [esp + 0x60]
or ebx, dword [esp + 4]
or esi, edi
mov edi, dword [esp + 0x18]
or ebx, esi
je 0x48af20
mov esi, dword [ebp + 8]
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x48], 4
mov byte [esp + 0x4c], al
jmp 0x48af61
mov ecx, dword [esp + 0x14]
xor eax, eax
mov dword [ecx], eax
jmp 0x48bb36
mov al, 2
jmp 0x48a7bc
mov ecx, dword [esp + 0x18]
mov ebx, eax
xor eax, eax
cmp dword [ecx + 0x15c], 1
jne 0x48a653
mov esi, dword [ebp + 8]
jmp 0x48a6a6
mov eax, dword [esp]
mov edx, dword [esi + 0x94]
and edi, 0x7ffffff
movzx ecx, byte [eax + 0x284]
shr edi, cl
cmp edi, edx
jae 0x48be07
mov eax, dword [esi + 0x90]
mov dword [esp + 0x40], 0
mov edx, dword [eax + edi*8 + 4]
test edx, edx
je 0x48bd6f
mov eax, dword [eax + edi*8]
test byte [eax + 8], 2
je 0x48baeb
cmp edx, 0xd
jb 0x48bf38
add edx, 0xfffffff3
cmp edx, 3
ja 0x48badc
jmp 0x48bf47
mov al, 2
jmp 0x48af2f
mov edi, esi
mov esi, dword [esp + 4]
test edx, 0x40000000
jne 0x48ade5
test edx, 0x20000000
je 0x48bfd0
mov ecx, dword [ebp + 8]
mov edx, edi
call fcn.0048c0e0
mov edx, dword [esp + 0x1c]
cmp edi, edx
jae 0x48be7f
movzx ecx, byte [esi + edi]
mov edx, edi
call fcn.0048c120
mov ecx, dword [esp + 0x14]
jmp 0x48b548
mov ecx, dword [esp]
lea edx, [esp + 0x28]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], esi
lea ecx, [esp + 0x48]
push eax
push dword [esp + 0x28]
push 0
call fcn.005434e0
add esp, 0xc
jmp 0x489fe7
and esi, 0x7ffffff
mov ecx, dword [esp + 0x24]
shr esi, cl
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x94]
cmp esi, edx
jae 0x48be73
mov ecx, dword [ecx + 0x90]
mov edx, dword [ecx + esi*8 + 4]
test edx, edx
je 0x48bd6f
mov ecx, dword [ecx + esi*8]
mov esi, dword [ebp + 8]
test byte [ecx + 8], 2
je 0x48a6a6
cmp edx, 0xd
jb 0x48bf38
add edx, 0xfffffff3
cmp edx, 3
jbe 0x48bf47
mov eax, dword [ecx + 0x15]
mov ecx, dword [esi + 0xb4]
cmp dword [esi + 0xb0], 0
mov dword [esi + 0xb0], 0
je 0x48bec3
mov edi, esi
mov edx, ebx
mov esi, ebx
sub edx, ecx
neg edx
sub esi, ecx
mov ecx, dword [esp + 0x14]
cmovb esi, edx
add dword [edi + 0x70], esi
mov dword [ecx], 1
mov dword [ecx + 4], eax
mov dword [ecx + 8], ebx
jmp 0x48bb36
mov ecx, dword [esp]
lea edx, [esp + 0x28]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], esi
lea ecx, [esp + 0x48]
push eax
push ebx
push 0
call fcn.005434e0
add esp, 0xc
jmp 0x48a30b
mov eax, dword [esp]
shl esi, 8
lea ecx, [esp + 0x28]
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x2c], eax
push esi
call fcn.00541b40
add esp, 4
test eax, eax
je 0x48b7dc
movzx eax, byte [0x5b9430]
xor ecx, ecx
mov edx, 0xc
call fcn.0051b940
test eax, eax
je 0x48bf23
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov byte [eax], 1
mov dword [eax + 4], edx
jmp 0x48b548
mov eax, dword [esp]
lea ecx, [esp + 0x28]
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x2c], eax
push esi
call fcn.00541b40
add esp, 4
test eax, eax
je 0x48b873
movzx eax, byte [0x5b9430]
xor ecx, ecx
mov edx, 0xc
call fcn.0051b940
test eax, eax
je 0x48bf23
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov byte [eax], 1
mov dword [eax + 4], edx
jmp 0x48b548
mov eax, dword [esp + 0x1c]
movzx eax, byte [esi + eax + 0x60]
mov ecx, dword [ebp + 8]
movzx eax, al
mov edx, dword [ecx + 0x88]
cmp edx, eax
jbe 0x48bd63
mov ecx, dword [ecx + 0x84]
mov ecx, dword [ecx + eax*4]
test ecx, ecx
js 0x48b944
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x48], 5
lea ecx, [esp + 0x28]
lea edx, [esp + 0x48]
push edi
call fcn.0048c010
add esp, 4
cmp dword [esp + 0x28], 0
mov ebx, dword [esp + 0x2c]
je 0x48a81c
mov ecx, dword [esp + 0x14]
mov eax, 2
mov dword [ecx + 4], ebx
mov dword [ecx], eax
jmp 0x48bb36
mov esi, dword [ebp + 8]
cmp dword [esi + 0xb0], 1
jne 0x48a842
mov eax, dword [esi + 0xb8]
mov ecx, dword [esi + 0xb4]
mov edx, eax
sub edx, ecx
neg edx
sub eax, ecx
cmovb eax, edx
add dword [esi + 0x70], eax
mov dword [esi + 0xb0], 1
mov dword [esi + 0xb4], edi
mov dword [esi + 0xb8], edi
mov esi, dword [esp + 8]
mov ecx, dword [esp]
cmp edi, esi
jae 0x48ad09
mov edx, dword [ecx + 0x284]
lea eax, [esi + 1]
mov dword [esp + 0x5c], eax
lea eax, [ecx + 0x260]
mov dword [esp + 0x60], eax
and edx, 0x1f
mov dword [esp + 0x68], edx
jmp 0x48a897
mov ebx, ecx
mov edi, eax
mov ecx, dword [esp]
inc edi
cmp edi, esi
jae 0x48ad09
cmp ebx, 0x7ffffff
jbe 0x48a909
mov esi, dword [ebp + 8]
mov eax, dword [esp + 4]
cmp dword [esi + 0xb0], 0
je 0x48be8b
cmp edi, dword [esp + 0x18]
mov dword [esi + 0xb8], edi
jae 0x48bde8
movzx eax, byte [eax + edi]
movzx edx, byte [ecx + eax + 0x160]
mov ecx, ebx
and ecx, 0x7ffffff
add ecx, edx
mov edx, dword [esi + 0x7c]
cmp ecx, edx
jae 0x48bd7d
mov edx, dword [esi + 0x78]
mov edx, dword [edx + ecx*4]
test edx, edx
js 0x48acae
mov esi, dword [esp + 8]
mov eax, edi
cmp edx, 0x7ffffff
mov ebx, edx
mov edi, eax
jbe 0x48a88b
jmp 0x48aa0a
cmp edi, esi
jae 0x48a88b
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x7c]
mov eax, dword [ecx + 0x78]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
mov eax, dword [esp + 4]
mov esi, dword [esp]
movzx ecx, byte [eax + edi]
mov eax, dword [esp + 0xc]
movzx ecx, byte [esi + ecx + 0x160]
add ecx, ebx
mov ecx, dword [eax + ecx*4]
cmp ecx, 0x7ffffff
ja 0x48a9d2
mov esi, dword [esp + 8]
mov eax, edi
add edi, 3
cmp edi, esi
jae 0x48a887
mov edx, dword [esp + 4]
mov esi, dword [esp]
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0xc]
movzx ebx, byte [edx + eax + 1]
movzx ebx, byte [esi + ebx + 0x160]
add ebx, ecx
mov ebx, dword [edi + ebx*4]
cmp ebx, 0x7ffffff
ja 0x48a9dc
movzx ecx, byte [edx + eax + 2]
movzx ecx, byte [esi + ecx + 0x160]
add ecx, ebx
mov ecx, dword [edi + ecx*4]
cmp ecx, 0x7ffffff
ja 0x48a9e5
movzx ebx, byte [edx + eax + 3]
movzx ebx, byte [esi + ebx + 0x160]
add ebx, ecx
mov ebx, dword [edi + ebx*4]
cmp ebx, 0x7ffffff
ja 0x48a9f0
mov esi, dword [esp + 8]
mov edx, dword [esp + 0x10]
add eax, 4
mov edi, eax
cmp eax, esi
jb 0x48a922
jmp 0x48a88b
mov esi, dword [esp + 8]
mov eax, edi
mov edi, ecx
jmp 0x48aa00
mov esi, dword [esp + 8]
mov edi, ebx
inc eax
jmp 0x48a9fa
mov esi, dword [esp + 8]
add eax, 2
mov edi, ecx
jmp 0x48a9fc
mov esi, dword [esp + 8]
mov eax, dword [esp + 0x1c]
mov edi, ebx
mov ebx, ecx
mov edx, dword [esp + 0x10]
test edi, edi
js 0x48abc1
mov ebx, edi
test ebx, 0x10000000
je 0x48b6b8
push esi
push eax
push dword [esp + 0x20]
push dword [esp + 0x10]
push dword [esp + 0x7c]
mov edi, eax
lea eax, [esp + 0x98]
push eax
call dword [esp + 0x5c]
add esp, 0x18
cmp dword [esp + 0x84], 0
je 0x48b718
mov ecx, dword [esp + 0x88]
cmp ecx, edi
jbe 0x48a88b
mov eax, ecx
cmp dword [esp + 0x20], 0
mov ecx, dword [esp]
mov edi, eax
je 0x48aca4
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x78], edi
mov dword [esp + 0x7c], esi
cmp ecx, esi
jb 0x48bf5c
cmp dword [esp + 0x5c], edi
jb 0x48bf5c
mov esi, dword [esp + 0x60]
lea eax, [edi - 1]
cmp ecx, eax
jbe 0x48ac40
mov ecx, dword [esi]
mov ebx, dword [esi + 8]
mov edx, dword [esi + 0xc]
or ebx, dword [esi + 0x18]
or ecx, dword [esi + 0x10]
or edx, dword [esi + 0x1c]
or ecx, ebx
mov ebx, dword [esi + 4]
or ebx, dword [esi + 0x14]
or ebx, edx
or ebx, ecx
mov ecx, dword [esp + 4]
movzx ecx, byte [ecx + eax]
movzx eax, cl
mov dword [esp + 0xc], eax
je 0x48ac44
mov eax, ecx
mov dword [esp + 0x150], 0
mov dword [esp + 0x14c], 0
mov dword [esp + 0x148], 0
mov dword [esp + 0x144], 1
mov dword [esp + 0x140], 0
mov dword [esp + 0x13c], 0
mov dword [esp + 0x138], 0
mov dword [esp + 0x134], 0
mov byte [esp + 0x10], cl
and al, 0x78
mov ch, byte [esp + 0x10]
shr al, 3
neg al
movsx edx, al
mov ebx, dword [esp + edx + 0x14c]
mov eax, dword [esp + edx + 0x150]
and ch, 7
mov dword [esp + 0x80], edx
mov cl, ch
shld eax, ebx, cl
shl ebx, cl
not cl
mov dword [esp + 0x1c], eax
mov eax, dword [esp + edx + 0x148]
mov edx, eax
mov esi, eax
mov eax, dword [esp + 0xc]
shr edx, 1
shr edx, cl
mov cl, ch
or edx, ebx
mov ebx, dword [esp + 0x80]
shr eax, 3
and eax, 0xfffffff0
mov ebx, dword [esp + ebx + 0x144]
shld esi, ebx, cl
shl ebx, cl
mov ecx, dword [esp + 0x60]
and edx, dword [ecx + eax + 8]
and ebx, dword [ecx + eax]
and esi, dword [ecx + eax + 4]
or ebx, edx
mov edx, dword [esp + 0x1c]
and edx, dword [ecx + eax + 0xc]
or esi, edx
or esi, ebx
je 0x48ac44
movzx eax, byte [esp + 0x10]
mov esi, dword [esp + 8]
mov dword [esp + 0x48], 4
mov byte [esp + 0x4c], al
jmp 0x48ac81
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0xb0], 0
je 0x48be8b
mov dword [esp + 0x1c], eax
mov dword [ecx + 0xb8], eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x1c]
movzx edi, byte [eax + ecx]
mov ecx, dword [esp]
mov eax, dword [esp + 0x1c]
movzx ecx, byte [ecx + edi + 0x160]
add ecx, ebx
cmp ecx, edx
jae 0x48bd7d
mov edx, dword [esp + 0xc]
mov edx, dword [edx + ecx*4]
test edx, edx
jns 0x48a8f8
mov eax, dword [esp]
shl edi, 8
mov edx, ebx
lea ecx, [esp + 0x28]
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x2c], eax
push edi
call fcn.00541b40
add esp, 4
test eax, eax
jne 0x48be21
mov eax, dword [esp + 0x1c]
jmp 0x48a8f8
mov al, 2
jmp 0x48ac50
mov eax, dword [esp]
mov ecx, dword [esp + 0xc]
movzx eax, byte [eax + ecx + 0x60]
mov ecx, dword [ebp + 8]
movzx eax, al
mov edx, dword [ecx + 0x88]
cmp edx, eax
jbe 0x48bd63
mov ecx, dword [ecx + 0x84]
mov esi, dword [esp + 8]
mov ecx, dword [ecx + eax*4]
test ecx, ecx
js 0x48acdf
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x48], 5
lea ecx, [esp + 0x28]
lea edx, [esp + 0x48]
push edi
call fcn.0048c010
add esp, 4
cmp dword [esp + 0x28], 0
mov ebx, dword [esp + 0x2c]
jne 0x48a809
mov ecx, dword [esp]
cmp edi, esi
jb 0x48a897
jmp 0x48ad09
mov ecx, dword [esp]
shl eax, 8
mov edx, ebx
mov dword [esp + 0x28], ecx
mov ecx, dword [ebp + 8]
mov dword [esp + 0x2c], ecx
lea ecx, [esp + 0x28]
push eax
call fcn.00541b40
add esp, 4
mov esi, dword [esp + 8]
test eax, eax
je 0x48a8f6
jmp 0x48b523
mov ecx, dword [esp]
lea edx, [esp + 0x28]
mov dword [esp + 0x28], ecx
mov ecx, dword [ebp + 8]
mov dword [esp + 0x2c], ecx
lea ecx, [esp + 0x48]
push eax
push dword [esp + 0x28]
push 0
call fcn.005434e0
add esp, 0xc
jmp 0x48ac81
cmp esi, dword [esp + 0x18]
jae 0x48ad9c
mov eax, dword [esp + 4]
movzx eax, byte [eax + esi]
mov esi, dword [ebp + 8]
mov byte [esp + 4], al
movzx eax, al
movzx edx, byte [ecx + eax + 0x160]
mov ecx, ebx
and ecx, 0x7ffffff
add ecx, edx
mov edx, dword [esi + 0x7c]
cmp ecx, edx
jae 0x48bd7d
mov edx, dword [esi + 0x78]
mov edx, dword [edx + ecx*4]
test edx, edx
js 0x48bbfa
test edx, 0x8000000
jne 0x48adf4
test edx, 0x20000000
je 0x48adde
movzx eax, byte [0x5b9430]
xor ecx, ecx
mov edx, 0xc
call fcn.0051b940
mov ecx, dword [esp + 8]
test eax, eax
je 0x48bf23
movzx edx, byte [esp + 4]
mov byte [eax], 0
mov byte [eax + 1], dl
mov edx, ecx
mov ecx, dword [esp + 0x14]
mov dword [eax + 4], edx
jmp 0x48b548
movzx eax, byte [ecx + 0x25f]
mov esi, dword [ebp + 8]
mov ecx, ebx
and ecx, 0x7ffffff
shl eax, 0x10
add eax, 0x10001
mov edx, eax
shr edx, 0x10
add ecx, edx
mov edx, dword [esi + 0x7c]
cmp ecx, edx
jae 0x48be4f
mov edx, dword [esi + 0x78]
mov edx, dword [edx + ecx*4]
test edx, edx
js 0x48bc46
test edx, 0x8000000
jne 0x48ae19
xor esi, esi
jmp 0x48b795
mov ecx, dword [ebp + 8]
mov edx, edi
call fcn.0048c0e0
jmp 0x48bb1e
mov eax, dword [esp + 0x40]
xor edi, edi
mov esi, 1
cmp dword [eax + 0x15c], 1
jne 0x48b72f
mov eax, dword [esp + 8]
mov dword [esp + 0x18], eax
jmp 0x48b795
mov eax, dword [esp + 0x40]
xor edi, edi
mov esi, 1
cmp dword [eax + 0x15c], 1
je 0x48b795
mov eax, dword [esp]
and edx, 0x7ffffff
movzx ecx, byte [eax + 0x284]
shr edx, cl
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x94]
cmp edx, eax
jae 0x48be59
mov ecx, dword [ecx + 0x90]
mov eax, dword [ecx + edx*8 + 4]
test eax, eax
je 0x48bd6f
mov ecx, dword [ecx + edx*8]
test byte [ecx + 8], 2
je 0x48b795
cmp eax, 0xd
jb 0x48bed7
add eax, 0xfffffff3
cmp eax, 3
ja 0x48b792
jmp 0x48bee8
mov eax, dword [esp]
shl esi, 8
lea ecx, [esp + 0x28]
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x2c], eax
push esi
call fcn.00541b40
add esp, 4
test eax, eax
je 0x48ba40
movzx eax, byte [0x5b9430]
xor ecx, ecx
mov edx, 0xc
call fcn.0051b940
test eax, eax
je 0x48bf23
mov ebx, dword [esp + 8]
mov byte [eax], 1
jmp 0x489e82
mov eax, dword [esp]
lea ecx, [esp + 0x28]
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x2c], eax
push esi
call fcn.00541b40
add esp, 4
test eax, eax
je 0x48bb3e
movzx eax, byte [0x5b9430]
xor ecx, ecx
mov edx, 0xc
call fcn.0051b940
test eax, eax
je 0x48bf23
mov byte [eax], 1
jmp 0x489e82
mov eax, dword [esp + 0x10]
mov ecx, dword [esp]
mov esi, dword [ebp + 8]
movzx eax, byte [ecx + eax + 0x60]
mov edx, dword [esi + 0x88]
movzx eax, al
cmp edx, eax
jbe 0x48bd63
mov ecx, dword [esi + 0x84]
mov ebx, dword [esp + 0x20]
mov ecx, dword [ecx + eax*4]
test ecx, ecx
js 0x48bb5d
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x48], 5
lea ecx, [esp + 0x28]
lea edx, [esp + 0x48]
push edi
call fcn.0048c010
add esp, 4
cmp dword [esp + 0x28], 0
mov eax, dword [esp + 0x2c]
je 0x48af90
mov ecx, dword [esp + 0x14]
mov edx, 2
mov dword [ecx + 4], eax
mov dword [ecx], edx
jmp 0x48bb36
mov dword [esp + 4], eax
cmp dword [esi + 0xb0], 1
jne 0x48afb7
mov eax, dword [esi + 0xb8]
mov ecx, dword [esi + 0xb4]
mov edx, eax
sub edx, ecx
neg edx
sub eax, ecx
cmovb eax, edx
add dword [esi + 0x70], eax
mov eax, dword [esp + 8]
mov ecx, dword [esp]
mov dword [esi + 0xb0], 1
mov dword [esi + 0xb4], edi
mov dword [esi + 0xb8], edi
cmp edi, eax
jae 0x48b556
inc eax
mov dword [esp + 0x68], 0
mov dword [esp + 0x80], eax
lea eax, [ecx + 0x260]
mov dword [esp + 0x60], eax
mov eax, dword [ecx + 0x284]
and eax, 0x1f
mov dword [esp + 0x90], eax
jmp 0x48b01e
mov dword [esp + 4], ecx
mov ecx, dword [esp]
mov ebx, dword [esp + 0x20]
inc edi
cmp edi, dword [esp + 8]
jae 0x48b55e
cmp dword [esp + 4], 0x7ffffff
jbe 0x48b09d
cmp dword [esi + 0xb0], 0
je 0x48be8b
cmp edi, ebx
mov dword [esi + 0xb8], edi
jae 0x48be13
mov eax, dword [esp + 0xc]
movzx eax, byte [eax + edi]
movzx edx, byte [ecx + eax + 0x160]
mov ecx, dword [esp + 4]
and ecx, 0x7ffffff
add ecx, edx
mov edx, dword [esi + 0x7c]
cmp ecx, edx
jae 0x48bd7d
mov edx, dword [esi + 0x78]
mov ecx, dword [edx + ecx*4]
test ecx, ecx
js 0x48b404
mov esi, ecx
mov eax, dword [esp + 8]
mov ecx, dword [esp]
mov edx, dword [esp + 0xc]
cmp esi, 0x7ffffff
ja 0x48b197
mov dword [esp + 4], esi
mov esi, dword [ebp + 8]
jmp 0x48b013
cmp edi, dword [esp + 8]
jae 0x48b013
mov edx, dword [esi + 0x78]
mov eax, dword [esi + 0x7c]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x10], edx
mov eax, dword [esp + 0xc]
mov ebx, dword [esp]
movzx ecx, byte [eax + edi]
movzx ecx, byte [ebx + ecx + 0x160]
add ecx, dword [esp + 4]
mov ecx, dword [edx + ecx*4]
cmp ecx, 0x7ffffff
ja 0x48b170
lea eax, [edi + 3]
cmp eax, dword [esp + 8]
mov dword [esp + 0x18], eax
jae 0x48b008
mov eax, dword [esp + 0xc]
mov ebx, dword [esp]
mov edx, dword [esp + 0x10]
movzx esi, byte [eax + edi + 1]
movzx esi, byte [ebx + esi + 0x160]
add esi, ecx
mov esi, dword [edx + esi*4]
cmp esi, 0x7ffffff
ja 0x48b162
movzx ecx, byte [eax + edi + 2]
movzx ecx, byte [ebx + ecx + 0x160]
add ecx, esi
mov ecx, dword [edx + ecx*4]
cmp ecx, 0x7ffffff
ja 0x48b169
movzx esi, byte [eax + edi + 3]
movzx esi, byte [ebx + esi + 0x160]
add esi, ecx
mov esi, dword [edx + esi*4]
cmp esi, 0x7ffffff
ja 0x48b178
add edi, 4
mov dword [esp + 4], esi
mov esi, dword [ebp + 8]
mov edx, dword [esp + 0x10]
cmp edi, dword [esp + 8]
jb 0x48b0b5
jmp 0x48b00c
mov ebx, dword [esp + 0x20]
inc edi
jmp 0x48b180
mov dword [esp + 4], esi
add edi, 2
mov ebx, dword [esp + 0x20]
mov esi, ecx
jmp 0x48b184
mov ebx, dword [esp + 0x20]
mov edi, dword [esp + 0x18]
mov dword [esp + 4], ecx
test esi, esi
js 0x48b3b5
mov eax, dword [esp + 8]
mov ecx, dword [esp]
mov edx, dword [esp + 0xc]
test esi, 0x10000000
mov dword [esp + 4], esi
je 0x48b432
push eax
push edi
push ebx
push edx
push dword [esp + 0x50]
lea eax, [esp + 0x98]
push eax
call dword [esp + 0x3c]
add esp, 0x18
cmp dword [esp + 0x84], 0
mov esi, dword [ebp + 8]
je 0x48b6a8
mov ecx, dword [esp + 0x88]
cmp ecx, edi
jbe 0x48b467
mov eax, ecx
cmp dword [esp + 0x1c], 0
mov ecx, dword [esp]
mov edi, eax
je 0x48b014
mov eax, dword [esp + 8]
mov dword [esp + 0x78], edi
cmp ebx, eax
mov dword [esp + 0x7c], eax
jb 0x48bf32
cmp dword [esp + 0x80], edi
jb 0x48bf32
mov ecx, dword [esp + 0x60]
lea eax, [edi - 1]
cmp ebx, eax
jbe 0x48b348
mov ebx, dword [ecx]
mov esi, dword [ecx + 8]
mov edx, dword [ecx + 0xc]
or esi, dword [ecx + 0x18]
or ebx, dword [ecx + 0x10]
or edx, dword [ecx + 0x1c]
or ebx, esi
mov esi, dword [ecx + 4]
or esi, dword [ecx + 0x14]
mov ecx, dword [esp + 0xc]
or esi, edx
movzx ecx, byte [ecx + eax]
or esi, ebx
mov ebx, dword [esp + 0x20]
movzx eax, cl
mov dword [esp + 4], eax
je 0x48b34c
mov eax, ecx
mov dword [esp + 0xf0], 0
mov dword [esp + 0xec], 0
mov dword [esp + 0xe8], 0
mov dword [esp + 0xe4], 1
mov dword [esp + 0xe0], 0
mov dword [esp + 0xdc], 0
mov dword [esp + 0xd8], 0
mov dword [esp + 0xd4], 0
mov byte [esp + 0x10], cl
and al, 0x78
mov ch, byte [esp + 0x10]
shr al, 3
neg al
movsx edx, al
mov ebx, dword [esp + edx + 0xec]
mov eax, dword [esp + edx + 0xf0]
and ch, 7
mov dword [esp + 0x5c], edx
mov cl, ch
shld eax, ebx, cl
shl ebx, cl
not cl
mov dword [esp + 0x18], eax
mov eax, dword [esp + 4]
mov esi, dword [esp + edx + 0xe8]
shr eax, 3
mov edx, esi
and eax, 0xfffffff0
shr edx, 1
shr edx, cl
mov cl, ch
or edx, ebx
mov ebx, dword [esp + 0x5c]
mov ebx, dword [esp + ebx + 0xe4]
shld esi, ebx, cl
shl ebx, cl
mov ecx, dword [esp + 0x60]
and edx, dword [ecx + eax + 8]
and ebx, dword [ecx + eax]
and esi, dword [ecx + eax + 4]
or ebx, edx
mov edx, dword [esp + 0x18]
and edx, dword [ecx + eax + 0xc]
movzx eax, byte [esp + 0x10]
or esi, edx
or esi, ebx
mov ebx, dword [esp + 0x20]
je 0x48b34c
mov esi, dword [ebp + 8]
mov dword [esp + 0x48], 4
mov byte [esp + 0x4c], al
jmp 0x48b389
mov al, 2
jmp 0x48b35b
mov eax, dword [esp]
mov ecx, dword [esp + 4]
mov esi, dword [ebp + 8]
movzx eax, byte [eax + ecx + 0x60]
mov edx, dword [esi + 0x88]
movzx eax, al
cmp edx, eax
jbe 0x48bd63
mov ecx, dword [esi + 0x84]
mov ecx, dword [ecx + eax*4]
test ecx, ecx
js 0x48b46f
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x48], 5
lea ecx, [esp + 0x28]
lea edx, [esp + 0x48]
push edi
call fcn.0048c010
add esp, 4
cmp dword [esp + 0x28], 0
mov eax, dword [esp + 0x2c]
mov dword [esp + 4], eax
jne 0x48b937
mov ecx, dword [esp]
jmp 0x48b014
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0xb0], 0
je 0x48be8b
mov eax, dword [esp + 0xc]
mov dword [ecx + 0xb8], edi
mov ecx, dword [esp]
mov edx, dword [esp + 0x5c]
movzx esi, byte [eax + edi]
movzx ecx, byte [ecx + esi + 0x160]
add ecx, dword [esp + 4]
cmp ecx, edx
jae 0x48bd7d
mov eax, dword [esp + 0x10]
mov eax, dword [eax + ecx*4]
test eax, eax
js 0x48b4f9
mov esi, eax
jmp 0x48b07a
mov ecx, dword [esp]
mov edx, dword [esp + 4]
shl eax, 8
mov dword [esp + 0x28], ecx
lea ecx, [esp + 0x28]
mov dword [esp + 0x2c], esi
push eax
call fcn.00541b40
add esp, 4
test eax, eax
jne 0x48b523
mov esi, edx
jmp 0x48b07a
test esi, 0x8000000
mov esi, dword [ebp + 8]
je 0x48bd87
mov eax, dword [esp + 0x44]
mov dword [esp + 0x68], 1
mov dword [esp + 0x70], 0
cmp dword [eax + 0x15c], 1
jne 0x48b496
mov dword [esp + 0x64], edi
jmp 0x48b013
mov ecx, dword [esp]
jmp 0x48b013
mov ecx, dword [esp]
lea edx, [esp + 0x28]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], esi
lea ecx, [esp + 0x48]
push eax
push dword [esp + 0x70]
push 0
call fcn.005434e0
add esp, 0xc
jmp 0x48b389
mov eax, dword [esp + 4]
mov edx, dword [esi + 0x94]
mov ecx, dword [esp + 0x90]
and eax, 0x7ffffff
shr eax, cl
cmp eax, edx
jae 0x48be9f
mov ecx, dword [esi + 0x90]
mov edx, dword [ecx + eax*8 + 4]
test edx, edx
je 0x48bd6f
mov eax, dword [ecx + eax*8]
test byte [eax + 8], 2
je 0x48b4ed
cmp edx, 0xd
jb 0x48bf38
add edx, 0xfffffff3
cmp edx, 3
jbe 0x48bf47
mov eax, dword [eax + 0x15]
mov dword [esp + 0x70], eax
mov ecx, dword [esp]
mov dword [esp + 0x64], edi
jmp 0x48b013
mov eax, dword [esp]
mov ecx, dword [ebp + 8]
mov edx, dword [esp + 4]
shl esi, 8
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], ecx
lea ecx, [esp + 0x28]
push esi
call fcn.00541b40
add esp, 4
test eax, eax
je 0x48b42b
movzx eax, byte [0x5b9430]
xor ecx, ecx
mov edx, 0xc
call fcn.0051b940
test eax, eax
je 0x48bf23
mov ecx, dword [esp + 0x14]
mov byte [eax], 1
mov dword [eax + 4], edi
mov dword [ecx + 4], eax
mov dword [ecx], 2
jmp 0x48bb36
mov dword [esp + 0x68], 0
mov eax, dword [esp + 8]
cmp eax, ebx
jae 0x48b5bb
mov edx, dword [esp + 0xc]
movzx ebx, byte [edx + eax]
movzx eax, bl
movzx edx, byte [ecx + eax + 0x160]
mov ecx, dword [esp + 4]
and ecx, 0x7ffffff
add ecx, edx
mov edx, dword [esi + 0x7c]
cmp ecx, edx
jae 0x48bd7d
mov edx, dword [esi + 0x78]
mov edx, dword [edx + ecx*4]
test edx, edx
js 0x48bcb6
test edx, 0x8000000
jne 0x48b67a
test edx, 0x20000000
jne 0x489e5d
jmp 0x48b9dd
movzx eax, byte [ecx + 0x25f]
mov ecx, dword [esp + 4]
shl eax, 0x10
and ecx, 0x7ffffff
add eax, 0x10001
mov edx, eax
shr edx, 0x10
add ecx, edx
mov edx, dword [esi + 0x7c]
cmp ecx, edx
jae 0x48be4f
mov edx, dword [esi + 0x78]
mov edx, dword [edx + ecx*4]
test edx, edx
js 0x48bce2
test edx, 0x8000000
je 0x48b9dd
mov eax, dword [esp + 0x44]
mov dword [esp + 0x68], 1
mov dword [esp + 0x70], 0
cmp dword [eax + 0x15c], 1
je 0x48b9d9
mov eax, dword [esp]
and edx, 0x7ffffff
movzx ecx, byte [eax + 0x284]
mov eax, dword [esi + 0x94]
shr edx, cl
cmp edx, eax
jae 0x48be59
mov ecx, dword [esi + 0x90]
mov eax, dword [ecx + edx*8 + 4]
test eax, eax
je 0x48bd6f
mov ecx, dword [ecx + edx*8]
test byte [ecx + 8], 2
je 0x48b9d9
cmp eax, 0xd
jb 0x48bed7
add eax, 0xfffffff3
cmp eax, 3
ja 0x48b9ca
jmp 0x48bee8
mov eax, dword [esp + 0x44]
mov dword [esp + 0x68], 1
mov dword [esp + 0x70], 0
cmp dword [eax + 0x15c], 1
jne 0x48b96e
mov eax, dword [esp + 8]
mov dword [esp + 0x64], eax
jmp 0x48b9dd
mov edx, dword [esp + 8]
mov ecx, esi
call fcn.0048c0e0
jmp 0x48ba0c
test ebx, 0x8000000
jne 0x48ba21
test ebx, 0x40000000
jne 0x48b6ff
test ebx, 0x20000000
je 0x48bfd0
mov ecx, dword [ebp + 8]
mov edx, eax
mov esi, eax
call fcn.0048c0e0
mov edx, dword [esp + 0x18]
cmp esi, edx
jae 0x48beab
mov eax, dword [esp + 4]
mov edx, esi
movzx ecx, byte [eax + esi]
jmp 0x48a61e
mov ecx, dword [ebp + 8]
mov edx, eax
call fcn.0048c0e0
mov eax, dword [esp + 0x14]
mov dword [eax], 0
jmp 0x48bb36
mov ecx, dword [ebp + 8]
mov edx, esi
call fcn.0048c0e0
mov ecx, dword [esp + 0x14]
xor eax, eax
mov dword [ecx], eax
jmp 0x48bb36
mov eax, dword [esp]
and edx, 0x7ffffff
movzx ecx, byte [eax + 0x284]
shr edx, cl
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x94]
cmp edx, eax
jae 0x48be59
mov ecx, dword [ecx + 0x90]
mov eax, dword [ecx + edx*8 + 4]
test eax, eax
je 0x48bd6f
mov ecx, dword [ecx + edx*8]
mov edx, dword [esp + 8]
test byte [ecx + 8], 2
mov dword [esp + 0x18], edx
je 0x48b795
cmp eax, 0xd
jb 0x48bed7
mov edx, dword [esp + 8]
add eax, 0xfffffff3
cmp eax, 3
mov dword [esp + 0x18], edx
jbe 0x48bee8
mov edi, dword [ecx + 0x15]
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xb4]
cmp dword [edx + 0xb0], 0
mov dword [edx + 0xb0], 0
je 0x48bec3
mov ebx, dword [esp + 8]
mov ecx, ebx
sub ecx, eax
neg ecx
sub ebx, eax
mov eax, dword [esp + 0x14]
cmovb ebx, ecx
mov ecx, dword [esp + 0x18]
add dword [edx + 0x70], ebx
mov dword [eax], esi
mov dword [eax + 4], edi
mov dword [eax + 8], ecx
jmp 0x48bb36
mov edi, edx
test edi, 0x8000000
je 0x489694
mov ecx, dword [esp + 0x18]
xor esi, esi
mov eax, 1
cmp dword [ecx + 0x15c], 1
jne 0x48b80b
mov ecx, dword [esp + 8]
mov dword [esp + 0x10], ecx
jmp 0x48b8f0
mov ecx, dword [esp]
and edi, 0x7ffffff
movzx ecx, byte [ecx + 0x284]
shr edi, cl
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x94]
cmp edi, edx
jae 0x48be07
mov ecx, dword [ecx + 0x90]
mov edx, dword [ecx + edi*8 + 4]
test edx, edx
je 0x48bd6f
mov ecx, dword [ecx + edi*8]
mov edi, dword [esp + 8]
test byte [ecx + 8], 2
mov dword [esp + 0x10], edi
je 0x48b8f0
cmp edx, 0xd
jb 0x48bf38
mov eax, dword [esp + 8]
add edx, 0xfffffff3
cmp edx, 3
mov dword [esp + 0x10], eax
ja 0x48b8e8
jmp 0x48bf47
mov edi, edx
test edi, 0x8000000
je 0x4899ef
mov ecx, dword [esp + 0x18]
xor esi, esi
mov eax, 1
cmp dword [ecx + 0x15c], 1
je 0x48b8f0
mov ecx, dword [esp]
and edi, 0x7ffffff
movzx ecx, byte [ecx + 0x284]
shr edi, cl
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x94]
cmp edi, edx
jae 0x48be07
mov ecx, dword [ecx + 0x90]
mov edx, dword [ecx + edi*8 + 4]
test edx, edx
je 0x48bd6f
mov ecx, dword [ecx + edi*8]
test byte [ecx + 8], 2
je 0x48b8f0
cmp edx, 0xd
jb 0x48bf38
add edx, 0xfffffff3
cmp edx, 3
jbe 0x48bf47
mov esi, dword [ecx + 0x15]
mov eax, 1
mov edi, dword [ebp + 8]
mov ecx, dword [edi + 0xb4]
cmp dword [edi + 0xb0], 0
mov dword [edi + 0xb0], 0
je 0x48bec3
mov ebx, dword [esp + 8]
mov edx, ebx
sub edx, ecx
neg edx
sub ebx, ecx
cmovb ebx, edx
mov edx, dword [esp + 0x10]
add dword [edi + 0x70], ebx
mov edi, dword [esp + 0x14]
mov dword [edi], eax
mov dword [edi + 4], esi
mov dword [edi + 8], edx
jmp 0x48bb36
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 4]
jmp 0x48a32b
mov ecx, dword [esp]
lea edx, [esp + 0x28]
mov dword [esp + 0x28], ecx
mov ecx, dword [ebp + 8]
mov dword [esp + 0x2c], ecx
lea ecx, [esp + 0x48]
push eax
push dword [esp + 0x28]
push 0
call fcn.005434e0
add esp, 0xc
jmp 0x48a7ed
mov eax, dword [esp]
and edx, 0x7ffffff
movzx ecx, byte [eax + 0x284]
mov eax, dword [esi + 0x94]
shr edx, cl
cmp edx, eax
jae 0x48be59
mov ecx, dword [esi + 0x90]
mov eax, dword [ecx + edx*8 + 4]
test eax, eax
je 0x48bd6f
mov ecx, dword [ecx + edx*8]
mov edx, dword [esp + 8]
test byte [ecx + 8], 2
mov dword [esp + 0x64], edx
je 0x48b9dd
cmp eax, 0xd
jb 0x48bed7
mov ebx, dword [esp + 8]
add eax, 0xfffffff3
cmp eax, 3
jbe 0x48bee8
mov eax, dword [ecx + 0x15]
mov dword [esp + 0x68], 1
mov dword [esp + 0x70], eax
mov dword [esp + 0x64], ebx
mov eax, dword [esi + 0xb4]
cmp dword [esi + 0xb0], 0
mov dword [esi + 0xb0], 0
je 0x48bec3
mov edx, dword [esp + 8]
mov ecx, edx
sub ecx, eax
neg ecx
sub edx, eax
cmovb edx, ecx
add dword [esi + 0x70], edx
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x68]
mov esi, dword [esp + 0x70]
mov edx, dword [esp + 0x64]
jmp 0x48bb2e
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x1c], eax
xor eax, eax
cmp dword [ecx + 0x15c], 1
jne 0x48bb84
mov esi, dword [ebp + 8]
jmp 0x48bbd4
mov edi, edx
test edi, 0x8000000
je 0x489e4e
mov eax, dword [esp + 0x20]
mov esi, dword [ebp + 8]
mov dword [esp + 0x24], 1
cmp dword [eax + 0x15c], 1
jne 0x48ba78
mov eax, dword [esp + 8]
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], eax
jmp 0x48baef
mov eax, dword [esp]
mov edx, dword [esi + 0x94]
and edi, 0x7ffffff
movzx ecx, byte [eax + 0x284]
shr edi, cl
cmp edi, edx
jae 0x48be07
mov eax, dword [esi + 0x90]
mov dword [esp + 0x40], 0
mov edx, dword [eax + edi*8 + 4]
test edx, edx
je 0x48bd6f
mov eax, dword [eax + edi*8]
mov ecx, dword [esp + 8]
test byte [eax + 8], 2
mov dword [esp + 0x44], ecx
je 0x48baef
cmp edx, 0xd
jb 0x48bf38
mov ebx, dword [esp + 8]
add edx, 0xfffffff3
cmp edx, 3
jbe 0x48bf47
mov eax, dword [eax + 0x15]
mov dword [esp + 0x24], 1
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], ebx
mov eax, dword [esi + 0xb4]
cmp dword [esi + 0xb0], 0
mov dword [esi + 0xb0], 0
je 0x48bec3
mov edx, dword [esp + 8]
mov ecx, edx
sub ecx, eax
neg ecx
sub edx, eax
cmovb edx, ecx
add dword [esi + 0x70], edx
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x24]
mov esi, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
mov dword [eax], ecx
mov dword [eax + 4], esi
mov dword [eax + 8], edx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov edi, edx
mov esi, dword [ebp + 8]
test edi, 0x8000000
jne 0x489eee
jmp 0x48baef
mov edx, eax
push 0x5554d0
call fcn.0053bb10
mov ecx, dword [esp]
lea edx, [esp + 0x28]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], esi
lea ecx, [esp + 0x48]
push eax
push dword [esp + 0x70]
push 0
call fcn.005434e0
add esp, 0xc
jmp 0x48af61
mov esi, dword [ebp + 8]
and ebx, 0x7ffffff
mov ecx, dword [esp + 0x68]
shr ebx, cl
mov edx, dword [esi + 0x94]
cmp ebx, edx
jae 0x48beb7
mov ecx, dword [esi + 0x90]
mov edx, dword [ecx + ebx*8 + 4]
test edx, edx
je 0x48bd6f
mov ecx, dword [ecx + ebx*8]
test byte [ecx + 8], 2
je 0x48bbd4
cmp edx, 0xd
jb 0x48bf38
add edx, 0xfffffff3
cmp edx, 3
jbe 0x48bf47
mov eax, dword [ecx + 0x15]
mov ecx, dword [esi + 0xb4]
cmp dword [esi + 0xb0], 0
mov dword [esi + 0xb0], 0
je 0x48bec3
mov ebx, dword [esp + 0x1c]
jmp 0x48a6c3
mov ecx, dword [esp]
shl eax, 8
mov edx, ebx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], esi
lea ecx, [esp + 0x28]
push eax
call fcn.00541b40
add esp, 4
test eax, eax
je 0x48ad50
movzx eax, byte [0x5b9430]
xor ecx, ecx
mov edx, 0xc
call fcn.0051b940
mov ecx, dword [esp + 8]
test eax, eax
je 0x48bf23
mov byte [eax], 1
jmp 0x48ad8e
mov ecx, dword [esp]
mov edx, ebx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], esi
lea ecx, [esp + 0x28]
push eax
call fcn.00541b40
add esp, 4
test eax, eax
je 0x48add6
movzx eax, byte [0x5b9430]
xor ecx, ecx
mov edx, 0xc
call fcn.0051b940
test eax, eax
je 0x48bf23
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov byte [eax], 1
mov dword [eax + 4], edx
jmp 0x48b548
mov edx, dword [esp + 0x10]
mov ecx, edi
push 0x555a44
call fcn.0053bb10
mov edx, dword [esp + 0x1c]
mov ecx, edi
push 0x555a44
call fcn.0053bb10
mov ecx, dword [esp]
mov edx, dword [esp + 4]
shl eax, 8
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], esi
lea ecx, [esp + 0x28]
push eax
call fcn.00541b40
add esp, 4
test eax, eax
jne 0x48aeb3
jmp 0x48b59e
mov ecx, dword [esp]
mov edx, dword [esp + 4]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], esi
lea ecx, [esp + 0x28]
push eax
call fcn.00541b40
add esp, 4
test eax, eax
jne 0x48aefd
jmp 0x48b5f4
movzx eax, byte [0x5b9430]
xor ecx, ecx
mov edx, 0xc
call fcn.0051b940
test eax, eax
je 0x48bf23
mov ecx, dword [esp + 0xc]
mov byte [eax], 1
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x14]
jmp 0x48b548
movzx eax, byte [0x5b9430]
xor ecx, ecx
mov edx, 0xc
call fcn.0051b940
test eax, eax
je 0x48bf23
mov ecx, dword [esp + 0x14]
mov byte [eax], 1
mov dword [eax + 4], esi
jmp 0x48b548
mov ecx, eax
push 0x5557fc
call fcn.0053bb10
xor ecx, ecx
xor edx, edx
push 0x5580f8
call fcn.0053bb10
push 0x5554d0
call fcn.0053bb10
test dword [esp + 4], 0x40000000
jne 0x48bdf8
test dword [esp + 4], 0x20000000
je 0x48bfd0
mov ecx, dword [ebp + 8]
mov edx, edi
mov esi, edi
call fcn.0048c0e0
cmp edi, dword [esp + 0x20]
jae 0x48bf62
mov eax, dword [esp + 0xc]
movzx ecx, byte [eax + edi]
jmp 0x48a61c
mov ecx, edi
mov edx, eax
push 0x55580c
call fcn.0053bb10
mov edx, esi
push 0x5554d0
call fcn.0053bb10
mov edx, eax
push 0x5554e0
call fcn.0053bb10
mov edx, dword [esp + 0x18]
mov ecx, edi
push 0x555a44
call fcn.0053bb10
mov ecx, dword [ebp + 8]
mov edx, edi
call fcn.0048c0e0
jmp 0x48ba0c
mov ecx, edi
push 0x55580c
call fcn.0053bb10
mov ecx, edi
mov edx, ebx
push 0x555a44
call fcn.0053bb10
movzx eax, byte [0x5b9430]
xor ecx, ecx
mov edx, 0xc
call fcn.0051b940
test eax, eax
je 0x48bf23
mov ecx, dword [esp + 0x1c]
mov byte [eax], 1
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x14]
jmp 0x48b548
push 0x5554e0
call fcn.0053bb10
mov ecx, edx
mov edx, eax
push 0x55580c
call fcn.0053bb10
mov ecx, eax
push 0x555ab0
call fcn.0053bb10
mov ecx, esi
push 0x55580c
call fcn.0053bb10
mov ecx, edi
push 0x555ab0
call fcn.0053bb10
mov ecx, str.no_in_progress_search_to_update
mov edx, 0x1f
push 0x555574
call fcn.0053bf30
mov ecx, eax
push 0x55580c
call fcn.0053bb10
mov ecx, esi
push 0x555ab0
call fcn.0053bb10
mov ecx, ebx
push 0x55580c
call fcn.0053bb10
mov ecx, str.no_in_progress_search_to_finish
mov edx, 0x1f
push 0x5555a4
call fcn.0053bf30
mov ecx, 0xd
mov edx, eax
push 0x558128
call fcn.0053bab0
mov ecx, 4
mov edx, eax
push 0x55803c
call fcn.0053bb70
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], 0
lea eax, [esp + 0x28]
mov ecx, str.called__Result::unwrap____on_an__Err__value
mov edx, 0x2b
push 0x55581c
push 0x554594
push eax
call fcn.0053be90
mov ecx, 4
mov edx, 0xc
call fcn.0053b730
mov dword [esp + 0x74], ebx
jmp 0x48bf7a
mov ecx, 0xd
push 0x558128
call fcn.0053bab0
mov ecx, 4
push 0x55803c
call fcn.0053bb70
mov eax, dword [esp + 0x18]
jmp 0x48bf76
mov dword [esp + 0x74], ecx
jmp 0x48bf7a
mov edx, dword [esp + 0x20]
mov ecx, edi
push 0x555ab0
call fcn.0053bb10
mov eax, dword [esp + 0x20]
mov dword [esp + 0x74], eax
lea eax, [esp + 0x78]
lea edx, [esp + 0x74]
lea ecx, [esp + 0x48]
mov dword [esp + 0x28], 0x554300
mov dword [esp + 0x2c], 2
mov dword [esp + 0x38], 0
mov dword [esp + 0x30], ecx
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], 0x44e360
mov dword [esp + 0x50], edx
lea ecx, [esp + 0x28]
mov edx, 0x558388
mov dword [esp + 0x54], 0x453380
mov dword [esp + 0x34], 2
call fcn.0053ba80
lea eax, [esp + 0x58]
lea ecx, [esp + 0x28]
mov edx, 0x555aa0
mov dword [esp + 0x28], 0x555a98
mov dword [esp + 0x2c], 1
mov dword [esp + 0x38], 0
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], 0
call fcn.0053ba80
int3