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

Disassembly:
sub esp, 0xb8
mov eax, dword [0x58bb30]
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 0x438a01
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.0043a090
cmp eax, 0xffffff88
jbe 0x436da1
mov eax, 0xffffffec
jmp 0x438a62
push dword [ebp]
lea eax, [esp + 0x90]
push eax
lea eax, [esp + 0xa8]
push eax
call fcn.00439ab0
push dword [ebp + 8]
lea eax, [esp + 0x90]
push eax
lea eax, [esp + 0xb0]
push eax
call fcn.00439ab0
push dword [ebp + 4]
lea eax, [esp + 0x90]
push eax
lea eax, [esp + 0xb8]
push eax
call fcn.00439ab0
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 0x436ff5
cmp dword [esp + 0xe4], 0
je 0x436f52
cmp bl, 0x19
jb 0x436f52
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 0x436f23
cmp ebx, dword [esp + 0x9c]
jb 0x436eef
mov eax, ecx
shr eax, 3
sub ebx, eax
and ecx, 7
jmp 0x436f0d
cmp ebx, ebp
je 0x436f23
shr edi, 3
mov eax, ebx
sub eax, edi
cmp eax, ebp
jae 0x436f02
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 0x4370c7
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 0x436fd7
cmp ebx, dword [esp + 0x9c]
jb 0x436fa3
mov eax, edi
shr eax, 3
sub ebx, eax
and edi, 7
jmp 0x436fc3
cmp ebx, ebp
je 0x436fd7
mov ecx, edi
mov eax, ebx
shr ecx, 3
sub eax, ecx
cmp eax, ebp
jae 0x436fb8
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 0x4370c7
xor eax, eax
test esi, esi
sete al
test bl, bl
jne 0x43704b
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 0x4370d5
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 0x437095
lea eax, [ecx - 1]
xor edx, edx
test eax, eax
sete dl
add edx, eax
mov dword [esp + 0x1c], edx
jmp 0x4370ae
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 0x4370bc
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 0x4370fd
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 0x437157
cmp edi, 0x20
ja 0x437157
cmp ebx, dword [esp + 0x9c]
jb 0x437127
mov eax, edi
shr eax, 3
sub ebx, eax
and edi, 7
jmp 0x437143
cmp ebx, ebp
je 0x437157
mov ecx, edi
mov eax, ebx
shr ecx, 3
sub eax, ecx
cmp eax, ebp
jae 0x43713c
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 0x437177
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 0x4371c5
cmp ebx, dword [esp + 0x9c]
jb 0x437191
mov eax, edi
shr eax, 3
sub ebx, eax
and edi, 7
jmp 0x4371b1
cmp ebx, ebp
je 0x4371c5
mov ecx, edi
mov eax, ebx
shr ecx, 3
sub eax, ecx
cmp eax, ebp
jae 0x4371a6
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 + 0x559b88]
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 + 0x559b88]
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 0x437277
cmp ebx, dword [esp + 0x9c]
jb 0x43723a
mov eax, ecx
shr eax, 3
sub ebx, eax
and ecx, 7
jmp 0x437263
cmp ebx, ebp
jne 0x437247
cmp edx, 0x20
jb 0x437277
mov ecx, edx
jmp 0x437277
mov edx, ecx
mov eax, ebx
shr edx, 3
sub eax, edx
cmp eax, ebp
jae 0x437258
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 + 0x559b88]
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 0x437bd9
jmp 0x4372d0
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 0x437645
mov eax, dword [esp + 0x14]
add eax, edx
cmp eax, ecx
ja 0x437645
mov ecx, dword [esp + 0x60]
lea eax, [edx + 0x20]
sub ecx, dword [esp + 0x14]
cmp ecx, eax
jb 0x437641
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 0x437404
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 0x437400
mov ebx, dword [esp + 0x30]
mov edi, eax
mov ebp, dword [esp + 0x3c]
add edi, 0x10
add ebx, 0x10
jmp 0x4373c0
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 0x4373c0
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 0x43748e
mov eax, edx
sub eax, dword [esp + 0x74]
cmp esi, eax
ja 0x436d97
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 0x437463
push ecx
push edi
push edx
call fcn.00531230
mov eax, dword [esp + 0x4c]
add esp, 0xc
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x30]
jmp 0x437689
sub esi, edi
push esi
push edi
push edx
call fcn.00531230
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 0x437492
mov eax, dword [esp + 0x2c]
cmp esi, 0x10
jb 0x437531
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 0x437520
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 0x4374e0
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 0x437689
cmp esi, 8
jae 0x437565
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 + 0x559c28]
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 0x43756f
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 0x437520
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 0x4375c4
sub esi, edi
jmp 0x4375a0
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 0x4375a0
mov eax, dword [esp + 0x40]
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x30]
jmp 0x437689
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 0x437520
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 0x4375f3
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 0x437689
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.004396b0
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x30], ecx
cmp eax, 0xffffff88
ja 0x438a62
add edi, eax
sub dword [esp + 0xe0], 1
mov dword [esp + 0x14], edi
je 0x437c09
mov edi, dword [esp + 0x98]
cmp ebp, 0x20
ja 0x4376fe
cmp ebx, dword [esp + 0x9c]
jb 0x4376c7
mov eax, ebp
shr eax, 3
sub ebx, eax
and ebp, 7
jmp 0x4376e3
cmp ebx, edi
je 0x4376fe
mov ecx, ebp
mov eax, ebx
shr ecx, 3
sub eax, ecx
cmp eax, edi
jae 0x4376dc
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 0x437903
cmp dword [esp + 0xe4], 0
je 0x437863
cmp al, 0x19
jb 0x437863
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 0x437849
cmp ebx, dword [esp + 0x9c]
jb 0x437815
mov eax, ebp
shr eax, 3
sub ebx, eax
and ebp, 7
jmp 0x437835
cmp ebx, edi
je 0x437849
mov ecx, ebp
mov eax, ebx
shr ecx, 3
sub eax, ecx
cmp eax, edi
jae 0x43782a
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 0x4378e1
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 0x4378e1
cmp ebx, dword [esp + 0x9c]
jb 0x4378ad
mov eax, ebp
shr eax, 3
sub ebx, eax
and ebp, 7
jmp 0x4378cd
cmp ebx, edi
je 0x4378e1
mov ecx, ebp
mov eax, ebx
shr ecx, 3
sub eax, ecx
cmp eax, edi
jae 0x4378c2
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 0x4379cb
xor edx, edx
cmp dword [esp + 0x24], edx
sete dl
test al, al
jne 0x437944
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 0x4379d2
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 0x437995
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 0x4379ae
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 0x4379b9
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 0x4379f5
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 0x437a65
cmp ebp, 0x20
ja 0x437a65
cmp ebx, dword [esp + 0x9c]
jb 0x437a33
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 0x437a6c
cmp ebx, edi
je 0x437a65
mov ecx, ebp
mov eax, ebx
shr ecx, 3
sub eax, ecx
cmp eax, edi
jae 0x437a48
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 0x437a6c
mov esi, dword [esp + 0x8c]
cmp byte [esp + 0x1b], 0
jbe 0x437a8f
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 0x437ad9
cmp ebx, dword [esp + 0x9c]
jb 0x437aa9
mov eax, ebp
shr eax, 3
sub ebx, eax
and ebp, 7
jmp 0x437ac5
cmp ebx, edi
je 0x437ad9
mov ecx, ebp
mov eax, ebx
shr ecx, 3
sub eax, ecx
cmp eax, edi
jae 0x437abe
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 + 0x559b88]
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 + 0x559b88]
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 0x437b89
cmp ebx, dword [esp + 0x9c]
jb 0x437b55
mov eax, ebp
shr eax, 3
sub ebx, eax
and ebp, 7
jmp 0x437b75
cmp ebx, edi
je 0x437b89
mov ecx, ebp
mov eax, ebx
shr ecx, 3
sub eax, ecx
cmp eax, edi
jae 0x437b6a
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 + 0x559b88]
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 0x4372d0
mov edi, dword [esp + 0x14]
cmp dword [esp + 0xe0], 0
jle 0x438992
mov esi, dword [esi + 0x75f8]
sub esi, ecx
je 0x437c2b
mov eax, dword [esp + 0x60]
sub eax, edi
cmp esi, eax
jbe 0x437c13
mov eax, 0xffffffba
jmp 0x438a62
mov edx, dword [esp + 0x24]
mov esi, dword [esp + 0x78]
jmp 0x437bdd
push esi
push ecx
push edi
call fcn.00439f70
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 0x437f82
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x60]
add ecx, edx
add eax, 0xffffffe0
cmp ecx, eax
ja 0x437f82
mov ecx, dword [esp + 0x60]
lea eax, [edx + 0x20]
sub ecx, dword [esp + 0x14]
cmp ecx, eax
jb 0x437f82
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 0x437d65
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 0x437d61
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 0x437d20
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 0x437deb
mov eax, edx
sub eax, dword [esp + 0x74]
cmp edi, eax
ja 0x436d97
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 0x437dbc
push esi
push ecx
push edx
call fcn.00531230
mov eax, dword [esp + 0x4c]
add esp, 0xc
mov esi, dword [esp + 0x14]
jmp 0x437fc5
mov esi, dword [esp + 0x64]
sub esi, ecx
push esi
push ecx
push edx
call fcn.00531230
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 0x437df3
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x20]
cmp edi, 0x10
jb 0x437e7e
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 0x437e71
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 0x437e31
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x4c]
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0x14]
jmp 0x437fc5
cmp edi, 8
jae 0x437eb2
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 + 0x559c28]
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 0x437ebc
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 0x437e71
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 0x437f04
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 0x437ee4
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0x14]
jmp 0x437fc5
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 0x437e71
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 0x437f38
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x4c]
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0x14]
jmp 0x437fc5
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.004395a0
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x30], ecx
cmp eax, 0xffffff88
ja 0x438a62
mov edx, dword [esp + 0xe0]
add esi, eax
sub edx, 1
mov dword [esp + 0x14], esi
mov dword [esp + 0xe0], edx
je 0x43805c
cmp ebp, 0x20
ja 0x43805c
mov edi, dword [esp + 0x98]
cmp ebx, dword [esp + 0x9c]
jb 0x438023
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 0x438063
cmp ebx, edi
je 0x438063
mov ecx, ebp
mov eax, ebx
shr ecx, 3
sub eax, ecx
cmp eax, edi
jae 0x438038
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 0x438063
mov edi, dword [esp + 0x98]
test edx, edx
jle 0x43899b
jmp 0x438070
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 0x438285
cmp dword [esp + 0xe4], 0
je 0x4381e5
cmp al, 0x19
jb 0x4381e5
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 0x4381cb
cmp ebx, dword [esp + 0x9c]
jb 0x438197
mov eax, ebp
shr eax, 3
sub ebx, eax
and ebp, 7
jmp 0x4381b7
cmp ebx, edi
je 0x4381cb
mov ecx, ebp
mov eax, ebx
shr ecx, 3
sub eax, ecx
cmp eax, edi
jae 0x4381ac
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 0x438263
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 0x438263
cmp ebx, dword [esp + 0x9c]
jb 0x43822f
mov eax, ebp
shr eax, 3
sub ebx, eax
and ebp, 7
jmp 0x43824f
cmp ebx, edi
je 0x438263
mov ecx, ebp
mov eax, ebx
shr ecx, 3
sub eax, ecx
cmp eax, edi
jae 0x438244
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 0x438343
xor edx, edx
test ecx, ecx
sete dl
test al, al
jne 0x4382c4
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 0x43834a
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 0x43830d
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 0x438326
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 0x438331
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 0x43836d
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 0x4383dd
cmp ebp, 0x20
ja 0x4383dd
cmp ebx, dword [esp + 0x9c]
jb 0x4383ab
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 0x4383e4
cmp ebx, edi
je 0x4383dd
mov ecx, ebp
mov eax, ebx
shr ecx, 3
sub eax, ecx
cmp eax, edi
jae 0x4383c0
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 0x4383e4
mov esi, dword [esp + 0x8c]
cmp byte [esp + 0x1b], 0
jbe 0x438407
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 0x438467
cmp ebx, dword [esp + 0x9c]
jb 0x438435
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 0x43846e
cmp ebx, edi
je 0x438467
mov ecx, ebp
mov eax, ebx
shr ecx, 3
sub eax, ecx
cmp eax, edi
jae 0x43844a
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 0x43846e
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 + 0x559b88]
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 + 0x559b88]
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 0x438525
cmp ebx, dword [esp + 0x9c]
jb 0x4384ea
mov eax, edi
shr eax, 3
sub ebx, eax
and edi, 7
jmp 0x438511
mov edx, dword [esp + 0x98]
cmp ebx, edx
je 0x438525
mov ecx, edi
mov eax, ebx
shr ecx, 3
sub eax, ecx
cmp eax, edx
jae 0x438506
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 + 0x559b88]
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 0x4388af
mov ecx, dword [esp + 0x14]
add ecx, eax
mov eax, dword [esp + 0x60]
add eax, 0xffffffe0
cmp ecx, eax
ja 0x4388af
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x40]
sub ecx, dword [esp + 0x14]
add eax, 0x20
cmp ecx, eax
jb 0x4388af
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 0x438689
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 0x438685
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 0x438644
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 0x438715
mov eax, edx
sub eax, dword [esp + 0x74]
cmp ecx, eax
ja 0x436d97
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 0x4386e6
push ecx
push edi
push edx
call fcn.00531230
mov eax, dword [esp + 0x4c]
add esp, 0xc
mov edi, dword [esp + 0x14]
jmp 0x4388f2
sub esi, edi
push esi
push edi
push edx
call fcn.00531230
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 0x438719
mov eax, dword [esp + 0x1c]
cmp ecx, 0x10
jb 0x4387a5
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 0x438798
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 0x438757
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x4c]
mov eax, dword [esp + 0x40]
mov edi, dword [esp + 0x14]
jmp 0x4388f2
cmp ecx, 8
jae 0x4387d9
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 + 0x559c28]
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 0x4387e3
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 0x438798
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 0x438830
sub esi, edi
jmp 0x438810
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 0x438810
mov eax, dword [esp + 0x40]
mov edi, dword [esp + 0x14]
jmp 0x4388f2
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 0x438798
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 0x438864
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x4c]
mov eax, dword [esp + 0x40]
mov edi, dword [esp + 0x14]
jmp 0x4388f2
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.004395a0
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x30], ecx
cmp eax, 0xffffff88
ja 0x438a62
add edi, eax
sub dword [esp + 0xe0], 1
mov dword [esp + 0x14], edi
je 0x4389a5
mov edi, dword [esp + 0x98]
cmp ebp, 0x20
ja 0x438070
cmp ebx, dword [esp + 0x9c]
jb 0x438952
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 0x438070
cmp ebx, edi
je 0x438070
mov ecx, ebp
mov eax, ebx
shr ecx, 3
sub eax, ecx
cmp eax, edi
jae 0x43896b
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 0x438070
mov edx, dword [esp + 0xe0]
test edx, edx
jne 0x436d97
mov edi, dword [esp + 0x14]
cmp ebp, 0x20
ja 0x4389cd
cmp ebx, dword [esp + 0x9c]
jae 0x436d97
cmp ebx, dword [esp + 0x98]
jne 0x436d97
cmp ebp, 0x20
jb 0x436d97
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 0x438a3f
mov eax, esi
sub ebx, edx
sub eax, edi
cmp ebx, eax
ja 0x437bff
test edi, edi
je 0x438a29
push ebx
push edx
push edi
call fcn.00531230
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 0x437bff
test edi, edi
je 0x438a5c
push ebx
push edx
push edi
call fcn.00531230
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.0052f708
add esp, 0xb8
ret 0x20