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

Disassembly:
sub esp, 0xb8
mov eax, dword [0x58cb30]
xor eax, esp
mov dword [esp + 0xb4], eax
mov edx, dword [esp + 0xc0]
mov ecx, dword [esp + 0xc8]
push ebx
push ebp
mov ebp, dword [esp + 0xc4]
push esi
mov esi, dword [esp + 0xd0]
add esi, edx
mov dword [esp + 0x78], edx
cmp dword [esp + 0xdc], 0
mov eax, dword [ebp + 0x74b0]
mov ebx, dword [ebp + 0x75f8]
mov dword [esp + 0x64], eax
mov eax, dword [ebp + 0x74b4]
push edi
mov edi, edx
mov dword [esp + 0x74], eax
mov edx, dword [ebp + 0x7578]
mov eax, dword [ebp + 0x74b8]
mov dword [esp + 0x78], ebp
mov dword [esp + 0x60], esi
mov dword [esp + 0x14], edi
mov dword [esp + 0x30], edx
mov dword [esp + 0x38], edx
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x64], eax
je 0x438f01
push dword [esp + 0xdc]
mov dword [ebp + 0x750c], 1
mov eax, dword [ebp + 0x682c]
mov dword [esp + 0xbc], eax
mov eax, dword [ebp + 0x6830]
mov dword [esp + 0xc0], eax
mov eax, dword [ebp + 0x6834]
mov dword [esp + 0xc4], eax
lea eax, [esp + 0x90]
push ecx
push eax
call fcn.0043a590
cmp eax, 0xffffff88
jbe 0x4372a1
mov eax, 0xffffffec
jmp 0x438f62
push dword [ebp]
lea eax, [esp + 0x90]
push eax
lea eax, [esp + 0xa8]
push eax
call fcn.00439fb0
push dword [ebp + 8]
lea eax, [esp + 0x90]
push eax
lea eax, [esp + 0xb0]
push eax
call fcn.00439fb0
push dword [ebp + 4]
lea eax, [esp + 0x90]
push eax
lea eax, [esp + 0xb8]
push eax
call fcn.00439fb0
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0xa4]
mov edi, dword [esp + 0xac]
lea edx, [ecx + eax*8]
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0xb4]
mov ebx, dword [ecx + eax*8 + 4]
lea ecx, [ecx + eax*8]
mov eax, dword [esp + 0xa8]
movzx ebp, word [edx]
mov esi, dword [edx + 4]
mov dword [esp + 0x20], ebx
mov ebx, dword [edi + eax*8 + 4]
mov dword [esp + 0x2c], ebx
mov bl, byte [edx + 2]
movzx edx, byte [edx + 3]
mov dword [esp + 0x34], ebp
movzx ebp, word [ecx]
mov byte [esp + 0x1b], bl
mov bl, byte [ecx + 2]
movzx ecx, byte [ecx + 3]
mov dword [esp + 0x40], ebp
movzx ebp, word [edi + eax*8]
mov byte [esp + 0x2b], bl
mov bl, byte [edi + eax*8 + 2]
movzx eax, byte [edi + eax*8 + 3]
mov dword [esp + 0x48], ebp
mov ebp, dword [esp + 0x98]
mov dword [esp + 0x24], esi
mov dword [esp + 0x5c], edx
mov dword [esp + 0x58], ecx
mov dword [esp + 0x4c], eax
cmp bl, 1
jbe 0x4374f5
cmp dword [esp + 0xe4], 0
je 0x437452
cmp bl, 0x19
jb 0x437452
mov ecx, dword [esp + 0x90]
mov esi, dword [esp + 0x8c]
mov edx, esi
movzx eax, bl
mov ebx, dword [esp + 0x94]
sub eax, 5
mov dword [esp + 0x10], ebx
lea edi, [ecx + eax]
and ecx, 0x1f
shl edx, cl
neg eax
and eax, 0x1f
mov ecx, eax
mov eax, esi
shr edx, cl
mov ecx, edi
shl edx, 5
add edx, dword [esp + 0x2c]
cmp edi, 0x20
ja 0x437423
cmp ebx, dword [esp + 0x9c]
jb 0x4373ef
mov eax, ecx
shr eax, 3
sub ebx, eax
and ecx, 7
jmp 0x43740d
cmp ebx, ebp
je 0x437423
shr edi, 3
mov eax, ebx
sub eax, edi
cmp eax, ebp
jae 0x437402
mov edi, ebx
sub edi, ebp
lea eax, [edi*8]
sub ebx, edi
sub ecx, eax
mov esi, dword [ebx]
mov eax, esi
mov dword [esp + 0x8c], esi
mov dword [esp + 0x94], ebx
mov dword [esp + 0x10], ebx
lea edi, [ecx + 5]
and ecx, 0x1f
shl eax, cl
mov ecx, dword [esp + 0xb8]
shr eax, 0x1b
add edx, eax
mov dword [esp + 0x54], ecx
mov eax, dword [esp + 0xbc]
mov dword [esp + 0x1c], edx
mov dword [esp + 0xc0], eax
jmp 0x4375c7
mov ecx, dword [esp + 0x90]
mov esi, dword [esp + 0x8c]
mov edx, esi
movzx eax, bl
mov ebx, dword [esp + 0x94]
mov dword [esp + 0x10], ebx
lea edi, [ecx + eax]
and ecx, 0x1f
neg eax
shl edx, cl
and eax, 0x1f
mov ecx, eax
shr edx, cl
add edx, dword [esp + 0x2c]
mov dword [esp + 0x1c], edx
cmp edi, 0x20
ja 0x4374d7
cmp ebx, dword [esp + 0x9c]
jb 0x4374a3
mov eax, edi
shr eax, 3
sub ebx, eax
and edi, 7
jmp 0x4374c3
cmp ebx, ebp
je 0x4374d7
mov ecx, edi
mov eax, ebx
shr ecx, 3
sub eax, ecx
cmp eax, ebp
jae 0x4374b8
mov ecx, ebx
sub ecx, ebp
lea eax, [ecx*8]
sub ebx, ecx
sub edi, eax
mov esi, dword [ebx]
mov dword [esp + 0x8c], esi
mov dword [esp + 0x94], ebx
mov dword [esp + 0x10], ebx
mov eax, dword [esp + 0xbc]
mov ecx, dword [esp + 0xb8]
mov dword [esp + 0xc0], eax
mov dword [esp + 0x54], ecx
jmp 0x4375c7
xor eax, eax
test esi, esi
sete al
test bl, bl
jne 0x43754b
mov ecx, dword [esp + eax*4 + 0xb8]
mov eax, esi
mov ebx, dword [esp + 0x94]
neg eax
mov edi, dword [esp + 0x90]
mov esi, dword [esp + 0x8c]
sbb eax, eax
and eax, 4
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x10], ebx
mov eax, dword [esp + eax + 0xb8]
mov dword [esp + 0x54], eax
mov dword [esp + 0xbc], eax
mov dword [esp + 0xb8], ecx
jmp 0x4375d5
mov ecx, dword [esp + 0x90]
mov esi, dword [esp + 0x8c]
mov ebx, esi
lea edi, [ecx + 1]
and ecx, 0x1f
shl ebx, cl
mov ecx, dword [esp + 0xb8]
shr ebx, 0x1f
add ebx, eax
mov dword [esp + 0x90], edi
add ebx, dword [esp + 0x2c]
mov dword [esp + 0x54], ecx
cmp ebx, 3
jne 0x437595
lea eax, [ecx - 1]
xor edx, edx
test eax, eax
sete dl
add edx, eax
mov dword [esp + 0x1c], edx
jmp 0x4375ae
mov eax, dword [esp + ebx*4 + 0xb8]
xor edx, edx
test eax, eax
sete dl
add edx, eax
mov dword [esp + 0x1c], edx
cmp ebx, 1
je 0x4375bc
mov eax, dword [esp + 0xbc]
mov dword [esp + 0xc0], eax
mov ebx, dword [esp + 0x94]
mov dword [esp + 0x10], ebx
mov dword [esp + 0xb8], edx
mov dword [esp + 0xbc], ecx
mov al, byte [esp + 0x2b]
movzx edx, al
mov dword [esp + 0x50], edx
test al, al
je 0x4375fd
mov ecx, edi
mov eax, esi
lea edi, [edx + ecx]
and ecx, 0x1f
shl eax, cl
mov ecx, edx
neg ecx
and ecx, 0x1f
shr eax, cl
add dword [esp + 0x20], eax
movzx edx, byte [esp + 0x1b]
mov eax, dword [esp + 0x50]
add eax, edx
cmp eax, 0x14
jb 0x437657
cmp edi, 0x20
ja 0x437657
cmp ebx, dword [esp + 0x9c]
jb 0x437627
mov eax, edi
shr eax, 3
sub ebx, eax
and edi, 7
jmp 0x437643
cmp ebx, ebp
je 0x437657
mov ecx, edi
mov eax, ebx
shr ecx, 3
sub eax, ecx
cmp eax, ebp
jae 0x43763c
mov ecx, ebx
sub ecx, ebp
imul eax, ecx, 0xfffffff8
sub ebx, ecx
add edi, eax
mov esi, dword [ebx]
mov dword [esp + 0x8c], esi
mov dword [esp + 0x94], ebx
mov dword [esp + 0x10], ebx
cmp byte [esp + 0x1b], 0
jbe 0x437677
mov ecx, edi
mov eax, esi
lea edi, [ecx + edx]
and ecx, 0x1f
neg edx
shl eax, cl
and edx, 0x1f
mov ecx, edx
shr eax, cl
add dword [esp + 0x24], eax
cmp edi, 0x20
ja 0x4376c5
cmp ebx, dword [esp + 0x9c]
jb 0x437691
mov eax, edi
shr eax, 3
sub ebx, eax
and edi, 7
jmp 0x4376b1
cmp ebx, ebp
je 0x4376c5
mov ecx, edi
mov eax, ebx
shr ecx, 3
sub eax, ecx
cmp eax, ebp
jae 0x4376a6
mov ecx, ebx
sub ecx, ebp
lea eax, [ecx*8]
sub ebx, ecx
sub edi, eax
mov esi, dword [ebx]
mov dword [esp + 0x8c], esi
mov dword [esp + 0x94], ebx
mov dword [esp + 0x10], ebx
mov eax, dword [esp + 0x5c]
lea edx, [edi + eax]
mov edi, esi
mov ecx, edx
neg ecx
and ecx, 0x1f
shr edi, cl
and edi, dword [eax*4 + 0x55ab98]
mov eax, dword [esp + 0x34]
movzx eax, ax
add edi, eax
mov eax, dword [esp + 0x58]
add edx, eax
mov dword [esp + 0x70], edi
mov dword [esp + 0xa0], edi
mov ecx, edx
neg ecx
mov edi, esi
and ecx, 0x1f
shr edi, cl
mov ecx, edx
and edi, dword [eax*4 + 0x55ab98]
mov eax, dword [esp + 0x40]
movzx eax, ax
add edi, eax
mov dword [esp + 0x58], edi
mov dword [esp + 0xb0], edi
cmp edx, 0x20
ja 0x437777
cmp ebx, dword [esp + 0x9c]
jb 0x43773a
mov eax, ecx
shr eax, 3
sub ebx, eax
and ecx, 7
jmp 0x437763
cmp ebx, ebp
jne 0x437747
cmp edx, 0x20
jb 0x437777
mov ecx, edx
jmp 0x437777
mov edx, ecx
mov eax, ebx
shr edx, 3
sub eax, edx
cmp eax, ebp
jae 0x437758
mov edx, ebx
sub edx, ebp
lea eax, [edx*8]
sub ebx, edx
sub ecx, eax
mov esi, dword [ebx]
mov dword [esp + 0x8c], esi
mov dword [esp + 0x94], ebx
mov dword [esp + 0x10], ebx
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x24]
lea ebp, [ecx + eax]
mov ecx, ebp
mov dword [esp + 0x4c], ebp
neg ecx
mov dword [esp + 0x90], ebp
and ecx, 0x1f
shr esi, cl
and esi, dword [eax*4 + 0x55ab98]
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x30]
movzx eax, ax
add esi, eax
mov dword [esp + 0x48], esi
mov dword [esp + 0xa8], esi
lea eax, [ecx + edx]
mov esi, dword [esp + 0x78]
cmp eax, dword [esi + 0x75f8]
ja 0x4380d9
jmp 0x4377d0
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x20]
add eax, edx
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x50], eax
mov dword [esp + 0x2c], ecx
lea ecx, [eax - 0x20]
mov eax, dword [esp + 0x14]
add eax, edx
mov dword [esp + 0x3c], ecx
add edx, dword [esp + 0x20]
mov edi, eax
mov dword [esp + 0x34], eax
sub edi, esi
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x40], edx
mov dword [esp + 0x5c], edi
cmp dword [esp + 0x50], eax
ja 0x437b45
mov eax, dword [esp + 0x14]
add eax, edx
cmp eax, ecx
ja 0x437b45
mov ecx, dword [esp + 0x60]
lea eax, [edx + 0x20]
sub ecx, dword [esp + 0x14]
cmp ecx, eax
jb 0x437b41
mov ebx, dword [esp + 0x30]
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
mov edx, dword [ebx + 8]
mov esi, dword [ebx + 0xc]
mov ebx, dword [esp + 0x14]
mov dword [ebx], eax
mov eax, ebx
mov ebx, dword [esp + 0x10]
mov dword [eax + 4], ecx
mov dword [eax + 8], edx
mov dword [eax + 0xc], esi
mov eax, dword [esp + 0x24]
cmp eax, 0x10
jbe 0x437904
mov esi, dword [esp + 0x30]
lea edi, [eax - 0x10]
mov eax, dword [esp + 0x14]
add esi, 0x10
add eax, 0x10
mov dword [esp + 0x30], esi
mov dword [esp + 0x38], eax
add eax, edi
mov ebx, dword [esp + 0x38]
mov ecx, dword [esi + 4]
mov edx, dword [esi + 8]
mov dword [esp + 0x3c], eax
mov eax, dword [esi]
mov esi, dword [esi + 0xc]
mov dword [ebx], eax
mov eax, ebx
mov ebx, dword [esp + 0x10]
mov dword [eax + 4], ecx
mov dword [eax + 8], edx
mov dword [eax + 0xc], esi
cmp edi, 0x10
jle 0x437900
mov ebx, dword [esp + 0x30]
mov edi, eax
mov ebp, dword [esp + 0x3c]
add edi, 0x10
add ebx, 0x10
jmp 0x4378c0
mov eax, dword [ebx]
lea ebx, [ebx + 0x20]
mov ecx, dword [ebx - 0x1c]
mov edx, dword [ebx - 0x18]
mov esi, dword [ebx - 0x14]
mov dword [edi], eax
mov dword [edi + 4], ecx
mov dword [edi + 8], edx
mov dword [edi + 0xc], esi
mov eax, dword [ebx - 0x10]
mov ecx, dword [ebx - 0xc]
mov edx, dword [ebx - 8]
mov esi, dword [ebx - 4]
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], ecx
mov dword [edi + 0x18], edx
mov dword [edi + 0x1c], esi
add edi, 0x20
cmp edi, ebp
jb 0x4378c0
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x4c]
mov edi, dword [esp + 0x5c]
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x68]
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x30], eax
mov dword [esp + 0x38], eax
mov eax, edx
sub eax, ecx
cmp esi, eax
jbe 0x43798e
mov eax, edx
sub eax, dword [esp + 0x74]
cmp esi, eax
ja 0x437297
mov esi, dword [esp + 0x64]
mov eax, esi
sub eax, ecx
mov ecx, dword [esp + 0x20]
add edi, eax
lea eax, [edi + ecx]
cmp eax, esi
ja 0x437963
push ecx
push edi
push edx
call fcn.00531d40
mov eax, dword [esp + 0x4c]
add esp, 0xc
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x30]
jmp 0x437b89
sub esi, edi
push esi
push edi
push edx
call fcn.00531d40
mov edx, dword [esp + 0x40]
add esp, 0xc
mov eax, dword [esp + 0x20]
add edx, esi
mov edi, dword [esp + 0x68]
sub eax, esi
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x34], edx
mov dword [esp + 0x2c], eax
jmp 0x437992
mov eax, dword [esp + 0x2c]
cmp esi, 0x10
jb 0x437a31
mov ecx, dword [edi + 4]
add eax, edx
cmp dword [esp + 0x2c], 0x10
mov edx, dword [edi + 8]
mov esi, dword [edi + 0xc]
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x50], eax
mov eax, dword [edi]
mov dword [ecx], eax
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x3c]
mov dword [eax + 4], ecx
mov dword [eax + 8], edx
mov dword [eax + 0xc], esi
jle 0x437a20
mov ebp, dword [esp + 0x50]
lea ebx, [edi + 0x10]
add eax, 0x10
mov dword [esp + 0x3c], eax
mov edi, eax
mov edi, edi
mov eax, dword [ebx]
lea ebx, [ebx + 0x20]
mov ecx, dword [ebx - 0x1c]
mov edx, dword [ebx - 0x18]
mov esi, dword [ebx - 0x14]
mov dword [edi], eax
mov dword [edi + 4], ecx
mov dword [edi + 8], edx
mov dword [edi + 0xc], esi
mov eax, dword [ebx - 0x10]
mov ecx, dword [ebx - 0xc]
mov edx, dword [ebx - 8]
mov esi, dword [ebx - 4]
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], ecx
mov dword [edi + 0x18], edx
mov dword [edi + 0x1c], esi
add edi, 0x20
cmp edi, ebp
jb 0x4379e0
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x4c]
mov eax, dword [esp + 0x40]
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x30]
jmp 0x437b89
cmp esi, 8
jae 0x437a65
movzx eax, byte [edi]
mov byte [edx], al
movzx eax, byte [edi + 1]
mov byte [edx + 1], al
movzx eax, byte [edi + 2]
mov byte [edx + 2], al
movzx eax, byte [edi + 3]
add edi, dword [esi*4 + 0x55ac38]
mov byte [edx + 3], al
mov eax, dword [edi]
sub edi, dword [esi*4 + str._b_b_b_a_b_t_n_v]
mov dword [edx + 4], eax
jmp 0x437a6f
mov eax, dword [edi]
mov ecx, dword [edi + 4]
mov dword [edx], eax
mov dword [edx + 4], ecx
mov ecx, dword [esp + 0x2c]
cmp ecx, 8
jbe 0x437a20
lea esi, [edi + 8]
lea eax, [ecx - 8]
mov dword [esp + 0x50], esi
lea edi, [edx + 8]
mov dword [esp + 0x3c], eax
lea edx, [edi + eax]
mov eax, edi
sub eax, esi
mov dword [esp + 0x5c], edx
cmp eax, 0x10
jge 0x437ac4
sub esi, edi
jmp 0x437aa0
mov eax, dword [edi + esi]
mov ecx, dword [edi + esi + 4]
mov dword [edi], eax
mov dword [edi + 4], ecx
add edi, 8
cmp edi, edx
jb 0x437aa0
mov eax, dword [esp + 0x40]
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x30]
jmp 0x437b89
cmp dword [esp + 0x3c], 0x10
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov edx, dword [esi + 8]
mov esi, dword [esi + 0xc]
mov dword [edi], eax
mov dword [edi + 4], ecx
mov dword [edi + 8], edx
mov dword [edi + 0xc], esi
jle 0x437a20
mov ebx, dword [esp + 0x50]
add edi, 0x10
mov ebp, dword [esp + 0x5c]
add ebx, 0x10
mov eax, dword [ebx]
lea ebx, [ebx + 0x20]
mov ecx, dword [ebx - 0x1c]
mov edx, dword [ebx - 0x18]
mov esi, dword [ebx - 0x14]
mov dword [edi], eax
mov dword [edi + 4], ecx
mov dword [edi + 8], edx
mov dword [edi + 0xc], esi
mov eax, dword [ebx - 0x10]
mov ecx, dword [ebx - 0xc]
mov edx, dword [ebx - 8]
mov esi, dword [ebx - 4]
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], ecx
mov dword [edi + 0x18], edx
mov dword [edi + 0x1c], esi
add edi, 0x20
cmp edi, ebp
jb 0x437af3
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x4c]
mov eax, dword [esp + 0x40]
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x30]
jmp 0x437b89
mov ecx, dword [esp + 0x3c]
push dword [esp + 0x64]
mov edx, dword [esp + 0x28]
lea eax, [esp + 0x3c]
push dword [esp + 0x78]
mov edi, dword [esp + 0x1c]
push dword [esp + 0x70]
push dword [esp + 0x78]
push eax
sub esp, 0xc
mov eax, esp
push ecx
push dword [esp + 0x84]
mov dword [eax], edx
mov edx, dword [esp + 0x48]
mov dword [eax + 4], edx
push edi
mov dword [eax + 8], esi
call fcn.00439bb0
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x30], ecx
cmp eax, 0xffffff88
ja 0x438f62
add edi, eax
sub dword [esp + 0xe0], 1
mov dword [esp + 0x14], edi
je 0x438109
mov edi, dword [esp + 0x98]
cmp ebp, 0x20
ja 0x437bfe
cmp ebx, dword [esp + 0x9c]
jb 0x437bc7
mov eax, ebp
shr eax, 3
sub ebx, eax
and ebp, 7
jmp 0x437be3
cmp ebx, edi
je 0x437bfe
mov ecx, ebp
mov eax, ebx
shr ecx, 3
sub eax, ecx
cmp eax, edi
jae 0x437bdc
mov ecx, ebx
sub ecx, edi
imul eax, ecx, 0xfffffff8
sub ebx, ecx
add ebp, eax
mov esi, dword [ebx]
mov dword [esp + 0x8c], esi
mov dword [esp + 0x90], ebp
mov dword [esp + 0x94], ebx
mov dword [esp + 0x10], ebx
mov ecx, dword [esp + 0xb4]
mov eax, dword [esp + 0x58]
mov ebx, dword [esp + 0xa4]
mov esi, dword [esp + 0xb4]
mov edx, dword [esp + 0x48]
mov eax, dword [ecx + eax*8 + 4]
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x20], eax
mov eax, dword [ebx + ecx*8 + 4]
mov dword [esp + 0x24], eax
mov al, byte [ebx + ecx*8 + 2]
movzx ecx, word [ebx + ecx*8]
mov ebx, dword [esp + 0x58]
mov byte [esp + 0x1b], al
mov eax, dword [esp + 0x58]
mov dword [esp + 0x5c], ecx
movzx ecx, word [esi + ebx*8]
mov ebx, dword [esp + 0xa4]
mov al, byte [esi + eax*8 + 2]
mov esi, dword [esp + 0xac]
mov dword [esp + 0x34], ecx
mov byte [esp + 0x2b], al
mov eax, dword [esp + 0xac]
movzx ecx, word [esi + edx*8]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x70]
mov al, byte [eax + edx*8 + 2]
movzx ecx, byte [ebx + ecx*8 + 3]
mov ebx, dword [esp + 0xb4]
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x58]
movzx ecx, byte [ebx + ecx*8 + 3]
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x2c], ecx
movzx ecx, byte [esi + edx*8 + 3]
mov esi, dword [esp + 0x8c]
mov dword [esp + 0x40], ecx
cmp al, 1
jbe 0x437e03
cmp dword [esp + 0xe4], 0
je 0x437d63
cmp al, 0x19
jb 0x437d63
mov ebx, dword [esp + 0xac]
mov ecx, ebp
and ecx, 0x1f
movzx eax, al
sub eax, 5
mov edx, esi
shl edx, cl
add ebp, eax
mov ecx, eax
mov eax, dword [esp + 0x48]
neg ecx
and ecx, 0x1f
shr edx, cl
shl edx, 5
add edx, dword [ebx + eax*8 + 4]
mov ebx, dword [esp + 0x10]
cmp ebp, 0x20
ja 0x437d49
cmp ebx, dword [esp + 0x9c]
jb 0x437d15
mov eax, ebp
shr eax, 3
sub ebx, eax
and ebp, 7
jmp 0x437d35
cmp ebx, edi
je 0x437d49
mov ecx, ebp
mov eax, ebx
shr ecx, 3
sub eax, ecx
cmp eax, edi
jae 0x437d2a
mov ecx, ebx
sub ecx, edi
lea eax, [ecx*8]
sub ebx, ecx
sub ebp, eax
mov esi, dword [ebx]
mov dword [esp + 0x8c], esi
mov dword [esp + 0x94], ebx
mov dword [esp + 0x10], ebx
mov ecx, ebp
mov eax, esi
and ecx, 0x1f
add ebp, 5
shl eax, cl
shr eax, 0x1b
add edx, eax
mov dword [esp + 0x1c], edx
jmp 0x437de1
mov ebx, dword [esp + 0xac]
mov ecx, ebp
movzx edx, al
and ecx, 0x1f
mov eax, esi
add ebp, edx
shl eax, cl
mov ecx, edx
mov edx, dword [esp + 0x48]
neg ecx
and ecx, 0x1f
shr eax, cl
mov edx, dword [ebx + edx*8 + 4]
mov ebx, dword [esp + 0x10]
add edx, eax
mov dword [esp + 0x1c], edx
cmp ebp, 0x20
ja 0x437de1
cmp ebx, dword [esp + 0x9c]
jb 0x437dad
mov eax, ebp
shr eax, 3
sub ebx, eax
and ebp, 7
jmp 0x437dcd
cmp ebx, edi
je 0x437de1
mov ecx, ebp
mov eax, ebx
shr ecx, 3
sub eax, ecx
cmp eax, edi
jae 0x437dc2
mov ecx, ebx
sub ecx, edi
lea eax, [ecx*8]
sub ebx, ecx
sub ebp, eax
mov esi, dword [ebx]
mov dword [esp + 0x8c], esi
mov dword [esp + 0x94], ebx
mov dword [esp + 0x10], ebx
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0xb8]
mov dword [esp + 0xc0], eax
mov dword [esp + 0x54], ecx
mov dword [esp + 0xbc], ecx
jmp 0x437ecb
xor edx, edx
cmp dword [esp + 0x24], edx
sete dl
test al, al
jne 0x437e44
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + edx*4 + 0xb8]
neg eax
mov dword [esp + 0x1c], ecx
sbb eax, eax
and eax, 4
mov eax, dword [esp + eax + 0xb8]
mov dword [esp + 0x54], eax
mov dword [esp + 0xbc], eax
mov dword [esp + 0xb8], ecx
jmp 0x437ed2
mov ebx, dword [esp + 0x48]
mov eax, esi
mov esi, dword [esp + 0xac]
mov ecx, ebp
and ecx, 0x1f
inc ebp
shl eax, cl
shr eax, 0x1f
mov ecx, dword [esi + ebx*8 + 4]
mov ebx, dword [esp + 0x10]
add ecx, edx
mov esi, dword [esp + 0x8c]
add ecx, eax
mov dword [esp + 0x90], ebp
cmp ecx, 3
jne 0x437e95
mov ecx, dword [esp + 0xb8]
xor eax, eax
cmp ecx, 1
sete al
lea edx, [ecx - 1]
add edx, eax
mov dword [esp + 0x1c], edx
jmp 0x437eae
mov eax, dword [esp + ecx*4 + 0xb8]
xor edx, edx
test eax, eax
sete dl
add edx, eax
mov dword [esp + 0x1c], edx
cmp ecx, 1
je 0x437eb9
mov eax, dword [esp + 0x54]
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x54], eax
mov dword [esp + 0xbc], eax
mov dword [esp + 0xb8], edx
mov al, byte [esp + 0x2b]
movzx edx, al
test al, al
je 0x437ef5
mov ecx, ebp
mov eax, esi
and ecx, 0x1f
add ebp, edx
shl eax, cl
mov ecx, edx
neg ecx
and ecx, 0x1f
shr eax, cl
add dword [esp + 0x20], eax
movzx eax, byte [esp + 0x1b]
mov dword [esp + 0x3c], eax
add eax, edx
cmp eax, 0x14
jb 0x437f65
cmp ebp, 0x20
ja 0x437f65
cmp ebx, dword [esp + 0x9c]
jb 0x437f33
mov eax, ebp
shr eax, 3
sub ebx, eax
and ebp, 7
mov dword [esp + 0x10], ebx
mov dword [esp + 0x94], ebx
mov esi, dword [ebx]
mov dword [esp + 0x8c], esi
jmp 0x437f6c
cmp ebx, edi
je 0x437f65
mov ecx, ebp
mov eax, ebx
shr ecx, 3
sub eax, ecx
cmp eax, edi
jae 0x437f48
mov ecx, ebx
sub ecx, edi
sub ebx, ecx
imul eax, ecx, 0xfffffff8
mov dword [esp + 0x10], ebx
mov dword [esp + 0x94], ebx
mov esi, dword [ebx]
add ebp, eax
mov dword [esp + 0x8c], esi
jmp 0x437f6c
mov esi, dword [esp + 0x8c]
cmp byte [esp + 0x1b], 0
jbe 0x437f8f
mov ecx, ebp
mov eax, esi
add ebp, dword [esp + 0x3c]
and ecx, 0x1f
shl eax, cl
mov ecx, dword [esp + 0x3c]
neg ecx
and ecx, 0x1f
shr eax, cl
add dword [esp + 0x24], eax
cmp ebp, 0x20
ja 0x437fd9
cmp ebx, dword [esp + 0x9c]
jb 0x437fa9
mov eax, ebp
shr eax, 3
sub ebx, eax
and ebp, 7
jmp 0x437fc5
cmp ebx, edi
je 0x437fd9
mov ecx, ebp
mov eax, ebx
shr ecx, 3
sub eax, ecx
cmp eax, edi
jae 0x437fbe
mov ecx, ebx
sub ecx, edi
imul eax, ecx, 0xfffffff8
sub ebx, ecx
add ebp, eax
mov esi, dword [ebx]
mov dword [esp + 0x8c], esi
mov dword [esp + 0x94], ebx
mov dword [esp + 0x10], ebx
mov eax, dword [esp + 0x50]
lea edx, [eax + ebp]
mov ebp, esi
mov ecx, edx
mov dword [esp + 0x90], edx
neg ecx
and ecx, 0x1f
shr ebp, cl
and ebp, dword [eax*4 + 0x55ab98]
mov eax, dword [esp + 0x5c]
movzx eax, ax
add ebp, eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x70], ebp
mov dword [esp + 0xa0], ebp
lea ecx, [eax + edx]
lea ebp, [eax + edx]
neg ecx
and ecx, 0x1f
mov edx, esi
shr edx, cl
and edx, dword [eax*4 + 0x55ab98]
mov eax, dword [esp + 0x34]
movzx eax, ax
add edx, eax
mov dword [esp + 0x58], edx
mov dword [esp + 0xb0], edx
cmp ebp, 0x20
ja 0x438089
cmp ebx, dword [esp + 0x9c]
jb 0x438055
mov eax, ebp
shr eax, 3
sub ebx, eax
and ebp, 7
jmp 0x438075
cmp ebx, edi
je 0x438089
mov ecx, ebp
mov eax, ebx
shr ecx, 3
sub eax, ecx
cmp eax, edi
jae 0x43806a
mov ecx, ebx
sub ecx, edi
lea eax, [ecx*8]
sub ebx, ecx
sub ebp, eax
mov esi, dword [ebx]
mov dword [esp + 0x8c], esi
mov dword [esp + 0x94], ebx
mov dword [esp + 0x10], ebx
mov eax, dword [esp + 0x40]
add ebp, eax
mov edx, dword [esp + 0x24]
mov ecx, ebp
neg ecx
mov dword [esp + 0x4c], ebp
and ecx, 0x1f
mov dword [esp + 0x90], ebp
shr esi, cl
and esi, dword [eax*4 + 0x55ab98]
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x30]
movzx eax, ax
add esi, eax
mov dword [esp + 0x48], esi
mov dword [esp + 0xa8], esi
lea eax, [edx + ecx]
mov esi, dword [esp + 0x78]
cmp eax, dword [esi + 0x75f8]
jbe 0x4377d0
mov edi, dword [esp + 0x14]
cmp dword [esp + 0xe0], 0
jle 0x438e92
mov esi, dword [esi + 0x75f8]
sub esi, ecx
je 0x43812b
mov eax, dword [esp + 0x60]
sub eax, edi
cmp esi, eax
jbe 0x438113
mov eax, 0xffffffba
jmp 0x438f62
mov edx, dword [esp + 0x24]
mov esi, dword [esp + 0x78]
jmp 0x4380dd
push esi
push ecx
push edi
call fcn.0043a470
mov edx, dword [esp + 0x24]
sub edx, esi
add edi, esi
mov dword [esp + 0x24], edx
mov dword [esp + 0x14], edi
mov ecx, dword [esp + 0x78]
add edi, edx
add edx, dword [esp + 0x20]
mov dword [esp + 0x2c], edi
mov dword [esp + 0x40], edx
lea eax, [ecx + 0x17600]
mov dword [ecx + 0x75fc], 0
lea esi, [ecx + 0x7600]
mov dword [esp + 0x6c], eax
mov ecx, dword [esp + 0x24]
mov eax, edi
mov edi, dword [esp + 0x1c]
add ecx, esi
sub eax, edi
mov dword [esp + 0x38], esi
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], eax
cmp ecx, dword [esp + 0x6c]
ja 0x438482
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x60]
add ecx, edx
add eax, 0xffffffe0
cmp ecx, eax
ja 0x438482
mov ecx, dword [esp + 0x60]
lea eax, [edx + 0x20]
sub ecx, dword [esp + 0x14]
cmp ecx, eax
jb 0x438482
mov ebp, dword [esp + 0x14]
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov edx, dword [esi + 8]
mov esi, dword [esi + 0xc]
mov dword [ebp], eax
mov eax, ebp
mov dword [eax + 4], ecx
mov ecx, ebp
mov eax, dword [esp + 0x24]
mov ebp, dword [esp + 0x4c]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], esi
cmp eax, 0x10
jbe 0x438265
mov esi, dword [esp + 0x38]
lea edi, [eax - 0x10]
mov ebx, dword [esp + 0x14]
lea eax, [ecx + 0x10]
add eax, edi
mov dword [esp + 0x44], eax
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
mov edx, dword [esi + 0x18]
mov esi, dword [esi + 0x1c]
mov dword [ebx + 0x10], eax
mov dword [ebx + 0x14], ecx
mov dword [ebx + 0x18], edx
mov dword [ebx + 0x1c], esi
mov ebx, dword [esp + 0x10]
cmp edi, 0x10
jle 0x438261
mov edi, dword [esp + 0x14]
mov ebp, dword [esp + 0x38]
add edi, 0x20
mov ebx, dword [esp + 0x44]
add ebp, 0x20
lea ebx, [ebx]
mov eax, dword [ebp]
lea ebp, [ebp + 0x20]
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x14]
mov dword [edi], eax
mov dword [edi + 4], ecx
mov dword [edi + 8], edx
mov dword [edi + 0xc], esi
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
mov esi, dword [ebp - 4]
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], ecx
mov dword [edi + 0x18], edx
mov dword [edi + 0x1c], esi
add edi, 0x20
cmp edi, ebx
jb 0x438220
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x4c]
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x38], eax
mov eax, edx
sub eax, ecx
cmp edi, eax
jbe 0x4382eb
mov eax, edx
sub eax, dword [esp + 0x74]
cmp edi, eax
ja 0x437297
mov eax, dword [esp + 0x64]
mov esi, dword [esp + 0x20]
sub eax, ecx
mov ecx, dword [esp + 0x34]
add ecx, eax
lea eax, [ecx + esi]
cmp eax, dword [esp + 0x64]
ja 0x4382bc
push esi
push ecx
push edx
call fcn.00531d40
mov eax, dword [esp + 0x4c]
add esp, 0xc
mov esi, dword [esp + 0x14]
jmp 0x4384c5
mov esi, dword [esp + 0x64]
sub esi, ecx
push esi
push ecx
push edx
call fcn.00531d40
mov edx, dword [esp + 0x38]
add esp, 0xc
mov eax, dword [esp + 0x20]
add edx, esi
sub eax, esi
mov dword [esp + 0x2c], edx
mov esi, dword [esp + 0x68]
mov dword [esp + 0x20], eax
mov dword [esp + 0x34], esi
jmp 0x4382f3
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x20]
cmp edi, 0x10
jb 0x43837e
mov edi, dword [esp + 0x2c]
add eax, edx
cmp dword [esp + 0x20], 0x10
mov ecx, dword [esi + 4]
mov edx, dword [esi + 8]
mov dword [esp + 0x44], eax
mov eax, dword [esi]
mov esi, dword [esi + 0xc]
mov dword [edi], eax
mov dword [edi + 4], ecx
mov dword [edi + 8], edx
mov dword [edi + 0xc], esi
jle 0x438371
mov ebx, dword [esp + 0x34]
add edi, 0x10
mov ebp, dword [esp + 0x44]
add ebx, 0x10
mov eax, dword [ebx]
lea ebx, [ebx + 0x20]
mov ecx, dword [ebx - 0x1c]
mov edx, dword [ebx - 0x18]
mov esi, dword [ebx - 0x14]
mov dword [edi], eax
mov dword [edi + 4], ecx
mov dword [edi + 8], edx
mov dword [edi + 0xc], esi
mov eax, dword [ebx - 0x10]
mov ecx, dword [ebx - 0xc]
mov edx, dword [ebx - 8]
mov esi, dword [ebx - 4]
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], ecx
mov dword [edi + 0x18], edx
mov dword [edi + 0x1c], esi
add edi, 0x20
cmp edi, ebp
jb 0x438331
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x4c]
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0x14]
jmp 0x4384c5
cmp edi, 8
jae 0x4383b2
movzx eax, byte [esi]
mov byte [edx], al
movzx eax, byte [esi + 1]
mov byte [edx + 1], al
movzx eax, byte [esi + 2]
mov byte [edx + 2], al
movzx eax, byte [esi + 3]
add esi, dword [edi*4 + 0x55ac38]
mov byte [edx + 3], al
mov eax, dword [esi]
sub esi, dword [edi*4 + str._b_b_b_a_b_t_n_v]
mov dword [edx + 4], eax
jmp 0x4383bc
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov dword [edx], eax
mov dword [edx + 4], ecx
mov eax, dword [esp + 0x20]
cmp eax, 8
jbe 0x438371
add eax, 0xfffffff8
lea edi, [edx + 8]
add esi, 8
mov dword [esp + 0x44], esi
lea edx, [edi + eax]
mov eax, edi
sub eax, esi
mov dword [esp + 0x3c], edx
cmp eax, 0x10
jge 0x438404
sub esi, edi
mov eax, dword [edi + esi]
mov ecx, dword [edi + esi + 4]
mov dword [edi], eax
mov dword [edi + 4], ecx
add edi, 8
cmp edi, edx
jb 0x4383e4
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0x14]
jmp 0x4384c5
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov edx, dword [esi + 8]
mov esi, dword [esi + 0xc]
mov dword [edi], eax
mov eax, dword [esp + 0x20]
mov dword [edi + 4], ecx
add eax, 0xfffffff8
mov dword [edi + 8], edx
mov dword [edi + 0xc], esi
cmp eax, 0x10
jle 0x438371
mov ebx, dword [esp + 0x44]
add edi, 0x10
mov ebp, dword [esp + 0x3c]
add ebx, 0x10
mov eax, dword [ebx]
lea ebx, [ebx + 0x20]
mov ecx, dword [ebx - 0x1c]
mov edx, dword [ebx - 0x18]
mov esi, dword [ebx - 0x14]
mov dword [edi], eax
mov dword [edi + 4], ecx
mov dword [edi + 8], edx
mov dword [edi + 0xc], esi
mov eax, dword [ebx - 0x10]
mov ecx, dword [ebx - 0xc]
mov edx, dword [ebx - 8]
mov esi, dword [ebx - 4]
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], ecx
mov dword [edi + 0x18], edx
mov dword [edi + 0x1c], esi
add edi, 0x20
cmp edi, ebp
jb 0x438438
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x4c]
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0x14]
jmp 0x4384c5
push dword [esp + 0x64]
mov ecx, dword [esp + 0x28]
lea eax, [esp + 0x3c]
push dword [esp + 0x78]
mov edx, dword [esp + 0x28]
push dword [esp + 0x70]
mov esi, dword [esp + 0x20]
push dword [esp + 0x78]
push eax
sub esp, 0xc
mov eax, esp
push dword [esp + 0x80]
mov dword [eax], ecx
mov dword [eax + 4], edx
push esi
mov dword [eax + 8], edi
call fcn.00439aa0
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x30], ecx
cmp eax, 0xffffff88
ja 0x438f62
mov edx, dword [esp + 0xe0]
add esi, eax
sub edx, 1
mov dword [esp + 0x14], esi
mov dword [esp + 0xe0], edx
je 0x43855c
cmp ebp, 0x20
ja 0x43855c
mov edi, dword [esp + 0x98]
cmp ebx, dword [esp + 0x9c]
jb 0x438523
mov eax, ebp
shr eax, 3
sub ebx, eax
and ebp, 7
mov dword [esp + 0x10], ebx
mov dword [esp + 0x94], ebx
mov dword [esp + 0x90], ebp
mov esi, dword [ebx]
mov dword [esp + 0x8c], esi
jmp 0x438563
cmp ebx, edi
je 0x438563
mov ecx, ebp
mov eax, ebx
shr ecx, 3
sub eax, ecx
cmp eax, edi
jae 0x438538
mov ecx, ebx
sub ecx, edi
sub ebx, ecx
imul eax, ecx, 0xfffffff8
mov dword [esp + 0x10], ebx
mov dword [esp + 0x94], ebx
mov esi, dword [ebx]
add ebp, eax
mov dword [esp + 0x8c], esi
mov dword [esp + 0x90], ebp
jmp 0x438563
mov edi, dword [esp + 0x98]
test edx, edx
jle 0x438e9b
jmp 0x438570
mov ecx, dword [esp + 0xb4]
mov eax, dword [esp + 0x58]
mov ebx, dword [esp + 0x70]
mov edx, dword [esp + 0x48]
mov eax, dword [ecx + eax*8 + 4]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xa4]
mov esi, eax
mov ecx, dword [eax + ebx*8 + 4]
mov al, byte [esi + ebx*8 + 2]
mov esi, dword [esp + 0xb4]
mov byte [esp + 0x1b], al
mov eax, dword [esp + 0x58]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0xac]
mov al, byte [esi + eax*8 + 2]
mov byte [esp + 0x2b], al
mov eax, dword [esp + 0xac]
mov al, byte [eax + edx*8 + 2]
mov edx, dword [esp + 0xa4]
movzx edx, word [edx + ebx*8]
mov ebx, dword [esp + 0x58]
mov dword [esp + 0x50], edx
movzx edx, word [esi + ebx*8]
mov ebx, dword [esp + 0x48]
mov dword [esp + 0x2c], edx
movzx edx, word [ecx + ebx*8]
mov ebx, dword [esp + 0xa4]
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x70]
movzx edx, byte [ebx + edx*8 + 3]
mov ebx, ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x58]
movzx edx, byte [esi + edx*8 + 3]
mov esi, dword [esp + 0x8c]
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x48]
movzx edx, byte [ebx + edx*8 + 3]
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x34], edx
cmp al, 1
jbe 0x438785
cmp dword [esp + 0xe4], 0
je 0x4386e5
cmp al, 0x19
jb 0x4386e5
mov ebx, dword [esp + 0xac]
mov ecx, ebp
and ecx, 0x1f
movzx eax, al
sub eax, 5
mov edx, esi
shl edx, cl
add ebp, eax
mov ecx, eax
mov eax, dword [esp + 0x48]
neg ecx
and ecx, 0x1f
shr edx, cl
shl edx, 5
add edx, dword [ebx + eax*8 + 4]
mov ebx, dword [esp + 0x10]
cmp ebp, 0x20
ja 0x4386cb
cmp ebx, dword [esp + 0x9c]
jb 0x438697
mov eax, ebp
shr eax, 3
sub ebx, eax
and ebp, 7
jmp 0x4386b7
cmp ebx, edi
je 0x4386cb
mov ecx, ebp
mov eax, ebx
shr ecx, 3
sub eax, ecx
cmp eax, edi
jae 0x4386ac
mov ecx, ebx
sub ecx, edi
lea eax, [ecx*8]
sub ebx, ecx
sub ebp, eax
mov esi, dword [ebx]
mov dword [esp + 0x8c], esi
mov dword [esp + 0x94], ebx
mov dword [esp + 0x10], ebx
mov ecx, ebp
mov eax, esi
and ecx, 0x1f
add ebp, 5
shl eax, cl
shr eax, 0x1b
add edx, eax
mov dword [esp + 0x24], edx
jmp 0x438763
mov ebx, dword [esp + 0xac]
mov ecx, ebp
movzx edx, al
and ecx, 0x1f
mov eax, esi
add ebp, edx
shl eax, cl
mov ecx, edx
mov edx, dword [esp + 0x48]
neg ecx
and ecx, 0x1f
shr eax, cl
mov edx, dword [ebx + edx*8 + 4]
mov ebx, dword [esp + 0x10]
add edx, eax
mov dword [esp + 0x24], edx
cmp ebp, 0x20
ja 0x438763
cmp ebx, dword [esp + 0x9c]
jb 0x43872f
mov eax, ebp
shr eax, 3
sub ebx, eax
and ebp, 7
jmp 0x43874f
cmp ebx, edi
je 0x438763
mov ecx, ebp
mov eax, ebx
shr ecx, 3
sub eax, ecx
cmp eax, edi
jae 0x438744
mov ecx, ebx
sub ecx, edi
lea eax, [ecx*8]
sub ebx, ecx
sub ebp, eax
mov esi, dword [ebx]
mov dword [esp + 0x8c], esi
mov dword [esp + 0x94], ebx
mov dword [esp + 0x10], ebx
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0xb8]
mov dword [esp + 0xc0], eax
mov dword [esp + 0x54], ecx
mov dword [esp + 0xbc], ecx
jmp 0x438843
xor edx, edx
test ecx, ecx
sete dl
test al, al
jne 0x4387c4
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + edx*4 + 0xb8]
neg eax
mov dword [esp + 0x24], ecx
sbb eax, eax
and eax, 4
mov eax, dword [esp + eax + 0xb8]
mov dword [esp + 0x54], eax
mov dword [esp + 0xbc], eax
mov dword [esp + 0xb8], ecx
jmp 0x43884a
mov ebx, dword [esp + 0xac]
mov ecx, ebp
and ecx, 0x1f
mov eax, esi
shl eax, cl
inc ebp
shr eax, 0x1f
mov dword [esp + 0x90], ebp
lea ecx, [eax + edx]
mov edx, dword [esp + 0x48]
add ecx, dword [ebx + edx*8 + 4]
mov ebx, dword [esp + 0x10]
cmp ecx, 3
jne 0x43880d
mov ecx, dword [esp + 0xb8]
xor eax, eax
cmp ecx, 1
sete al
lea edx, [ecx - 1]
add edx, eax
mov dword [esp + 0x24], edx
jmp 0x438826
mov eax, dword [esp + ecx*4 + 0xb8]
xor edx, edx
test eax, eax
sete dl
add edx, eax
mov dword [esp + 0x24], edx
cmp ecx, 1
je 0x438831
mov eax, dword [esp + 0x54]
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x54], eax
mov dword [esp + 0xbc], eax
mov dword [esp + 0xb8], edx
mov al, byte [esp + 0x2b]
movzx edx, al
test al, al
je 0x43886d
mov ecx, ebp
mov eax, esi
and ecx, 0x1f
add ebp, edx
shl eax, cl
mov ecx, edx
neg ecx
and ecx, 0x1f
shr eax, cl
add dword [esp + 0x1c], eax
movzx eax, byte [esp + 0x1b]
mov dword [esp + 0x44], eax
add eax, edx
cmp eax, 0x14
jb 0x4388dd
cmp ebp, 0x20
ja 0x4388dd
cmp ebx, dword [esp + 0x9c]
jb 0x4388ab
mov eax, ebp
shr eax, 3
sub ebx, eax
and ebp, 7
mov dword [esp + 0x10], ebx
mov dword [esp + 0x94], ebx
mov esi, dword [ebx]
mov dword [esp + 0x8c], esi
jmp 0x4388e4
cmp ebx, edi
je 0x4388dd
mov ecx, ebp
mov eax, ebx
shr ecx, 3
sub eax, ecx
cmp eax, edi
jae 0x4388c0
mov ecx, ebx
sub ecx, edi
sub ebx, ecx
imul eax, ecx, 0xfffffff8
mov dword [esp + 0x10], ebx
mov dword [esp + 0x94], ebx
mov esi, dword [ebx]
add ebp, eax
mov dword [esp + 0x8c], esi
jmp 0x4388e4
mov esi, dword [esp + 0x8c]
cmp byte [esp + 0x1b], 0
jbe 0x438907
mov ecx, ebp
mov eax, esi
add ebp, dword [esp + 0x44]
and ecx, 0x1f
shl eax, cl
mov ecx, dword [esp + 0x44]
neg ecx
and ecx, 0x1f
shr eax, cl
add dword [esp + 0x20], eax
cmp ebp, 0x20
ja 0x438967
cmp ebx, dword [esp + 0x9c]
jb 0x438935
mov eax, ebp
shr eax, 3
sub ebx, eax
and ebp, 7
mov dword [esp + 0x10], ebx
mov dword [esp + 0x94], ebx
mov esi, dword [ebx]
mov dword [esp + 0x8c], esi
jmp 0x43896e
cmp ebx, edi
je 0x438967
mov ecx, ebp
mov eax, ebx
shr ecx, 3
sub eax, ecx
cmp eax, edi
jae 0x43894a
mov ecx, ebx
sub ecx, edi
sub ebx, ecx
imul eax, ecx, 0xfffffff8
mov dword [esp + 0x10], ebx
mov dword [esp + 0x94], ebx
mov esi, dword [ebx]
add ebp, eax
mov dword [esp + 0x8c], esi
jmp 0x43896e
mov esi, dword [esp + 0x8c]
mov eax, dword [esp + 0x3c]
lea edx, [eax + ebp]
mov ebp, esi
mov ecx, edx
mov dword [esp + 0x90], edx
neg ecx
and ecx, 0x1f
shr ebp, cl
and ebp, dword [eax*4 + 0x55ab98]
mov eax, dword [esp + 0x50]
movzx eax, ax
add ebp, eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x70], ebp
mov dword [esp + 0xa0], ebp
lea ecx, [edx + eax]
lea edi, [eax + edx]
neg ecx
and ecx, 0x1f
mov edx, esi
shr edx, cl
and edx, dword [eax*4 + 0x55ab98]
mov eax, dword [esp + 0x2c]
movzx eax, ax
add edx, eax
mov dword [esp + 0x58], edx
mov dword [esp + 0xb0], edx
cmp edi, 0x20
ja 0x438a25
cmp ebx, dword [esp + 0x9c]
jb 0x4389ea
mov eax, edi
shr eax, 3
sub ebx, eax
and edi, 7
jmp 0x438a11
mov edx, dword [esp + 0x98]
cmp ebx, edx
je 0x438a25
mov ecx, edi
mov eax, ebx
shr ecx, 3
sub eax, ecx
cmp eax, edx
jae 0x438a06
mov ecx, ebx
sub ecx, edx
lea eax, [ecx*8]
sub ebx, ecx
sub edi, eax
mov esi, dword [ebx]
mov dword [esp + 0x8c], esi
mov dword [esp + 0x94], ebx
mov dword [esp + 0x10], ebx
mov edx, dword [esp + 0x34]
mov eax, esi
lea ebp, [edi + edx]
mov edi, dword [esp + 0x14]
mov ecx, ebp
mov dword [esp + 0x4c], ebp
neg ecx
mov dword [esp + 0x90], ebp
and ecx, 0x1f
shr eax, cl
and eax, dword [edx*4 + 0x55ab98]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x20]
add edi, edx
movzx ecx, cx
add ecx, eax
mov dword [esp + 0x2c], edi
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x48], ecx
add eax, edx
mov dword [esp + 0xa8], ecx
mov ecx, dword [esp + 0x30]
add ecx, edx
mov dword [esp + 0x40], eax
mov edx, dword [esp + 0x24]
sub edi, edx
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x34], edi
cmp ecx, dword [esp + 0x6c]
ja 0x438daf
mov ecx, dword [esp + 0x14]
add ecx, eax
mov eax, dword [esp + 0x60]
add eax, 0xffffffe0
cmp ecx, eax
ja 0x438daf
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x40]
sub ecx, dword [esp + 0x14]
add eax, 0x20
cmp ecx, eax
jb 0x438daf
mov ebx, dword [esp + 0x30]
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
mov edx, dword [ebx + 8]
mov esi, dword [ebx + 0xc]
mov ebx, dword [esp + 0x14]
mov dword [ebx], eax
mov eax, ebx
mov ebx, dword [esp + 0x10]
mov dword [eax + 4], ecx
mov dword [eax + 8], edx
mov dword [eax + 0xc], esi
mov eax, dword [esp + 0x20]
cmp eax, 0x10
jbe 0x438b89
mov esi, dword [esp + 0x30]
lea edi, [eax - 0x10]
mov eax, dword [esp + 0x14]
add esi, 0x10
add eax, 0x10
mov dword [esp + 0x44], edi
mov dword [esp + 0x38], eax
add eax, edi
cmp dword [esp + 0x44], 0x10
mov ecx, dword [esi + 4]
mov edx, dword [esi + 8]
mov edi, dword [esp + 0x38]
mov dword [esp + 0x50], eax
mov eax, dword [esi]
mov dword [esp + 0x3c], esi
mov esi, dword [esi + 0xc]
mov dword [edi], eax
mov eax, edi
mov dword [eax + 4], ecx
mov dword [eax + 8], edx
mov dword [eax + 0xc], esi
jle 0x438b85
mov ebp, dword [esp + 0x3c]
add edi, 0x10
mov ebx, dword [esp + 0x50]
add ebp, 0x10
mov eax, dword [ebp]
lea ebp, [ebp + 0x20]
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x14]
mov dword [edi], eax
mov dword [edi + 4], ecx
mov dword [edi + 8], edx
mov dword [edi + 0xc], esi
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
mov esi, dword [ebp - 4]
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], ecx
mov dword [edi + 0x18], edx
mov dword [edi + 0x1c], esi
add edi, 0x20
cmp edi, ebx
jb 0x438b44
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x4c]
mov edi, dword [esp + 0x34]
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x2c]
mov esi, dword [esp + 0x68]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x30], eax
mov dword [esp + 0x38], eax
mov eax, edx
sub eax, esi
cmp ecx, eax
jbe 0x438c15
mov eax, edx
sub eax, dword [esp + 0x74]
cmp ecx, eax
ja 0x437297
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x1c]
sub eax, esi
mov esi, dword [esp + 0x64]
add edi, eax
lea eax, [ecx + edi]
cmp eax, esi
ja 0x438be6
push ecx
push edi
push edx
call fcn.00531d40
mov eax, dword [esp + 0x4c]
add esp, 0xc
mov edi, dword [esp + 0x14]
jmp 0x438df2
sub esi, edi
push esi
push edi
push edx
call fcn.00531d40
mov edx, dword [esp + 0x38]
add esp, 0xc
mov eax, dword [esp + 0x1c]
add edx, esi
mov edi, dword [esp + 0x68]
sub eax, esi
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x34], edi
jmp 0x438c19
mov eax, dword [esp + 0x1c]
cmp ecx, 0x10
jb 0x438ca5
mov ecx, dword [edi + 4]
add eax, edx
cmp dword [esp + 0x1c], 0x10
mov edx, dword [edi + 8]
mov esi, dword [edi + 0xc]
mov dword [esp + 0x44], eax
mov eax, dword [edi]
mov edi, dword [esp + 0x2c]
mov dword [edi], eax
mov dword [edi + 4], ecx
mov dword [edi + 8], edx
mov dword [edi + 0xc], esi
jle 0x438c98
mov ebp, dword [esp + 0x34]
add edi, 0x10
mov ebx, dword [esp + 0x44]
add ebp, 0x10
mov eax, dword [ebp]
lea ebp, [ebp + 0x20]
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x14]
mov dword [edi], eax
mov dword [edi + 4], ecx
mov dword [edi + 8], edx
mov dword [edi + 0xc], esi
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
mov esi, dword [ebp - 4]
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], ecx
mov dword [edi + 0x18], edx
mov dword [edi + 0x1c], esi
add edi, 0x20
cmp edi, ebx
jb 0x438c57
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x4c]
mov eax, dword [esp + 0x40]
mov edi, dword [esp + 0x14]
jmp 0x438df2
cmp ecx, 8
jae 0x438cd9
movzx eax, byte [edi]
mov byte [edx], al
movzx eax, byte [edi + 1]
mov byte [edx + 1], al
movzx eax, byte [edi + 2]
mov byte [edx + 2], al
movzx eax, byte [edi + 3]
add edi, dword [ecx*4 + 0x55ac38]
mov byte [edx + 3], al
mov eax, dword [edi]
sub edi, dword [ecx*4 + str._b_b_b_a_b_t_n_v]
mov dword [edx + 4], eax
jmp 0x438ce3
mov eax, dword [edi]
mov ecx, dword [edi + 4]
mov dword [edx], eax
mov dword [edx + 4], ecx
mov eax, dword [esp + 0x1c]
cmp eax, 8
jbe 0x438c98
add eax, 0xfffffff8
lea esi, [edi + 8]
lea edi, [edx + 8]
mov dword [esp + 0x44], esi
lea edx, [edi + eax]
mov eax, edi
sub eax, esi
mov dword [esp + 0x3c], edx
cmp eax, 0x10
jge 0x438d30
sub esi, edi
jmp 0x438d10
mov eax, dword [esi + edi]
mov ecx, dword [esi + edi + 4]
mov dword [edi], eax
mov dword [edi + 4], ecx
add edi, 8
cmp edi, edx
jb 0x438d10
mov eax, dword [esp + 0x40]
mov edi, dword [esp + 0x14]
jmp 0x438df2
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov edx, dword [esi + 8]
mov esi, dword [esi + 0xc]
mov dword [edi], eax
mov eax, dword [esp + 0x1c]
mov dword [edi + 4], ecx
add eax, 0xfffffff8
mov dword [edi + 8], edx
mov dword [edi + 0xc], esi
cmp eax, 0x10
jle 0x438c98
mov ebp, dword [esp + 0x44]
add edi, 0x10
mov ebx, dword [esp + 0x3c]
add ebp, 0x10
mov eax, dword [ebp]
lea ebp, [ebp + 0x20]
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x14]
mov dword [edi], eax
mov dword [edi + 4], ecx
mov dword [edi + 8], edx
mov dword [edi + 0xc], esi
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
mov esi, dword [ebp - 4]
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], ecx
mov dword [edi + 0x18], edx
mov dword [edi + 0x1c], esi
add edi, 0x20
cmp edi, ebx
jb 0x438d64
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x4c]
mov eax, dword [esp + 0x40]
mov edi, dword [esp + 0x14]
jmp 0x438df2
push dword [esp + 0x64]
mov ecx, dword [esp + 0x24]
lea eax, [esp + 0x3c]
push dword [esp + 0x78]
mov edi, dword [esp + 0x1c]
push dword [esp + 0x70]
push dword [esp + 0x78]
push eax
sub esp, 0xc
mov eax, esp
push dword [esp + 0x80]
mov dword [eax], ecx
mov ecx, dword [esp + 0x40]
mov dword [eax + 4], ecx
push edi
mov dword [eax + 8], edx
call fcn.00439aa0
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x30], ecx
cmp eax, 0xffffff88
ja 0x438f62
add edi, eax
sub dword [esp + 0xe0], 1
mov dword [esp + 0x14], edi
je 0x438ea5
mov edi, dword [esp + 0x98]
cmp ebp, 0x20
ja 0x438570
cmp ebx, dword [esp + 0x9c]
jb 0x438e52
mov eax, ebp
shr eax, 3
sub ebx, eax
and ebp, 7
mov dword [esp + 0x10], ebx
mov dword [esp + 0x94], ebx
mov dword [esp + 0x90], ebp
mov esi, dword [ebx]
mov dword [esp + 0x8c], esi
jmp 0x438570
cmp ebx, edi
je 0x438570
mov ecx, ebp
mov eax, ebx
shr ecx, 3
sub eax, ecx
cmp eax, edi
jae 0x438e6b
mov ecx, ebx
sub ecx, edi
sub ebx, ecx
imul eax, ecx, 0xfffffff8
mov dword [esp + 0x10], ebx
mov dword [esp + 0x94], ebx
mov esi, dword [ebx]
add ebp, eax
mov dword [esp + 0x8c], esi
mov dword [esp + 0x90], ebp
jmp 0x438570
mov edx, dword [esp + 0xe0]
test edx, edx
jne 0x437297
mov edi, dword [esp + 0x14]
cmp ebp, 0x20
ja 0x438ecd
cmp ebx, dword [esp + 0x9c]
jae 0x437297
cmp ebx, dword [esp + 0x98]
jne 0x437297
cmp ebp, 0x20
jb 0x437297
mov ebp, dword [esp + 0x78]
mov eax, dword [esp + 0xb8]
mov edx, dword [esp + 0x30]
mov ebx, dword [esp + 0x6c]
mov esi, dword [esp + 0x60]
mov dword [ebp + 0x682c], eax
mov eax, dword [esp + 0x54]
mov dword [ebp + 0x6830], eax
mov eax, dword [esp + 0xc0]
mov dword [ebp + 0x6834], eax
cmp dword [ebp + 0x75fc], 2
jne 0x438f3f
mov eax, esi
sub ebx, edx
sub eax, edi
cmp ebx, eax
ja 0x4380ff
test edi, edi
je 0x438f29
push ebx
push edx
push edi
call fcn.00531d40
add esp, 0xc
add edi, ebx
lea edx, [ebp + 0x7600]
mov dword [ebp + 0x75fc], 0
lea ebx, [ebp + 0x17600]
sub ebx, edx
sub esi, edi
cmp ebx, esi
ja 0x4380ff
test edi, edi
je 0x438f5c
push ebx
push edx
push edi
call fcn.00531d40
add esp, 0xc
add edi, ebx
mov eax, edi
sub eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0xc4]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00530218
add esp, 0xb8
ret 0x20